需要像这样生成枚举类:
public enum FileTypes {
TEXT("txt");
DOC("doc");
ENTERPRISE_ARCHIVE("ear");
}
是否可以使用jaxb生成这样的枚举?
答案 0 :(得分:0)
您需要使用typesafeEnumClass绑定。
有一个命名惯例,您可以在其中为枚举添加后缀“Enum”。
给出每个xsd:枚举值(其字符串值是您的文本描述)和xsd:annotation,指定Java枚举值,如下所示:
<xsd:enumeration value="ear">
<xsd:annotation>
<xsd:appinfo>
<jaxb:typesafeEnumMember name="ENTERPRISE_ARCHIVE" />
</xsd:appinfo>
</xsd:annotation>
</xsd:enumeration>
然后按如下方式修改bindings.xjb文件,使名称以Enum结尾的所有XSD定义类型成为带有typesafeEnumClass绑定的Java枚举:
<bindings node="//xs:simpleType[substring(@name,string-length(@name)-3) = 'Enum']" multiple="true" required="false">
<typesafeEnumClass />
</bindings>