ファセットにより、データ型に制約を指定することができます。 ファセットを使用して、有効な値の範囲を指定したり、値の精度や長さを指定したり、有効な値のリストやパターン・マッチングを定義したりすることが可能です。
以下の表は、XML スキーマ言語の一部であるファセットの一覧です。| ファセット | 定義 |
|---|---|
| fractionDigits | 小数桁数は x 以下でなければなりません。 |
| length | 値の長さは x でなければなりません。 |
| maxExclusive | 値は x より小さくなければなりません。 |
| maxInclusive | 値は x 以下でなければなりません。 |
| maxLength | 値の長さは x 以下でなければなりません。 |
| minExclusive | 値は x より大きくなければなりません。 |
| minInclusive | 値は x 以上でなければなりません。 |
| minLength | 値の長さは x 以上でなければなりません。 |
| pattern | x は値が一致する正規表現の 1 つです。 |
| totalDigits | 有効数字の桁数は x 以下でなければなりません。 |
| whitespace | スキーマ・プロセッサーは x に応じて、空白文字の保存、置換、または省略を行う必要があります。 |
以下の表は、XML スキーマ言語に組み込まれた単純データ型の一覧です。この表は、各単純データ型に対して適用可能なファセットをリストしています。 W3C 勧告により列挙型がファセットとして指定されていますが、この表に列挙型はリストされません。 列挙型を表すには、UML 列挙を使用するか、«enumeration» ステレオタイプを持つクラスを使用します。
| 組み込み単純データ型 | 適用可能なファセット |
|---|---|
| ENTITY, ID, IDREFS | length, maxLength, pattern |
| 名前 | length, maxLength, minLength |
| NCName | length, maxLength, minLength |
| NMTOKEN | length, maxLength, minLength |
| NMTOKENS | length, maxLength |
| NOTATION | length, maxLength, minLength, pattern |
| QNAME | length, maxLength, minLength, pattern |
| anyURI, base64Binary, hexBinary | length, maxLength, minLength, pattern |
| language | length, maxLength, minLength |
| float, double | maxExclusive, maxInclusive, minExclusive, minExclusive, pattern |
| decimal | maxExclusive, maxInclusive, minExclusive, minExclusive, fractionDigits, totalDigits, pattern |
| 整数データ型 (integer、byte、int、long、negativeInteger、nonNegativeInteger、 nonPositiveInteger、positiveInteger、unsignedByte、unsignedInt、unsignedLong、unsignedShort) | maxExclusive, maxInclusive, minExclusive, minExclusive, totalDigits, pattern |
| 日時データ型 (date、time、dateTime、gYear、gYearMonth、gMonth、gMonthDay、gDay、duration) | maxExclusive, maxInclusive, minExclusive, minExclusive, pattern |
| string, normalizedString, token | length, maxLength, minLength, pattern |