Я пытаюсь проверить, что элемент 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, но я не уверен, требуется ли что-либо еще для успешной проверки файла.