XML 1.1スキーマを使用して、ドキュメント内の2つの要素がIDを共有していないことを確認することは可能ですか。たとえば、IDの0、1、および3は一意ではないため、添付されたXMLドキュメントは失敗するはずです。
<?xml version="1.0" encoding="UTF-8"?>
<Item>
<c id="0"/> <!-- error: shared id -->
<a id="1"/> <!-- error: shared id -->
<a id="2"/>
<b id="3"/> <!-- error: shared id -->
<a id="4"/>
<b id="0"/> <!-- error: shared id -->
<d id="6"/>
<d id="7"/>
<b id="3"/> <!-- error: shared id -->
<c id="1"/> <!-- error: shared id -->
</Item>
スキーマ、XML1.1に変換されます。
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="Item">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:choice>
<xs:element name="a">
<xs:complexType>
<xs:attribute name="id" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="b">
<xs:complexType>
<xs:attribute name="id" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="c">
<xs:complexType>
<xs:attribute name="id" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="d">
<xs:complexType>
<xs:attribute name="id" use="required"/>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>