是否可以在 XML Schema 中表示一个简单类型,它是一个列表,并且具有进一步的限制,即列表中的每个项目只能出现一次?换句话说,是否可以在 XML Schema 中定义一个“set”简单类型?
例如,使用以下架构:
<xs:schema version="1.1" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:simpleType name="item">
    <xs:restriction base="xs:token">
      <xs:enumeration value="A"/>
      <xs:enumeration value="B"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="itemSet">
    <xs:list itemType="item"/>
  </xs:simpleType>
  <xs:element name="root">
    <xs:complexType>
      <xs:attribute name="set" type="itemSet"/>
    </xs:complexType>
  </xs:element>
</xs:schema>
本文件验证:
<root set="A B"/>
但是,此文档也是如此,我希望验证失败,因为B它重复了:
<root set="A B B"/>
我怀疑仅使用 XML Schema 是不可能的,但我不太了解它,所以我正在寻找确认。