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

Reply via email to