XML SchemaのanyAttribute要素

定義と用法

anyAttribute要素は、スキーマで定義されていない属性を通じてXMLドキュメントを拡張するためにクリエイターが使用できます。

要素情報

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

文法

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

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

属性

id

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

namespace

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

  • ##any - 任何命名空間からの要素が表示されます(デフォルト)。
  • ##other - この要素の親要素のターゲット命名空間以外の任何命名空間からの要素が表示されます。
  • ##local - 命名空間で指定されていない要素が表示されます。
  • ##targetNamespace - この要素を含む親要素のターゲット命名空間からの要素が表示されます。
  • {URI参照のリスト、##targetNamespace、##local} - 空白で区切られた命名空間リストの要素が表示されます。このリストには以下の内容が含まれます:命名空間##targetNamespaceおよび##localのURI参照。

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>