我正在尝试验证xml元素具有唯一属性。有问题的属性是生物元素的id属性。
请在下面查看我的代码:
XML:
<creature id="b1">
<!-- id would contain a unique string and is required-->
<name>Alien</name>
<!--string, name of creature, max 10 character-->
<hp>3</hp>
<!--integer, amount health this creature have, max 9999-->
<damage>1</damage>
<!--integer, amount of damage this creature deals-->
</creature>
XSD:
<xs:element name="creatures">
<xs:complexType>
<xs:sequence>
<xs:element name="creature" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="hp" type="xs:integer" />
<xs:element name="damage" type="xs:integer" />
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:unique name="duplicateIDsForbidden">
<xs:selector xpath=".//*" />
<xs:field xpath="@id" />
</xs:unique>
</xs:element>
我尝试使用xs:unique,但是我不确定文件是否需要其他内容才能成功验证。