XML Schema attribute要素
定義と使用方法
attribute要素は属性を定義します。
要素情報
出現回数 | schema要素の中で一度定義されます。複雑なタイプや属性グループで複数回参照されます。 |
親要素 | attributeGroup、schema、complexType、restriction (simpleContent)、extension (simpleContent)、restriction (complexContent)、extension (complexContent) |
内容 | annotation、simpleType |
文法
<attribute default=string fixed=string form=qualified|unqualified id=ID name=NCName ref=QName type=QName use=optional|prohibited|required any attributes > (annotation?,(simpleType?)) </attribute>
(?シンボルは、この要素がattribute要素の中で0回または1回出现する可能性を示します。)
属性
default
オプションです。属性のデフォルト値を指定します。defaultとfixed属性は同時に使用できません。
fixed
オプションです。属性の固定値を指定します。defaultとfixed属性は同時に使用できません。
form
オプションです。属性の形式を指定します。デフォルト値は、属性を持つschema要素のattributeFormDefault属性の値です。以下の値に設定できます:
- "qualified" - この属性を限定するために、ネームスペースプレフィックスと属性のNCName(無冒号名)を使用する必要があります。
- "unqualified" - この属性は命名空間前缀で限定されず、属性の無冒号名称(NCName)と一致する必要はありません、つまりローカル名です。
id
オプション。この要素のユニークなIDを指定します。
name
オプション。属性の名前を指定します。name属性とref属性は同時に使用できません。
ref
オプション。指定された属性の参照を指定します。name属性とref属性は同時に使用できません。refが指定されている場合、simpleType要素、formおよびtypeは表示されません。
type
オプション。内建のデータタイプやシンプルタイプを指定します。type属性は、simpleType要素が含まれていない内容でのみ表示されます。
use
オプション。この属性の使用方法を指定します。以下の値を設定できます:
- optional - 属性はオプションで、どんな値でも持つことができます(デフォルト)。
- prohibited - 属性の使用は禁止されています。
- required - 属性は必須です。
any attributes
オプション。non-schema命名空間を持つ他の属性を指定します。
例
例 1
<xs:attribute name="code"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[A-Z][A-Z]"/> </xs:restriction> </xs:simpleType> </xs:attribute>
上記の例では、「code」属性に制限があります。受け入れ可能な値は、大文字のAからZの2文字です。
例 2
複雑なタイプ内で既存の属性定義を使用して属性を宣言する場合は、ref属性を使用してください:
<xs:attribute name="code"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[A-Z][A-Z]"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:complexType name="someComplexType"> <xs:attribute ref="code"/> </xs:complexType>
例 3
属性はデフォルト値を持ち得るだけでなく、指定された固定値を持ち得ます。他の値が指定されていない場合、属性にデフォルト値が自動的に割り当てられます。以下の例では、デフォルト値は「EN」です:
<xs:attribute name="lang" type="xs:string" default="EN"/>
他の値が指定されていない場合、属性に固定値が自動的に割り当てられます。しかし、デフォルト値とは異なり、属性に固定値以外の他の値を指定した場合、ドキュメントはそれを無効として検証します。以下の例では、固定値は「EN」です:
<xs:attribute name="lang" type="xs:string" fixed="EN"/>
例 4
すべての属性はデフォルトでオプションです。属性を明示的にオプションに設定するには、"use" 属性を使用してください:
<xs:attribute name="lang" type="xs:string" use="optional"/>
属性を必須属性にする:
<xs:attribute name="lang" type="xs:string" use="required"/>