次のような enum クラスを生成する必要があります。
public enum FileTypes {
TEXT("txt");
DOC("doc");
ENTERPRISE_ARCHIVE("ear");
}
jaxbを使用してこのような列挙型を生成することは可能ですか?
typesafeEnumClass バインディングを使用する必要があります。
列挙型に接尾辞「Enum」を付ける命名規則を用意してください。
各 xsd:enumeration 値 (文字列値はテキストの説明) に、次のように Java 列挙値を指定する xsd:annotation を指定します。
<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>