XSD属性
すべての属性は単純型として宣言されています。
属性とは何ですか?
単純な要素は属性を持つことができません。要素に属性がある場合、それは複合型であると見なされます。ただし、属性自体は常に単純型として宣言されます。
属性を定義する方法は?
属性を定義するための構文は次のとおりです。
<xs:attribute name="xxx" type="yyy"/>
ここで、xxxは属性の名前であり、yyyは属性のデータ型を指定します。
XMLスキーマには多くの組み込みデータ型があります。最も一般的なタイプは次のとおりです。
- xs:string
- xs:decimal
- xs:integer
- xs:boolean
- xs:date
- xs:time
例
属性を持つXML要素は次のとおりです。
<lastname lang="EN">Smith</lastname>
そして、対応する属性の定義は次のとおりです。
<xs:attribute name="lang" type="xs:string"/>
属性のデフォルト値と固定値
属性には、デフォルト値または固定値が指定されている場合があります。
他の値が指定されていない場合、デフォルト値が属性に自動的に割り当てられます。
次の例では、デフォルト値は「EN」です。
<xs:attribute name="lang" type="xs:string" default="EN"/>
属性にも固定値が自動的に割り当てられ、別の値を指定することはできません。
次の例では、固定値は「EN」です。
<xs:attribute name="lang" type="xs:string" fixed="EN"/>
オプションおよび必須の属性
属性はデフォルトでオプションです。属性が必須であることを指定するには、「use」属性を使用します。
<xs:attribute name="lang" type="xs:string" use="required"/>
コンテンツの制限
XML要素または属性にデータ型が定義されている場合、要素または属性のコンテンツに制限が適用されます。
XML要素のタイプが「xs:date」で、「Hello World」のような文字列が含まれている場合、その要素は検証されません。
XMLスキーマを使用すると、XML要素と属性に独自の制限を追加することもできます。これらの制限はファセットと呼ばれます。ファセットの詳細については、次の章で読むことができます。