リスト型を作成する
これまでに説明した要素は、どれも単位を1つずつしか含みませんでした。例えば、日付加担要素を定義すると、1つの日付しか含めることができませんでした。要素に対して複数の日付のリストを含めたい場合は、date型を基盤として、自分の目的に合ったリスト型を作成します。
1. <xsd:simpleType と入力してリスト型の定義を開始します。
2. name="label">と入力します。
labelの部分には宣言するようその名前を指定します。XML文書では<label>と入力することになります。
3. <xsd:list itemType="indicidual"> と入力します。
individualの部分には、リスト内の各値を定義する単純型の名前を入力します。
4. 必要であれば、xsd:length、xsdminlength、xsd:maxlength、xsd:enumulationを使ってリストの内容を制限します。
5. </xsd:list>と入力してリスト定義を終えます。
6. <xsd:simpleType />と入力して、単純型定義を終えます。
XSDコード <xsd:element name="list_of_birthdays" type="datelist" />
<xsd:simpleType name=datelist" >
<xsd:list itemType="xsd:date" />
</xsd:simpleType>
リスト型の基盤として使用できるのは標準又はカスタムの単純型だけです。datelistリスト型はxsd:date型に基づいています。ここでは新しいカスタム単純型を使ってlist_of_birthdays要素を宣言しています。
XMLコード <list_of_birthdays>1893-04-20 1904-05-11</list_of_birthdays>リストには、itemTypr属性に指定した方の値を0個以上含めます。それぞれの値はホワイトスペースで区切ります。これは有効な例です。
XSDコード <xsd:element name="list_of_3_birthdays" type="three_datelist" />
<xsd:simpleType name=three_datelist" >
<xsd:restriction base="datelist">
<xsd:length value="3" />
</xsd:restriction>
</xsd:simpleType>
xsd:length、xsd:maxLength、xsd:minLength、xsd:enumerationを使って、リストの内容をさらに制限できます。
XMLコード <list_of_3_birthdays>1893-04-20 1904-05-11 1852-06-25</list_of_3_birthdays>list_of_3_birthdays要素には3つの日付を含めます。
・リストを特に制限する必要がない場合は、4.と5.を量略し、/>と入力してxsd:list要素を終えます。
・リスト型の基盤として使用できるのは単純型だけです。複雑型は使用できません。
・ホワイトスペース(半角スペースやタブ、改行、復帰文字など)はリスト内の項目の区切りとみなされます。文字列リストの長さを指定する際には注意が必要です。