Re "I need to copy the Root into a Pojo", an XMLBean is a pojo; not sure what you're asking.
Re "need to find out which attributes are not in the schemas" I think this does what you're asking; crudely effective: package test; import java.io.File; import noNamespace.ATTRTESTDocument; import org.apache.xmlbeans.QNameSet; import org.apache.xmlbeans.SchemaProperty; import org.apache.xmlbeans.SchemaType; import org.apache.xmlbeans.XmlObject; import org.w3c.dom.Node; public class Atest { private static final QNameSet QNS = QNameSet.forWildcardNamespaceString("##any", "*"); public static void main(String[] args) throws Exception { Atest mod = new Atest(); mod.go(); } private void go() throws Exception { ATTRTESTDocument atd = ATTRTESTDocument.Factory.parse(new File("xml/AttrTest.xml")); showChildAttributes(atd); } private static void showChildAttributes(XmlObject xo) throws Exception { String parentName = xo.getDomNode().getLocalName(); XmlObject[] xoAttrs = xo.selectAttributes(QNS); for (int i=0; i < xoAttrs.length; i++) { Node domainNode = xoAttrs[i].getDomNode(); String childName = domainNode.getLocalName(); String childValue = domainNode.getNodeValue(); boolean isInXsd = isAttributeInSchema(xo, childName); System.out.println ( parentName+":"+ childName+"="+ childValue+"\n\t"+ "defined in XSD:"+isInXsd ); } XmlObject[] xoChildren = xo.selectChildren(QNS); if (xoChildren != null) { for (int i=0; i < xoChildren.length; i++) { showChildAttributes(xoChildren[i]); } } } private static boolean isAttributeInSchema(XmlObject xo, String name) { boolean ret = false; SchemaType xoSt = xo.schemaType(); SchemaProperty[] xoSps = xoSt.getAttributeProperties(); if (xoSps.length > 0) { for (int i=0; i < xoSps.length; i++) { SchemaProperty xoSp = xoSps[i]; if (xoSp.getName().toString().equals(name)) { ret = true; break; } } } return ret; } } In my test this returned: ATTRTEST:noNamespaceSchemaLocation=../xsd/AttrTest.xsd defined in XSD:false TESTELEM:DEFATTR=defined defined in XSD:true TESTELEM:BOGUSATTR=bogus defined in XSD:false BOGUSELEM:BOGOSITY=true defined in XSD:false ________________________________ Paul Gillen ________________________________ From: Sebastien Dionne [mailto:survivan...@gmail.com] Sent: Wednesday, December 23, 2009 7:07 PM To: user@xmlbeans.apache.org Subject: Re: Xmlbeans is able to retrieve extra attribute from xml ? 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 <survivan...@gmail.com<mailto:survivan...@gmail.com>> 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 <cezar.and...@oracle.com<mailto:cezar.and...@oracle.com>> It's probably because the document is not a well formed XML document. Cezar ________________________________ From: Sebastien Dionne [mailto:survivan...@gmail.com<mailto:survivan...@gmail.com>] Sent: Wednesday, December 23, 2009 11:17 AM To: user@xmlbeans.apache.org<mailto:user@xmlbeans.apache.org> 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 <cezar.and...@oracle.com<mailto:cezar.and...@oracle.com>> 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:survivan...@gmail.com<mailto:survivan...@gmail.com>] Sent: Wednesday, December 23, 2009 7:10 AM To: user@xmlbeans.apache.org<mailto:user@xmlbeans.apache.org> 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