Я попытался преобразовать XSD в классы JAXB, используя плагин mave-jaxb2 и jaxb2-basics, упрощающий плагин.jaxb2 упрощает элементы плагина, не упрощается
Конфигурация в pom.xml доступна в этом post
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;
Спасибо. Может ли упростить работу, если у меня одинаковые типы для нескольких элементов? например, '' –
ulab
@ulab Это еще один вопрос. – lexicore
штраф :). Я создал другой [вопрос] (http://stackoverflow.com/questions/34860485/jaxb2-simplify-plugin-for-xschoice-having-same-types) – ulab