Hi everybody! I need to bind a XML doc like this:
<?xml version="1.0" encoding="UTF-8"?> <mapping> <em> <tag>PEOPLE</tag> <tag>INDIVIDUAL</tag> <base_ns>http://www.semanticweb.org/ontologies/2011/1/Familia.owl# </base_ns> <local_name>Pessoa</local_name> </em> <em> <tag>PEOPLE</tag> <tag>COLLECTIVE</tag> <base_ns>http://www.semanticweb.org/ontologies/2011/1/Familia.owl# </base_ns> <local_name>Familia</local_name> </em> </mapping> <em> can repeat unbound, the same with <tag>. And I have this schema: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="mapping"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" ref="em"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="em"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" ref="tag"/> <xs:element ref="base_ns"/> <xs:element ref="local_name"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="tag" type="xs:NCName"/> <xs:element name="base_ns" type="xs:anyURI"/> <xs:element name="local_name" type="xs:NCName"/> </xs:schema> Now, XMLBeans generates the right Java classes as far as I can see. The problem is this: //assume mapFilePath point to xml file above MappingDocument xmlDoc = MappingDocument.Factory.parse(new File(mapFilePath)); for(EmDocument.Em em : xmlDoc.getMapping().getEmList()) { //This always prints: 1 System.out.println(em.getTagList().size()); } So, basically, no matter how many <tag> elements I have on the XML, somehow XMLBeans only gets one! But it works fine with <em> elements... I've tried to group <tag> inside a <tags> element: <tags> <tag>PEOPLE</tag> <tag>INDIVIDUAL</tag> </tags> with corresponding schema changes, but it strangely displays the exact same behaviour. It only gets one <tag>... As a matter of fact, in this last case, if I do em.getTags() I get null! If someone could shed some light on this I'd be most grateful! Cheers, Henrique Nunes