枚舉我有類似下面的XSD:JAXB不會生成枚舉
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="1.0">
<xs:element name="foo">
<xs:complexType>
<xs:sequence>
<xs:element name="bar">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="type" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="a"/>
<xs:enumeration value="b"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="subtype" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="aa"/>
<xs:enumeration value="bb"/>
<xs:enumeration value="cc"/>
<xs:enumeration value="dd"/>
<xs:enumeration value="ee"/>
<xs:enumeration value="ff"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="something">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
但JAXB不會產生枚舉:
@XmlAttribute(name = "type", required = true)
protected String type;
@XmlAttribute(name = "subtype", required = true)
protected String subtype;
我使用maven-jaxb2-plugin
生成JAXB類。
如何在這種情況下生成枚舉?爲什麼它不能立即使用?
請注意,我無法更改XML結構。我更喜歡自定義綁定解決方案(使用xjb文件),但我也可以更改XSD,只要它不更改XML結構。
@LucaBassoRicci首先,它是一個屬性不是一個元素。其次,頂層元素有一些其他的語義(是一個有效的根元素)。 – Puce