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: [email protected]
> >         > 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]
>
>

Reply via email to