xs:unique如何实现成属性?

xs:unique how to implement into attribute?

我想传递 XML 文件中乘客列表中每个属性的唯一性。

我的 xml 文件如下所示:

<passengers>
    <passenger resnumb="872-AA">
        <name>John</name>
        <surname>Doe</surname>
        <datebirth>1997-10-01</datebirth>
        <pricetix>1321</pricetix>
        <telephone>+48 128382812</telephone>
        <dateofbuy>2015-10-01</dateofbuy>
        <comment>Confirmed</comment>
    </passenger>
    <passenger resnumb="962-AA">
        <name>Jack</name>
        <surname>Lawnmower</surname>
        <datebirth>1993-01-01</datebirth>
        <pricetix>1243</pricetix>
        <telephone>+48 183722842</telephone>
        <dateofbuy>2015-09-01</dateofbuy>
        <comment>Confirmed</comment>
    </passenger>
</passengers>

并且 XML 文件如下所示:

    <xs:complexType name="passengerslist">
  <xs:sequence>
   <xs:element name="passenger" minOccurs="0" maxOccurs="unbounded">
    <xs:complexType>
     <xs:sequence>
      <xs:element name="name" type="xs:string"/>
      <xs:element name="surname" type="xs:string"/>
      <xs:element name="datebirth" type="xs:date"/>
      <xs:element name="pricetix" type="xs:integer"/>
      <xs:element name="telephone" type="xs:string"/>
      <xs:element name="dateofbuy" type="xs:date" minOccurs="0"/><!--Punkt 3-->
      <xs:element ref="comment"   minOccurs="0"/>
     </xs:sequence>
     <xs:attribute name="resnumb" type="PNR" use="required"/><!--Tutaj mamy punkt 4-->
    </xs:complexType>
    <xs:unique name="unique-resnumb">
     <xs:selector xpath="passenger"/>
     <xs:field xpath="@resnumb"/>
    </xs:unique>
   </xs:element>
  </xs:sequence>
 </xs:complexType>

我的代码还包含使用正则表达式模式创建的自定义类型:

 <xs:simpleType name="PNR">
  <xs:restriction base="xs:string">
   <xs:pattern value="\d{3}-[A-Z]{2}"/>
  </xs:restriction>
 </xs:simpleType>

如何修改属性 "resnumb" 以使预订编号唯一?

谢谢,

考虑 post 最少但完整的样本。基本上将 xs:unique 移动到 xs:element 声明,例如

<xs:element name="passengers" type="passengerslist">
    <xs:unique name="unique-resnumb">
     <xs:selector xpath="passenger"/>
     <xs:field xpath="@resnumb"/>
    </xs:unique>
</xs:element>