最新的Web开发教程
 

XSD限制/刻面


限制用于为XML元素或属性定义可接受的值。 在XML元素的限制被称为方面。


关于价值观的限制

下面的例子定义了一个元素"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元素的一组可接受值的内容,我们将使用枚举约束。

下面的例子定义了一个元素"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>

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


关于价值观的系列限制

到限制的XML元素的内容来定义一系列的数字或字母,可以使用的,我们将使用图案约束。

下面的例子定义了一个元素"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大写或小写字母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"与限制。 可接受的值是字母一对或多对,每对由小写字母后跟大写字母的。 例如, "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"有限制。 唯一可接受值是男性还是女性:

<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>

在空白字符的限制

要指定空格字符的处理方式,我们将使用空白约束。

这个例子定义称为元素"address"与限制。 空白符设置为"preserve" ,这意味着XML处理器不会删除任何空白字符:

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

这个例子也定义了称为元素"address"与限制。 空白符设置为"replace" ,这意味着XML处理器将取代所有的空白字符(换行符,制表符,空格和回车)与空间:

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

这个例子也定义了称为元素"address"与限制。 空白符设置为"collapse" ,这意味着XML处理器将移除所有空白字符(换行符,制表符,空格,回车用空格代替,开头和结尾的空格都去掉了,并且多个空格减少到一个空格):

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

篇幅所限

到限制元素的值的长度,我们将使用的长度,最大长度,和的minLength约束。

这个例子定义称为元素"password"与限制。 该值必须正好八个大字:

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

这个例子定义了另一个元素"password"与限制。 该值必须是最小的五个字符和最多8个字符:

<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 指定如何空白(换行符,制表符,空格和回车符)的处理