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

public enum StateType {

    CALIFORNIA,
    ARIZONA,
    NEVADA,
    UTAH;

}

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

4

1 回答 1

2

您可以定义一个方案

<xsd:unique>

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

确定的 XML 模式

于 2012-07-21T06:31:09.483 回答