XSD 属性
すべての属性は単純型として宣言されます。
属性とは?
単純要素は属性を持つことはできません。要素が属性を持つ場合、その要素は複合型として扱われます。ただし、属性自体は常に単純型として宣言されます。
属性を宣言する方法
属性を定義する構文は次のとおりです。
<xs:attribute name="xxx" type="yyy"/>
ここで、xxx は属性名を指し、yyy は属性のデータ型を指定します。XML Schema には多くの組み込みデータ型があります。
最も一般的に使用される型は次のとおりです。
- xs:string
- xs:decimal
- xs:integer
- xs:boolean
- xs:date
- xs:time
例
これは属性を持つXML要素です:
これは対応する属性の定義です:
<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要素や属性に独自の制限を追加することもできます。これらの制限はファセット(編集者注:(多面体の)面を意味し、制限面と訳すこともできます)と呼ばれます。次のセクションでfacetについて詳しく学びます。
その他の拡張