Hi Kasun, On Sat, May 1, 2010 at 11:03 AM, Kasun Indrasiri <kasun...@gmail.com> wrote:
> Hi, > > I guess this becomes even more riskier in a scenario like this. > > XML string : "<a> a_ lengthy_string</a>" -> omElem > > Once we parse this xml in non-coalescing mode and create an OM > element(omElem) with this, > > - first Child : contains the first portion of 'a_lengthy_string' string > - last Child : contains the rest > > However, as Hiranya mentioned 'omEle.getText()' will give us the correct > value of the text content. > > Is this the acceptable behavior? > Yes. It seems if you are using non-coalescing mode, you should use the getText() method to retrieve the full text from elements. Thanks, Hiranya > > regards, > > Kasun > > > On Fri, Apr 30, 2010 at 9:12 PM, Andreas Veithen > <andreas.veit...@gmail.com>wrote: > > > Axiom always creates the nodes based on the events received from the > > underlying parser. If javax.xml.stream.isCoalescing is set to false on > > the parser, then by definition the parser may return large text nodes > > in multiple chunks. The problem is that if > > javax.xml.stream.isCoalescing is set to true, StAX doesn't report > > CDATA sections in the document as CDATA events, but as CHARACTER > > events. It is however possible to configure Woodstox to report CDATA > > sections without splitting text nodes into chunks. Note that even with > > such a configuration, OMElement#getText should always be used to > > extract the text content of an element (to cover the case where the > > element contains a mix of text nodes and CDATA sections). > > > > Note that while coalescing is switched off by default at the StAX > > level, Axiom overrides this so that by default coalescing is turned on > > [1]. It is not surprising that there is code that implicitly relies on > > this. Therefore, working with Axiom in non coalescing mode is always a > > risk. > > > > Andreas > > > > [1] http://people.apache.org/~veithen/axiom/userguide/ch04.html#d0e866 > > > > On Fri, Apr 30, 2010 at 11:51, Kasun Indrasiri <kasun...@gmail.com> > wrote: > > > Hi, > > > > > > When parsing XML in non-coalescing mode > ("javax.xml.stream.isCoalescing", > > > false) Axiom breaks down large text entries to multiple chunks. > Therefore > > CDATA > > > elements with lengthy texts get translated into multiple CDATA > elements. > > > > > > thanks, > > > -- > > > Kasun Indrasiri > > > Senior Software Engineer, > > > WSO2 Inc. - "Lean . Enterprise . Middleware" - http://www.wso2.com/ > > > Blog : http://kasunpanorama.blogspot.com/ > > > > > > > > > -- > Kasun Indrasiri > Senior Software Engineer, > WSO2 Inc. - "Lean . Enterprise . Middleware" - http://www.wso2.com/ > Blog : http://kasunpanorama.blogspot.com/ > -- Hiranya Jayathilaka Software Engineer; WSO2 Inc.; http://wso2.org E-mail: hira...@wso2.com; Mobile: +94 77 633 3491 Blog: http://techfeast-hiranya.blogspot.com