XML SchemaのanyAttribute要素

定義と使用法

anyAttribute 要素は、schemaで指定されていない属性を通じてXMLドキュメントを拡張することが開発者に可能です。

要素情報

項目 説明
出現回数 制限なし
親要素 complexType、restriction (simpleContent)、extension (simpleContent)、restriction (complexContent)、extension (complexContent)、attributeGroup
内容 annotation

文法

<anyAttribute
id=ID
namespace=namespace
processContents=lax|skip|strict
任意の属性
>
(注釈?)
</anyAttribute>

(? 符号は、この要素が anyAttribute 要素内で 0 回または 1 回表示できることを示します。)

属性

id

オプション。この要素のユニークな ID を指定します。

namespace

オプション。使用できる要素のナームスペースを指定します。ナームスペースが指定されていない場合、デフォルトは##anyです。指定された場合、以下のいずれかの値である必要があります。

  • ##any - 任何のナームスペースからの要素が表示されます(デフォルト)。
  • ##other - 親要素のターゲットナームスペース以外の任何のナームスペースからの要素が表示されます。
  • ##local - ナームスペースで指定されていない要素が表示されます。
  • ##targetNamespace - 組み込まれた親要素のターゲットナームスペースからの要素が表示されます。
  • {URI参照のナームスペース、##targetNamespace、##local}のリスト - スペースで区切られたナームスペースリストからの要素が表示されます。このリストには以下の内容が含まれます:ナームスペースの URI 参照##targetNamespace、##local。

processContents

オプション。アプリケーションや XML プロセッサが、この any 要素によって指定された要素に基づいて XML ドキュメントの検証を行う方法を指示する指標です。 processContents 属性が指定されていない場合、デフォルトはストリクトです。指定された場合、以下のいずれかの値である必要があります。

  • ストリクト - XML プロセッサは必要なナームスペースのスキーマを取得し、それらのナームスペースからのすべての要素を検証する必要があります。(デフォルト)
  • ラクス - ストリクトと同じ;しかし、スキーマを取得できなくてもエラーは発生しません。
  • スキップ - XML プロセッサは指定されたナームスペースからのすべての要素を検証しようとしません。

任意の属性

オプション。non-schema ナームスペースを持つ他の属性を指定します。

以下の例では、「person」要素に対する宣言を示しています。 <anyAttribute> 要素を使用することで、作成者が「person」要素に任意の数の属性を追加できます:

<xs:element name="person">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="firstname" type="xs:string"/>
      <xs:element name="lastname" type="xs:string"/>
    </xs:sequence>
    <xs:anyAttribute/>
  </xs:complexType>
</xs:element>