Possible Duplicate:
How generate XMLElementWrapper annotation with xjc and customized binding
I would like to be able to process XML of this format using JAXB ...
<configuration>
<!-- more content here -->
<things>
<thing>
<name>xx1</name>
<value>yy1</value>
</thing>
<thing>
<name>xx2</name>
<value>yy2</value>
</thing>
</things>
<!-- more content here -->
</configuration>
I'd like to marshal the above XML into these Java classes (for simplicity, I left modifiers such as public
, protected
as well as getters/setters away):
class Configuration {
List<Thing> things;
}
class Thing {
String name;
String value;
}
The relevant part of my current XSD structure roughly looks like this:
<complexType name="Configuration">
<sequence>
<!-- ... -->
<element name="things" type="ns:Things" minOccurs="0" maxOccurs="unbounded"/>
<!-- ... -->
</sequence>
</complexType>
<complexType name="Things">
<sequence>
<element name="thing" type="ns:Thing" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
Unfortunately, XJC generates also a class for Things
even if that is really unnecessary in the Java part of the processing. So my output is this:
class Configuration {
Things things;
}
class Things {
List<Thing> thing;
}
class Thing {
String name;
String value;
}
Is there any way I can tell XJC to avoid generating this unnecessary class? Or is there any way I can re-phrase my XSD in order to avoid that generation? Both options would be fine with me.
In fact, I guess I would need to generate the @XmlElementWrapper
annotation as documented here: