XSD 属性


すべての属性は単純型として宣言されます。


属性とは?

単純要素は属性を持つことはできません。要素が属性を持つ場合、その要素は複合型として扱われます。ただし、属性自体は常に単純型として宣言されます。


属性を宣言する方法

属性を定義する構文は次のとおりです。

<xs:attribute name="xxx" type="yyy"/>

ここで、xxx は属性名を指し、yyy は属性のデータ型を指定します。XML Schema には多くの組み込みデータ型があります。

最も一般的に使用される型は次のとおりです。

  • xs:string
  • xs:decimal
  • xs:integer
  • xs:boolean
  • xs:date
  • xs:time

例

これは属性を持つXML要素です:

Smith

これは対応する属性の定義です:

<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について詳しく学びます。

その他の拡張