単純型の要素を宣言する
単純型の要素には、他の要素を含めたり、属性を持つことはでず、テキストしか含めることができません。ただし、「テキスト」というのはとてもあいまいな用語です。要素の内容を「テキスト」に制限するだけではなく、特定の型のテキストを指定することができます。このような制限を指定するには、予め定義されている単純型定義を使うか、独自のカスタム型を作成します。
XML Schemaには、一般的なテキスト方に対していくつかの単純型が用意されています。これらは、文字列、ブール値、URL、各種日付形式、あらゆる種類の数値です。また、これらの標準単純型に制限(ファセット)を追加して、さらに制限を厳しくし、自分独自のカスタム単純型を作成することもできます。たとえば、特定のパターンに一致する文字列(電話番号や製品コードなど)を含めたり、特定の範囲の日付のみを含めように指定することもできます。
XSDコード <xsd:element name="weight" type="xsd:string" />
<xsd:element name="age" type="xsd:integer" />
要素を宣言する際には、名前とその内容の種類を指定します。ここでは、weight要素には文字列を、age要素には整数を含めることを定義しています。
XMLコード <weight> 72.5kg</weight>
<age>65</age>
文字列とは、文字、数字、記号の並びのことです。このweight要素とage要素は、どりたも上の宣言に対して有効です。
XMLコード <weight> 72.5</weight>
<age>初老</age>
この例では、weight要素は一見正しくないように見えますが、数字は文字列の一種なので、スキーマに対して有効です(ただし、全ての文字列は数字ではありません)。age要素は無効です。(「初老」は整数ではありません)
1. <xsd:element と入力して宣言を開始します。
2. name="label" と入力します。
label部分には、宣言するようその名前を入力します。XML文書では、「<label>」と指定することになります。
3. type=" と入力します。
文字だけを指定する場合は、xsd:string と入力します。
小数を指定する場合は、xsd:decimalと入力します。これ以外の数値型については「数値型を使う」を参照してください。
true値またはfalse値(1か0)を指定する場合は、xsd:boolian と入力します。
日付を指定する場合は、xsd:date と入力します。これ以外の日付型については、「日付型と時刻型を使う」を参照してください。
時刻を指定する場合は、xsd:time と入力します。 これ以外の時刻型については、「日付型と時刻型を使う」を参照してください。
URLを指定する場合は、xsd:uri-reference と入力します。
ISO639にリストされている言語を表す2文字の略語を含める場合は、xsd:language と入力します。3. " と入力して型を終えます。
4. /> と入力してタグを終えます。
XSDコード <xsd:element name="last_modified" type="xsd:date" />この例では、last_modified要素に日付を含めます。
XMLコード <last_modified> 2007-08-07 </last_modified>要素には、CCYY-MMDDという形式で日付を設定します。つまり、4桁の年の後ろにハイフン、2桁の月、ハイフン、2桁の日付を指定します。このほかにも標準の日付書式がいくつかあります。
XMLコード <last_modified> July, 8, 2007 </last_modified>この日付書式は正しくないので、このlast_modified要素は無効です。
・標準の単純型は、これ以外にも数多くあります。全単純型のリストは http://www.w3.org/TR/xmlschema-2/#build-in-datatypes で見ることができます。
・また、標準の単純型を基盤として独自の単純型を作成することもできます。詳細については「カスタム単純型を作成する」を参照してください。
・標準の単純型は一般的に「xsd:」で始まります。(例外については、「既定のスキーマのスキーマ」参照)このため、カスタム単純型と簡単に区別できます。
・属性自体は(内容を含めたり、自分の属性を持つことはできないので)常に単純型です。宣言方法は単純なk他の要素と殆ど同じです。ただし、属性は要素内で宣言しないと意味がありません。この方法については「属性を宣言する」で説明します。
・要素に属性やほかの要素を含めることができる場合、その要素は複雑型です。詳細については後述の複雑型の定義を参照してください。
・有効な要素名は、文字またはアンダースコアで始まり、その後に任意の数の文字、数字、アンダースコア、ハイフン、ピリオドが続きます。詳細については「内容のある要素を書く」を参照してください。
・単純型の要素は、グローバルに宣言することもできます(xsd:schema要素のすぐ下)。その場合は、複雑型定義内でこれらを呼び出す(参照する)必要があります。または、複雑型定義内でローカルに宣言することもできます。その場合は自動的に参照されます。詳細については後述の複雑型の定義を参照してください。