Укажите и проверьте уникальный атрибут для элемента XML с помощью xsd - PullRequest
0 голосов
/ 08 апреля 2019

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

...