如何在xml架构中使属性唯一?

bra*_*ess 13 xml xsd

我想让元素的属性像主键一样独特.怎么做?

mar*_*c_s 27

这样的事情应该有效:

<xs:element name="books" maxOccurs="unbounded">
   <xs:complexType>
      <xs:sequence>
         <xs:element name="book" maxOccurs="unbounded">
            <xs:complexType>
               <xs:attribute name="isbn" type="xs:string"/>
            </xs:complexType>
         </xs:element>
      </xs:sequence>
   </xs:complexType>
   <xs:unique name="unique-isbn">
      <xs:selector xpath="book"/>
      <xs:field xpath="@isbn"/>
   </xs:unique>
</xs:element>
Run Code Online (Sandbox Code Playgroud)

基本上,您可以使用<xs:unique>元素定义"唯一性"约束,并定义XPath应该应用于哪个唯一性.

有关详细信息,请参阅W3Schools的条目<xs:unique>.