我尝试使用 mave-jaxb2 插件和 jaxb2-basics 简化插件将 XSD 转换为 JAXB 类。
pom.xml 中的配置在这篇文章中可用
sample.xsd(复杂选择类型)
<xs:complexType name="doclist">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="document1" type="type1">
<xs:annotation>
<xs:appinfo>
<simplify:as-reference-property/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="document2" type="type2">
</xs:element>
</xs:choice>
</xs:sequence>
<xs:attribute name="heading" type="xs:string" />
</xs:complexType>
但是,生成的 JAXB 类具有 aOrB 引用。
@XmlElements({
@XmlElement(name = "document1", type = Type1.class),
@XmlElement(name = "document2", type = Type2.class)
})
protected List<Object> document1OrDocument2;