xml – XSD用于简单包含属性和文本

前端之家收集整理的这篇文章主要介绍了xml – XSD用于简单包含属性和文本前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何验证具有属性的元素的文本长度.
例如:
<sport code="FB">Football</sport>

现在我需要限制代码属性的可能值(如“FB”,“BB”,“TT”)
我还需要限制文本的可能值和长度(“Football”,“BasketBall”,“TableTennis”)以及这些文本的最大长度(“Football”,“TableTennis”)可以20.

我试过了

<complexType name="sport">
  <simpleContent>
    <extension base="string">
        <attribute name="code" type="code" />
    </extension>
  </simpleContent>
</complexType>
<simpleType name="code">
    <restriction base="string">
        <enumeration value="FB" />
        <enumeration value="BB" />
        <enumeration value="TT" />
    </restriction>
</simpleType>

但我无法验证文本“Foolball”的长度(也可能是值)
您能否帮助您了解如何验证代码和文本.
谢谢

我有同样的问题,当我看到有一个接受的答案时,我很有希望.但是,这个答案正是我试过的,但是我得到了一个架构无效的错误.显然,您不能在complexType中限制simpleContent,只能扩展它.此外,您不能在complexType中同时拥有属性和simpleContent.在办公室周围的书籍中搜索示例时,我想出了一个修复程序,我已经适应了这个问题,以防将来有人遇到这个问题:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:sp="http://www.ckhrysze.net/sports/1.0"
            targetNamespace="http://www.ckhrysze.net/sports/1.0"
        >

  <xsd:element name="sports">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="sport" type="sp:sportType" minOccurs="1" maxOccurs="unbounded" />
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

  <xsd:complexType name="sportType">
    <xsd:simpleContent>
      <xsd:extension base="sp:sportEnumeration">
        <xsd:attribute name="code" type="sp:codeEnumeration" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>

  <xsd:simpleType name="sportEnumeration">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Football" />
      <xsd:enumeration value="Basketball" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="codeEnumeration">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="FB" />
      <xsd:enumeration value="BB" />
    </xsd:restriction>
  </xsd:simpleType>

</xsd:schema>

猜你在找的XML相关文章