1

次のxmlスキーマタイプの定義があるとします。

<xsd:simpleType name="StateType">
<xsd:restriction base="xsd:string">
   <xsd:enumeration value="California" />
   <xsd:enumeration value="Arizona" />
   <xsd:enumeration value="Nevada" />
   <xsd:enumeration value="Utah" />
</xsd:restriction>
</xsd:simpleType>

JAXBのxjcをこのタイプに適用すると、Java列挙型が生成されます。

public enum StateType {

    CALIFORNIA,
    ARIZONA,
    NEVADA,
    UTAH;

}

私の質問は、Javaクラスに変換されたときに、クラスに上記の列挙値のサブセットを保持できる属性が含まれるスキーマをどのように定義するかです。重複した列挙値が含まれていてはならないことに注意してください。このような属性の自然な選択はSet<StateType>ですが、JavaコードでSet<StateType>属性になるスキーマを作成する方法がわかりません。どういうわけかリストに重複したエントリが含まれないように強制できる場合は、属性をList<StateType>にすることもできます。あなたの助けは大歓迎です!

4

1 に答える 1

2

でスキームを定義できます

<xsd:unique>

要素。詳細については、次のリンクを参照してください。

決定的な XML スキーマ

于 2012-07-21T06:31:09.483 に答える