Kapil,

You don't need to create a new cursor, if the item your cursor points to has a 
name (i.e. element/attribute/pi) just call getName() on it. Check out the 
javadoc of XmlCursor 
http://xmlbeans.apache.org/docs/2.4.0/reference/org/apache/xmlbeans/XmlCursor.html
 and XmlObject 
http://xmlbeans.apache.org/docs/2.4.0/reference/org/apache/xmlbeans/XmlObject.html.

An XmlObject represents the xml instance of the schema type that is assigned 
to, that's why you see xml-fragment. Take a look at the save XmlOptions, 
saveOutter might be what you're looking for: 
http://xmlbeans.apache.org/docs/2.4.0/reference/org/apache/xmlbeans/XmlOptions.html#setSaveOuter().

Cezar

> -----Original Message-----
> From: Kapil Anand [mailto:[email protected]]
> Sent: Wednesday, March 11, 2009 10:20 PM
> To: [email protected]
> Subject: Re: Navigating Untyped XmlObject with XmlCursor
> 
> 
> OK I figured it out.
> It was my lack of understanding of how cursor.getObject() works.
> There must be some good reason behind this design but it sure is tricky.
> 
> xmlObj = cursor.getObject() returns the typed contents of the current
> start/startdoc cursor position and it excludes the container element
> itself
> and so it does not show up in xmlObj.xmlText(). But it does store the
> QName
> of the parent element somewhere as it can be accessed again by calling
> xmlObj.newCursor.getName(). It would be good though if this could be
> accessible without creating the new cursor.
> 
> Now I am wondering what would be the way to create the container XMLObject
> from this one, so the xmlText shows the container element name as well.
> Tried two things without success:
> 1) XMLObject.Factory.parse(xmlObj.newXMLStreamReader()). The xmlText()
> remains the same, perhaps the new one might have lost the information
> about
> the cursor name that represented the container element.
> 2) newObj  = XMLObject.Factory.newInstance()
> newObj.set(xmlObj);
> This one threw exception:
> org.apache.xmlbeans.impl.values.XmlValueDisconnectedException
> 
> I would appreciate any help or ideas.
> 
> regards
> kapil
> 
> Kapil Anand wrote:
> >
> > Thanks for replying Jacob.
> > I tried cursor.child(1) but it returns false. (child index 1 anyway
> > represents the second child of the current cursor position and i need to
> > select the first child). This is what i am inferring from the behavior
> of
> > the api:
> >
> > When i start with the XmlObject that represents the untyped document,
> the
> > first child under it is an xml-fragment containing the contents of the
> > root element. But this does not make sense. It might make perfect sense
> > perhaps if I had started with a schema and declared things like this:
> >
> > <xs:complexType name="ElemT">
> > ...
> > </xs:complexType>
> > <xs:element name="RootElem" type="ElemT"/>
> >
> > But I have doubts about this even for typed XmlObject, because it might
> be
> > right if i am trying to get to the next token, but next child should
> > always be a concrete node as per my understanding.
> >
> > This assumption/inference is proved wrong when i try to move to the
> first
> > child of this xml-fragment, it actually takes me to the subsequent
> child,
> > so child navigation is correct the contents of the intermediate child
> are
> > incorrect.
> >
> > I will try to explain in problem with the tree.
> > RootElement
> >         -> Level1.1
> >                 -> Level2-1.1
> >         -> Level1.2
> >                 -> Level2-1.2
> >         -> Level1.3
> >                 -> Level2-1.3
> > First cursor.toChild(0) should return Level1.1 but instead it returns
> all
> > the children of Root inside an xml-fragment. Dont know if this is
> expected
> > behavior but it does not match the behavior of the next call to
> > cursor.toChild(0) since it correctly returns Level2-1.1. So although the
> > first time the cursor was pointing to Level1.1, it somehow returned
> wrong
> > XML fragment in cursor.getObject();
> >
> > When i use an XML with single child for each parent it works fine (no
> > siblings at any level). It returns Level1.1 in the first call and
> > Level2-1.1 in the next call, so on and so forth.
> >
> > regards
> > kapil
> >
> 
> --
> View this message in context: http://www.nabble.com/Navigating-Untyped-
> XmlObject-with-XmlCursor-tp22463857p22469181.html
> Sent from the Xml Beans - User mailing list archive at Nabble.com.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to