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>