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> |
上記、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要素または属性が定義されているデータ型である場合は、
要素または属性の内容が制約されます。
"xs:date" 型であるXML要素に、"Hello World"のような文字列が含まれていれば、
妥当な要素とはいえません。
XML Schema によって、XML要素と属性へ独自の制約も追加できます。
この制約をファセットと呼びます。 次の章では、ファセットに関して更に説明します。
|