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