1

次のような enum クラスを生成する必要があります。

public enum FileTypes {
TEXT("txt");
DOC("doc");
ENTERPRISE_ARCHIVE("ear");
}

jaxbを使用してこのような列挙型を生成することは可能ですか?

4

1 に答える 1

0

typesafeEnumClass バインディングを使用する必要があります。

  1. 列挙型に接尾辞「Enum」を付ける命名規則を用意してください。

  2. 各 xsd:enumeration 値 (文字列値はテキストの説明) に、次のように Java 列挙値を指定する xsd:annotation を指定します。

        <xsd:enumeration value="ear">
            <xsd:annotation>
                <xsd:appinfo>
                    <jaxb:typesafeEnumMember name="ENTERPRISE_ARCHIVE" />
                </xsd:appinfo>
            </xsd:annotation>
        </xsd:enumeration>
    
  3. 次に、 bindings.xjb ファイルを次のように修正して、名前が Enum で終わるすべての XSD 定義型が、typesafeEnumClass バインディングを使用する Java 列挙型になるようにします。

    <bindings node="//xs:simpleType[substring(@name,string-length(@name)-3) = 'Enum']" multiple="true" required="false">
            <typesafeEnumClass />
    </bindings>
    
于 2013-04-08T09:52:02.877 に答える