使用xsd指定和验证XML元素的唯一属性

时间:2019-04-08 15:48:49

标签: xml validation xsd xsd-validation

我正在尝试验证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,但是我不确定文件是否需要其他内容才能成功验证。

0 个答案:

没有答案