最新のWeb開発のチュートリアル
 

XSDの制限/ファセット


制限は、XML要素または属性の許容値を定義するために使用されます。 XML要素の制限は、ファセットと呼ばれています。


値の制限

次の例では、という要素を定義し"age"制限を。 年齢の値が120よりも0以上より小さくなることはありません。

<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までの大文字文字のTHREEです。

<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までの大文字または小文字の文字のTHREEです。

<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"制限を。 唯一の許容値は、シーケンス内の5桁で、各桁は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までの小文字の0回以上の繰り返しです。

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

次の例では、とも呼ばれる要素を定義し"letter"制限を。 許容値は、文字の1対以上、大文字に続いて小文字からなる各ペアです。 たとえば、 "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"制限を。 そこの行に正確に8文字でなければならず、それらの文字は、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"制限を。 ホワイトスペース制約がするように設定されている"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>

長さの制限

要素の値の長さを制限するために、我々は長さ、maxLengthの、とはminLength制約を使用します。

この例では、という要素を定義し"password"制限を。 値は正確に8文字でなければなりません。

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

この例では、と呼ばれる別の要素を定義し"password"制限を。 値は5文字、最大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 空白の処理方法(行は、タブ、スペース、およびキャリッジリターンを供給する)を指定します