Re: Xmlbeans is able to retrieve extra attribute from xml ?

Sebastien Dionne <[email protected]>
Newsgroups gmane.text.xml.xmlbeans.user
Message-ID <[email protected]>
I found the problem.. a cut and paste error

root = RootDocument.Factory.parse(new
File("./src/test/resources/device.xml"));

I forgot the new File() :(

now when I do root.toString();

I see the original file imported.. that,s perfect.

now I need to copy the Root into a Pojo.

there is a easy way to do that ?   and I need to find out which attributes
are not in the schemas.. like that I'll convert them in a structure like
JAXB  Map otherAttributes



2009/12/23 Sebastien Dionne <[email protected]>

> works fine with JAXB.  and the syntax is fine.
>
>
> XSD
>
> <?xml version="1.0" encoding="utf-8"?>
> <root xmlns="urn:schemas-upnp-org:device-1-0">
>    <device>
>       <deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType>
>       <serviceList>
>          <service>
>
> <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>
>
> <serviceId>urn:upnp-org:serviceId:urn:schemas-upnp-org:service:ConnectionManager</serviceId>
>             <SCPDURL>ConnectionManager.xml</SCPDURL>
>             <controlURL>ConnectionManager/Control</controlURL>
>             <eventSubURL>ConnectionManager/Event</eventSubURL>
>          </service>
>       </serviceList>
>    </device>
> </root>
>
>
> XML received
>
> <?xml version="1.0" encoding="utf-8"?>
> <root xmlns="urn:schemas-upnp-org:device-1-0">
>    <device>
>       <deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType>
>       <serviceList>
>          <service>
>
> <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>
>
> <serviceId>urn:upnp-org:serviceId:urn:schemas-upnp-org:service:ConnectionManager</serviceId>
>             <SCPDURL>ConnectionManager.xml</SCPDURL>
>             <controlURL>ConnectionManager/Control</controlURL>
>             <eventSubURL>ConnectionManager/Event</eventSubURL>
>          </service>
>       </serviceList>
>       <dlna:X_DLNADOC xmlns:ns2="urn:schemas-upnp-org:device-1-0"
> xmlns="">DMS-1.00</dlna:X_DLNADOC>
>    </device>
> </root>
>
> 2009/12/23 Cezar Andrei <[email protected]>
>
>>  It’s probably because the document is not a well formed XML document.
>>
>>
>>
>> Cezar
>>
>>
>>   ------------------------------
>>
>> *From:* Sebastien Dionne [mailto:[email protected]]
>> *Sent:* Wednesday, December 23, 2009 11:17 AM
>>
>> *To:* [email protected]
>> *Subject:* Re: Xmlbeans is able to retrieve extra attribute from xml ?
>>
>>
>>
>> thanks, but why do I obtain a exception CDATA when I parse a xml that
>> contains more data then the schema ?
>>
>> RootDocument root = RootDocument.Factory.parse(new
>> File("./src/test/resources/
>>
>> RootDevice.xml"));
>> System.out.println(root.toString());
>>
>> Exception in thread "main" org.apache.xmlbeans.XmlException: error:
>> Unexpected element: CDATA
>>     at
>> org.apache.xmlbeans.impl.store.Locale$SaxLoader.load(Locale.java:3486)
>>     at org.apache.xmlbeans.impl.store.Locale.parse(Locale.java:712)
>>
>>
>>
>>  2009/12/23 Cezar Andrei <[email protected]>
>>
>> Sebastien,
>>
>>
>>
>> It is possible, please check the XmlCursor interface. On the xmlbeans
>> object you have the attributes, call:
>>
>> XmlCursor xc = xobj.getCursor(); . Move the cursor around with
>> xc.toFirstAttribute(); xc.toNextAttribute();
>>
>> And get info on the current token, in your case the attribute: xc.getName
>> xc.getTextValue, and when you’re done call xc.dispose().
>>
>>
>>
>> Cezar
>>
>>
>>   ------------------------------
>>
>> *From:* Sebastien Dionne [mailto:[email protected]]
>> *Sent:* Wednesday, December 23, 2009 7:10 AM
>> *To:* [email protected]
>> *Subject:* Xmlbeans is able to retrieve extra attribute from xml ?
>>
>>
>>
>> I have a simple question.
>>
>>
>>
>> I have a xsd standard (string..no complextype).
>>
>> I receive xml message that can contains extra attributes that are not in
>> the xsd.
>>
>> With JAXB they are put into
>>
>>     /**
>>      * Gets a map that contains attributes that aren't bound to any typed
>> property on this class.
>>      *
>>      * <p>
>>      * the map is keyed by the name of the attribute and
>>      * the value is the string value of the attribute.
>>      *
>>      * the map returned by this method is live, and you can add new
>> attribute
>>      * by updating the map directly. Because of this design, there's no
>> setter.
>>      *
>>      *
>>      * @return
>>      *     always non-null
>>      */
>>     public Map<QName, String> getOtherAttributes() {
>>         return otherAttributes;
>>     }
>>
>> but is it possible to do something similar with xmlbeans ?
>>
>> It a showstopper if I can't do that.
>>
>> thanks
>>
>>
>> --
>> -------------
>> A+
>>
>> Sébastien.
>>
>> Vous pouvez me suivre sur Twitter / You can follow me on Twitter :
>> http://twitter.com/survivant
>>
>>
>>
>>
>> --
>> -------------
>> A+
>>
>> Sébastien.
>>
>> Vous pouvez me suivre sur Twitter / You can follow me on Twitter :
>> http://twitter.com/survivant
>>
>
>
>
> --
> -------------
> A+
>
> Sébastien.
>
> Vous pouvez me suivre sur Twitter / You can follow me on Twitter :
> http://twitter.com/survivant
>



-- 
-------------
A+

Sébastien.

Vous pouvez me suivre sur Twitter / You can follow me on Twitter :
http://twitter.com/survivant
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.