我们可以在XSD中有一些规则说:所有那些以ID作为属性的元素都应该将其视为唯一ID,以便其他元素不应该使用该ID。 如何应用它作为getElementById(“id”)仅适用于此之后。
由于
答案 0 :(得分:1)
如果您的标识符只有数字,则不能使用xs:id。 然后是一个示例模式:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="root" type="rootType">
<xs:key name="attritemIdentifier">
<xs:selector xpath="item"/>
<xs:field xpath="@XYZ"/>
</xs:key>
</xs:element>
<xs:complexType name="rootType">
<xs:sequence>
<xs:element name="item" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="XYZ" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>
这是一个有效的实例:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<item XYZ="12345">item0</item>
<item XYZ="XYZ1">item1</item>
<item XYZ="XYZ2">item2</item>
<item XYZ="XYZ3">item3</item>
<item XYZ="XYZ4">item4</item>
<item XYZ="XYZ5">item5</item>
<item XYZ="XYZ9">item6</item>
<item XYZ="XYZ7">item7</item>
</root>
只要您必须使用相同的值属性XYZ,您将收到以下错误:
cvc-identity-constraint.4.2.2:声明的重复键值[XYZ9] 对于元素“root”的身份约束“attritemIdentifier”