我的JAXB存在以下xsd:
的问题<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:complexType name="data">
<xs:sequence maxOccurs="2">
<xs:element name="indg1" type="xs:string"/>
<xs:element name="indg2" type="xs:string"/>
<xs:element name="indg3" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="sample" type="data" />
</xs:schema>
生成以下类:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "data", propOrder = {
"indg1AndIndg2AndIndg3"
})
public class Data {
@XmlElementRefs({
@XmlElementRef(name = "indg1", type = JAXBElement.class),
@XmlElementRef(name = "indg2", type = JAXBElement.class),
@XmlElementRef(name = "indg3", type = JAXBElement.class)
})
protected List<JAXBElement<String>> indg1AndIndg2AndIndg3;
public List<JAXBElement<String>> getIndg1AndIndg2AndIndg3() {
if (indg1AndIndg2AndIndg3 == null) {
indg1AndIndg2AndIndg3 = new ArrayList<JAXBElement<String>>();
}
return this.indg1AndIndg2AndIndg3;
}
}
我所期待的是一个名为“Sample”的班级List<Data>
。
你能告诉我怎么做,为什么上面的行为是这样的呢?
答案 0 :(得分:1)
查看生成的类ObjectFactory。它包含使用类Data实例创建元素样本的方法。文档的顶级元素不需要自己的类。
你得到了这个奇怪的List<JAXBElement<String>>
,因为你重复了一系列异构元素。