制限は、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 | 空白の処理方法(行は、タブ、スペース、およびキャリッジリターンを供給する)を指定します |