编写一个可以使用Set属性转换为Java的xml架构

时间:2012-07-21 06:02:39

标签: java xml collections jaxb

假设我们有以下xml架构类型definiton:

<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 Enum类型:

public enum StateType {

    CALIFORNIA,
    ARIZONA,
    NEVADA,
    UTAH;

}

我的问题是我们如何定义一个模式,当转换为Java类时,该类将包含一个可以保存上述枚举值子集的属性?请注意,它不应包含重复的枚举值。这种属性的自然选择是Set&lt; StateType&gt;,但我不知道如何编写一个会导致Set&lt; StateType&gt; Java代码中的属性。该属性也可以是List&lt; StateType&gt;如果我们可以某种方式强制列表不包含重复的条目。非常感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

您可以使用

定义方案
  

<xsd:unique>

element.More信息可以从以下链接获得。

Definitive XML Schema