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"/>