カスタム単純型を作成する
XML Schema言語には標準の単純型が数多く用意されていますが、これらの型を要件に合わせて修正したカスタム単純型にすることもできます。
1. <xsd:simpleTypeと入力して、カスタム単純型の定義を開始します。
2. name="label">と入力します。
labelの部分には新しいカスタム単純型の名前を指定します(1つの型を複数の要素で使用できるので、要素ではなく型の名前を指定します)。
3. <xsd:restriction base="foundation">と入力します。
foundationの部分には、カスタム型の基盤とする単純型を入力します。
4. 新しいカスタム型を定義するのに必要な制限(ファセット)を指定します。
4. </xsd:restriction>と入力します。
5. </xsd:simpleType>と入力してカスタム単純型定義を終えます。
XSDコード <xsd:simpleType name="zipcodeType" />
<xsd:restriction base="xsd:string">
<xsd:pattern value="\d(5)(-\d(4) ?" / >
</xsd:restriction>
</xsd:simpleType>
この例では、xsd:string型をもとにzipcodeTypeという米国郵便番号用の新しい方を作成しています。この新しい型には、5桁の数字と指定のハイフン、さらに4桁の数字が続くというパターンを設定しています。
XSDコード <xsd:element name="zipcode" type="zipcodeType>上で作成したzipcodeType型をこのように要素宣言することで使用できるようになります。
XMLコード <zipcode> 45632 </zipcode>
XMLコード <zipcode> 42398-0987 </zipcode>これらのzipcode要素は、どちらもスキーマに対して有効です。
XMLコード <zipcode> 4358-12349 </zipcode>
XMLコード <zipcode> 781001 </zipcode>これらのzipcode要素は、どちらも無効です。1つ目の要素は、4桁の数字とハイフン、5桁の数字を含んでいます。2つ目の要素は実際に使われている郵便番号ですが、パターンに全く従っていません。米国以外の郵便番号を設定する場合は、別の新しい要素を作成しなければなりません。
・名前付きカスタム単純型を定義したら、「スキーマの位置を指定する」で説明している方法でそれを使うことができます。xsd:labelという形式ではなく、labelという形式で指定します。
・1つの要素宣言で使う匿名単純型を作成することもできます。(「匿名カスタム型を使う」参照)
・リスト単純型を作成することもできます。(「リスト型を作成する」参照)