我需要相当于这个:
public Enum myEnum {
A(1),
B(2),
C(3)
}
如果有可能,在XML方案中。我知道如何创建简单的枚举:
<xsd:simpleType name="myEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="A"></xsd:enumeration>
<xsd:enumeration value="B"></xsd:enumeration>
<xsd:enumeration value="C"></xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
但是对于第一个,我不知道。
谢谢。
答案 0 :(得分:1)
如果你使用了maven插件
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
你必须改变
中的xsd<xsd:simpleType name="myEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="1"></xsd:enumeration>
<xsd:enumeration value="2"></xsd:enumeration>
<xsd:enumeration value="3"></xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
并使用XJB文件进行绑定
<bindings node="//xs:simpleType[@name='myEnum']/xs:restriction/xs:enumeration[@value='1']">
<typesafeEnumMember name="A" />
</bindings>
<bindings node="//xs:simpleType[@name='myEnum']/xs:restriction/xs:enumeration[@value='2']">
<typesafeEnumMember name="B" />
</bindings>
<bindings node="//xs:simpleType[@name='myEnum']/xs:restriction/xs:enumeration[@value='3']">
<typesafeEnumMember name="C" />
</bindings>
应生成此枚举
@XmlEnum
public enum MyEnum{
@XmlEnumValue("1")
A("1"),
@XmlEnumValue("2")
B("2"),
@XmlEnumValue("3")
C("3");
private final String value;
}