菜单
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

XML 教程

XML 主页 XML 简介 XML 如何使用 XML 树 XML 语法 XML 元素 XML 属性 XML 命名空间 XML 显示 XML HttpRequest XML 解析器 XML DOM XML XPath XML XSLT XML XQuery XML XLink XML 验证器 XML DTD XML Schema XML 服务器 XML 示例 XML 测验 XML 证书

XML AJAX

AJAX Introduction AJAX XMLHttp AJAX Request AJAX Response AJAX XML File AJAX PHP AJAX ASP AJAX Database AJAX Applications AJAX Examples

XML DOM

DOM Introduction DOM Nodes DOM Accessing DOM Node Info DOM Node List DOM Traversing DOM Navigating DOM Get Values DOM Change Nodes DOM Remove Nodes DOM Replace Nodes DOM Create Nodes DOM Add Nodes DOM Clone Nodes DOM Examples

XPath 教程

XPath Introduction XPath Nodes XPath Syntax XPath Axes XPath Operators XPath Examples

XSLT 教程

XSLT Introduction XSL Languages XSLT Transform XSLT <template> XSLT <value-of> XSLT <for-each> XSLT <sort> XSLT <if> XSLT <choose> XSLT Apply XSLT on the Client XSLT on the Server XSLT Edit XML XSLT Examples

XQuery 教程

XQuery Introduction XQuery Example XQuery FLWOR XQuery HTML XQuery Terms XQuery Syntax XQuery Add XQuery Select XQuery Functions

XML DTD

DTD Introduction DTD Building Blocks DTD Elements DTD Attributes DTD Elements vs Attr DTD Entities DTD Examples

XSD Schema

XSD 简介 XSD 如何做 XSD <schema> XSD 元素 XSD 属性 XSD 约束 XSD 复杂元素 XSD 空元素 XSD 仅元素 XSD 仅文本 XSD 混合内容 XSD 指示符 XSD <any> XSD <anyAttribute> XSD 替换 XSD 示例

XSD Data Types

XSD String XSD Date/Time XSD Numeric XSD Misc XSD Reference

Web Services

XML Services XML WSDL XML SOAP XML RDF XML RSS

参考手册

DOM 节点类型 DOM 节点 DOM NodeList DOM NamedNodeMap DOM Document DOM Element DOM Attribute DOM Text DOM CDATA DOM Comment DOM XMLHttpRequest DOM Parser XSLT 元素 XSLT/XPath 函数

XSD 约束/限制


约束用于定义 XML 元素或属性的可接受值。对 XML 元素的约束称为 facet。


值约束

以下示例定义了一个名为“age”的元素,并带有约束。age 的值不能低于 0 或高于 120。

<xs:element name="age">
  <xs:simpleType>
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="0"/>
      <xs:maxInclusive value="120"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

一组值的约束

要将 XML 元素的内容限制为一组可接受的值,我们将使用 enumeration(枚举)约束。

下面的示例定义了一个名为“car”的元素,并带有约束。唯一可接受的值是:Audi、Golf、BMW。

<xs:element name="car">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:enumeration value="Audi"/>
      <xs:enumeration value="Golf"/>
      <xs:enumeration value="BMW"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

上面的示例也可以这样写:

<xs:element name="car" type="carType"/>

<xs:simpleType name="carType">
  <xs:restriction base="xs:string">
    <xs:enumeration value="Audi"/>
    <xs:enumeration value="Golf"/>
    <xs:enumeration value="BMW"/>
  </xs:restriction>
</xs:simpleType>

注意:在这种情况下,“carType”类型可以被其他元素使用,因为它不是“car”元素的一部分。



一系列值的约束

要限制 XML 元素的内容以定义可以使用的一系列数字或字母,我们将使用 pattern(模式)约束。

下面的示例定义了一个名为“letter”的元素,并带有约束。唯一可接受的值是 a 到 z 中的一个小写字母。

<xs:element name="letter">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-z]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

下一个示例定义了一个名为“initials”的元素,并带有约束。唯一可接受的值是 a 到 z 中的三个大写字母。

<xs:element name="initials">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[A-Z][A-Z][A-Z]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

下一个示例也定义了一个名为“initials”的元素,并带有约束。唯一可接受的值是 a 到 z 中的三个小写字母或大写字母。

<xs:element name="initials">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

下一个示例定义了一个名为“choice”的元素,并带有约束。唯一可接受的值是以下字母之一:x、y 或 z。

<xs:element name="choice">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[xyz]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

下一个示例定义了一个名为“prodid”的元素,并带有约束。唯一可接受的值是连续的五个数字,并且每个数字必须在 0 到 9 的范围内。

<xs:element name="prodid">
  <xs:simpleType>
    <xs:restriction base="xs:integer">
      <xs:pattern value="[0-9][0-9][0-9][0-9][0-9]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

其他一系列值的约束

下面的示例定义了一个名为“letter”的元素,并带有约束。可接受的值是零个或多个小写字母(a 到 z)。

<xs:element name="letter">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="([a-z])*"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

下一个示例也定义了一个名为“letter”的元素,并带有约束。可接受的值是零个或多个字母对,每对由一个 lowercase 字母后跟一个 uppercase 字母组成。例如,“sToP”将通过此模式验证,但“Stop”或“STOP”或“stop”则不行。

<xs:element name="letter">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="([a-z][A-Z])+"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

下一个示例定义了一个名为“gender”的元素,并带有约束。唯一可接受的值是 male 或 female。

<xs:element name="gender">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="male|female"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

下一个示例定义了一个名为“password”的元素,并带有约束。必须有正好八个连续字符,这些字符必须是 a 到 z 的小写或大写字母,或 0 到 9 的数字。

<xs:element name="password">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-zA-Z0-9]{8}"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

对空格字符的约束

要指定如何处理空格字符,我们将使用 whiteSpace(空格)约束。

此示例定义了一个名为“address”的元素,并带有约束。whiteSpace 约束设置为“preserve”(保留),这意味着 XML 处理器 **不会** 删除任何空格字符。

<xs:element name="address">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="preserve"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

此示例也定义了一个名为“address”的元素,并带有约束。whiteSpace 约束设置为“replace”(替换),这意味着 XML 处理器将 **用空格替换** 所有空格字符(换行符、制表符、空格和回车符)。

<xs:element name="address">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="replace"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

此示例也定义了一个名为“address”的元素,并带有约束。whiteSpace 约束设置为“collapse”(折叠),这意味着 XML 处理器将 **删除所有空格字符**(换行符、制表符、空格、回车符被替换为空格,前导和尾随空格被移除,多个空格被缩减为单个空格)。

<xs:element name="address">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="collapse"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

长度约束

要限制元素中值的长度,我们将使用 length(长度)、maxLength(最大长度)和 minLength(最小长度)约束。

此示例定义了一个名为“password”的元素,并带有约束。该值必须正好是八个字符。

<xs:element name="password">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:length value="8"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

此示例定义了另一个名为“password”的元素,并带有约束。该值必须至少有五个字符,最多八个字符。

<xs:element name="password">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:minLength value="5"/>
      <xs:maxLength value="8"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

数据类型的约束

约束 描述
enumeration(枚举) 定义一组可接受的值
fractionDigits(小数位数) 指定允许的小数位数。必须大于或等于零
length 指定允许的字符或列表项的确切数量。必须大于或等于零
maxExclusive(最大值不包含) 指定数值的上限(值必须小于此值)
maxInclusive(最大值包含) 指定数值的上限(值必须小于或等于此值)
maxLength 指定允许的字符或列表项的最大数量。必须大于或等于零
minExclusive(最小值不包含) 指定数值的下限(值必须大于此值)
minInclusive(最小值包含) 指定数值的下限(值必须大于或等于此值)
minLength(最小长度) 指定允许的字符或列表项的最小数量。必须大于或等于零
pattern 定义可接受的字符的确切序列
totalDigits(总位数) 指定允许的数字的确切数量。必须大于零
whiteSpace 指定如何处理空格(换行符、制表符、空格和回车符)

×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持