2.5.4. 制限によるタイプの定義
概要
XML スキーマを使用すると、XML スキーマの単純型の可能な値を制限することにより、新しい型を作成できます。たとえば、厳密に 9 文字の文字列である単純型 SSN
を定義できます。単純型を制限することで定義された新しい型は、simpleType
要素を使用して定義されます。
制限による型の定義には、次の 3 つのことが必要です。
基本型の指定
基本型は、新しいタイプを定義するために制限されているタイプです。これは restriction
要素を使用して指定されます。restriction
要素は simpleType
要素の唯一の子で、ベース型を指定する 1 つの属性 base
を持ちます。基本型は、任意の XML スキーマの単純型にすることができます。
たとえば、xsd:int
の値を制限して新しい型を定義するには、例2.14「基本型として int の使用」 のような定義を使用します。
例2.14 基本型として int の使用
<simpleType name="restrictedInt"> <restriction base="xsd:int"> ... </restriction> </simpleType>
制限の定義
基本型に課せられた制限を定義するルールは、ファセット と呼ばれます。ファセットとは、ファセットの適用方法を定義する 1 つの属性 value
を持つ要素です。利用可能なファセットとその有効な value
設定は、ベース型によって異なります。たとえば、xsd:string
は、以下を含む 6 つのファセットをサポートします。
-
長さ
-
minLength
-
maxLength
-
pattern
-
whitespace
-
enumeration
各ファセット要素は restriction
要素の子です。
例
例2.15「SSN の単純型の説明」 は、ソーシャルセキュリティー番号を表す単純型 SSN
の例を示しています。作成される型は xxx-xx-xxxx
形式の文字列です。<SSN>032-43-9876<SSN> は、この型の要素に対する有効な値ですが、<SSN>032439876</SSN> は有効ではありません。
例2.15 SSN の単純型の説明
<simpleType name="SSN"> <restriction base="xsd:string"> <pattern value="\d{3}-\d{2}-\d{4}"/> </restriction> </simpleType>