XSD 属性
すべての属性はシンプルな型として宣言されます。
属性とは何ですか?
シンプルな要素には属性を持つことができません。属性を持つ要素がある場合、それは複合型とみなされます。ただし、属性自体は常にシンプルな型として宣言されます。
属性を宣言する方法は?
属性の定義方法は:
<xs:attribute name="xxx" type="yyy"/>
ここでは、xxx は属性名、yyy は属性のデータタイプを指定します。XML Schema には多くの内蔵データタイプがあります。
最も一般的なタイプは:
- 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要素および属性に独自の限定を追加することもできます。これらの限定はfacetと呼ばれます(編者注:多面体の面を意味し、限定面と翻訳できます)。facetに関するさらに多くの情報は次のセクションで学ぶことができます。