假设我们有以下 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>。非常感谢您的帮助!