Hi Pascal, You have to decide whether "uri" is an element or an attribute. In your original example it was an attribute, but in the Schema you send it shows it's an element. If it is element, obviously, your XML would have to look like (it has nothing to do with fragments): String xml = "<ns:element xmlns:ns=\"http://www.example.org/docelement\"><ns:uri>www.apache.org</n s:uri></ns:element>";
Radu ________________________________ From: Pascal Maugeri [mailto:[EMAIL PROTECTED] Sent: Thursday, May 01, 2008 1:54 PM To: user@xmlbeans.apache.org Subject: Re: Parsing an XML fragment Hi Radu There is some progress here... I did modified the xml as you recommended and the following code: String xml = "<ns:element uri=\"www.apache.org\" xmlns:ns=\"http://www.example.org/docelement\"/>"; XmlOptions xmlOptions = new XmlOptions().setDocumentType(DocDocument.Doc.type); DocDocument.Doc doc = (DocDocument.Doc) XmlObject.Factory.parse(xml, xmlOptions); System.out.println(doc.toString()); System.out.println(doc.getElement().toString()); System.out.println(doc.getElement().getUri()); outputs: <ns:element uri="www.apache.org" xmlns:ns="http://www.example.org/docelement"/> <xml-fragment uri="www.apache.org" xmlns:ns="http://www.example.org/docelement"/> null As you can see the doc.getElement.getUri() still returns null :-( I've played around with the schema, for instance I switched elementFormDefault to "unqualified": String xml = "<element uri=\"www.apache.org\"/>"; XmlOptions xmlOptions = new XmlOptions().setDocumentType(DocDocument.Doc.type); DocDocument.Doc doc = (DocDocument.Doc) XmlObject.Factory.parse(xml, xmlOptions); System.out.println(doc.toString()); System.out.println(doc.getElement().toString()); System.out.println(doc.getElement().getUri()); outputs: <element uri="www.apache.org"/> <xml-fragment uri="www.apache.org"/> null I get the same results (doc.getElement().getUri() is null). I also tried with attributeFormDefault="unqualified" with no success neither: String xml = "<ns:element ns:uri=\"www.apache.org\" xmlns:ns=\"http://www.example.org/docelement\"/>"; XmlOptions xmlOptions = new XmlOptions().setDocumentType(DocDocument.Doc.type); DocDocument.Doc doc = (DocDocument.Doc) XmlObject.Factory.parse(xml, xmlOptions); System.out.println(doc.toString()); System.out.println(doc.getElement().toString()); System.out.println(doc.getElement().getUri()); Do you have any idea why I can't access the element attribute ? Thanks Pascal On Thu, May 1, 2008 at 1:09 AM, Radu Preotiuc-Pietro <[EMAIL PROTECTED]> wrote: Yep, in your Schema you have elementFormDefault="qualified". So this means your doc fragment has to look like: String xml = "<ns:element uri=\"www.apache.org\" xmlns:ns= \"http://www.example.org/docelement\ <http://www.example.org/docelement%5C> "/>"; Radu On Wed, 2008-04-30 at 15:07 +0200, Pascal Maugeri wrote: > Hi Radu > > Sorry again to comment on this issue but I do not find the same > results as yours. > > with the following source code: > > String xml = "<element uri=\"www.apache.org\"/>"; > XmlOptions xmlOptions = new > XmlOptions().setDocumentType(DocDocument.Doc.type); > DocDocument.Doc doc = (DocDocument.Doc) > XmlObject.Factory.parse(xml, xmlOptions); > System.out.println(doc.toString()); > System.out.println(doc.getElement().toString()); > > The first sysout prints the correct result: > > <element uri="www.apache.org"/> > > The last sysout throws a NullPointerException because doc.getElement() > returns null > > java.lang.NullPointerException > at > xmlbeans.ParsingXmlFragment.<init>(ParsingXmlFragment.java:17) > at xmlbeans.ParsingXmlFragment.main(ParsingXmlFragment.java:22) > > I've attached to this email the beans jar I've generated and the piece > of code I tested. If you want to dedicate more time to this issue it > may be interesting to execute it in your environment. Please confirm > me that you do not get the exception. > > Regards, > Pascal > > > > On Tue, Apr 29, 2008 at 2:27 AM, Radu Preotiuc-Pietro <[EMAIL PROTECTED]> > wrote: > Actually, I have made some experiments myself and you may have > success > with something like: > > DocDocument.Doc doc = (DocDocument.Doc) > XmlObject.Factory.parse(new > File("test.xml"), new > XmlOptions().setDocumentType(DocDocument.Doc.type)); > > to parse from the <element> level. > > Let me know if this works for you, > Radu > > > > -----Original Message----- > > From: Jim the Standing Bear [mailto:[EMAIL PROTECTED] > > Sent: Monday, April 28, 2008 8:38 AM > > To: user@xmlbeans.apache.org > > Subject: Re: Parsing an XML fragment > > > > I ran into the same problem and toyed around it over the > weekend. > > what I found out was that it helps if you parse it from "a > level up". > > > > So in your case, you would have to parse it from the > Document > > level, since that is the only thing above "Element" nodes. > > > > In other words, doing > > Doc.Factory.parse(xml).getDoc().getElement().getUri() is the > > way to go. However, you said you needed to parse from > > Element level - is there any constraints that force you to > > parse from Element level? > > > > HTH > > > > Jim > > > > > > > > On Mon, Apr 28, 2008 at 6:17 AM, Pascal Maugeri > > <[EMAIL PROTECTED]> wrote: > > > Radu > > > > > > You're right in the example below the <element> is not a > > global schema type. > > > > > > So what should I do if a server (XCAP server) sends me > this > > XML fragment: > > > > > > > > > <element uri="www.apache.org"/> > > > > > > and I want to parse it having the xml beans set from the > > corresponding > > > schema ? > > > > > > Is there a way to do that ? > > > > > > Regards, > > > Pascal > > > > > > > > > > > > > > > On Sat, Apr 19, 2008 at 3:35 AM, Radu Preotiuc-Pietro > > <[EMAIL PROTECTED]> wrote: > > > > > > > I'd have to see the Schema to be able to figure out the > name of > > > > elements and types and what the exact code should look > > like. I think > > > > that your problem might be that <element> is not a > global Schema > > > > type and so auto-typing doesn't work if at the root > level > > (in other > > > > words, Schema doesn't allow <element> to be a top-level > element). > > > > > > > > But even then, you should not have to parse and save to > > String only > > > > to parse again. > > > > > > > > Radu > > > > > > > > > > > > > > > > > > > > On Tue, 2008-04-08 at 06:49 -0700, Pascal Maugeri wrote: > > > > > Hi > > > > > > > > > > I would like to have a clarification about the parsing > of a XML > > > > > fragment. > > > > > > > > > > For instance, having the following XML document, I > want > > to obtain > > > > > the "uri" attribute value: > > > > > > > > > > <?xml version="1.0" encoding="UTF-8"?> > > > > > <doc> > > > > > <element uri="www.apache.org"/> > > > > > </doc> > > > > > > > > > > with > > > > > > Doc.Factory.parse(xml).getDoc().getElement().getUri() > > > > > it returns the attribute value. > > > > > > > > > > but with > > > > > Element.Factory.parse("<element > > > > > uri=\"www.apache.org\"/>").getUri() > > > > > it returns null, also a call to > Element.Factory.parse("<element > > > > > uri= > > > > > \"www.apache.org\"/>").toString() returns the XML > content. > > > > > > > > > > As I do need to parse XML fragment such as this > > "element", I have > > > > > found the following workaround: > > > > > a) I get the String representation of the Element (eg. > > > > > Element.Factory.parse(...).toString() ), > > > > > b) I insert the result of (a) into a container > <doc>...</doc> > > > > > c) then I parse the result of (b) with the > > Doc.Factory.parse( (b) > > > > > ).getDoc().getElement().getUri() and it does work. > > > > > ... also I'm not very proud of myself :-) > > > > > > > > > > Could you explain why I can't access the attributes of > a XML > > > > > fragment I parsed ? > > > > > > > > > > I there a better/cleaner workaround than the one > above ? > > > > > > > > > > Thanks in advance for your help > > > > > Pascal > > > > > > > > Notice: This email message, together with any > attachments, may > > > > contain > > > information of BEA Systems, Inc., its subsidiaries > and > > > affiliated entities, that may be confidential, > proprietary, > > > copyrighted and/or legally privileged, and is intended > > solely for the > > > use of the individual or entity named in this message. If > > you are not > > > the intended recipient, and have received this message in > error, > > > please immediately return this by email and then delete > it. > > > > > > > > > > > -------------------------------------------------------------------- > > > > - To unsubscribe, e-mail: > [EMAIL PROTECTED] > > > > For additional commands, e-mail: > [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > > > > -- > > -------------------------------------- > > Standing Bear Has Spoken > > -------------------------------------- > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: > [EMAIL PROTECTED] > > > > > > Notice: This email message, together with any attachments, > may contain information of BEA Systems, Inc., its > subsidiaries and affiliated entities, that may be > confidential, proprietary, copyrighted and/or legally > privileged, and is intended solely for the use of the > individual or entity named in this message. If you are not the > intended recipient, and have received this message in error, > please immediately return this by email and then delete it. > > --------------------------------------------------------------------- > 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] Notice: This email message, together with any attachments, may contain information of BEA Systems, Inc., its subsidiaries and affiliated entities, that may be confidential, proprietary, copyrighted and/or legally privileged, and is intended solely for the use of the individual or entity named in this message. If you are not the intended recipient, and have received this message in error, please immediately return this by email and then delete it. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] Notice: This email message, together with any attachments, may contain information of BEA Systems, Inc., its subsidiaries and affiliated entities, that may be confidential, proprietary, copyrighted and/or legally privileged, and is intended solely for the use of the individual or entity named in this message. If you are not the intended recipient, and have received this message in error, please immediately return this by email and then delete it.