最新的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 指定如何空白(換行符,製表符,空格和回車符)的處理