XML 情報セット (Infoset) は、World Wide Web Consortium (W3C) で 2004 年 2 月 4 日に策定された仕様です。XML 情報セットとは、XML 文書に保管される情報の抽象モデルです。情報セットは、最も一般的な XML の使用法に合った方法で、データと情報間の分離を確立します。 具体的な XML データ・モデルのいくつかは、XML 情報セット項目およびそのプロパティーを参照することにより、定義されます。
XML 情報セット が XML 文書に保管される情報の抽象モデルであるのに対し、情報項目 は XML 文書のなんらかのコンポーネントの抽象的な表現です。 SOAP バージョン 1.2 ではこの抽象化を使用し、XML バージョン 1.x を 1 度も参照することなく SOAP メッセージ内の情報を定義します。 SOAP HTTP バインディングは、少なくとも SOAP XML Infoset の送信を提供する代替メディア・タイプを個々に許可します。
XML エレメントについては SOAP 1.1 が定義されていますが、情報項目については SOAP Message Transmission Optimization Mechanism (MTOM) が SOAP 1.2 構造を記述しています。 MTOM は SOAP バインディングを使用可能にして、XML 情報セットを SOAP アプリケーションに表示しながら、メッセージの各部分を選択的にエンコードすることにより、SOAP メッセージの送信またはワイヤー形式 (またはその両方) を最適化します。 SOAP 1.2 属性は今、SOAP 名前空間にあります。XML 情報セットには XML 名前空間のサポートが必要です。 コア XML 推奨では、XML 名前空間のサポートは必要としませんが、XML スキーマをサポートするには名前空間が必要です。
XML 情報セットは特定のインターフェースまたはインターフェースのクラスを必要とすることはなく、 また特定のインターフェースやインターフェースのクラスに有利であるということもありません。 XML 情報セット仕様は、明確さと簡素のために情報セットをツリーとして表示しますが、XML 情報セットをツリー構造で使用可能にするという要件はありません。 他のタイプのインターフェース (イベント・ベースのインターフェースおよび照会ベースのインターフェースを含みますが、これらに限りません) も、情報セットに適合する情報を提供することができます。 情報セットの情報を何らかの方法で XML アプリケーションで使用可能にできれば、XML 情報セットの要件は満たされます。
XML 情報セットは、整形式 XML 文書で使用可能な情報の記述で、一連の情報セット項目に関する XML 文書の抽象データ・モデルを記述します。 情報項目は一部の XML 文書の抽象的な記述であり、各情報項目には一連の関連付けられた指定のプロパティーがあります。 すべての他の情報項目は、文書情報項目のプロパティーから、他の情報項目のプロパティーを通じて直接的または間接的にアクセスできます。
情報セット項目の使用のガイドラインには、次のものがあります。
ある種の無効性は、一部のプロパティーに割り当てられる値に影響します。 エンティティー、表記、エレメントおよび属性は宣言されていないことがあります。 表記およびエレメントは多重宣言されることがあります (多重宣言は、エンティティーおよび属性の場合に有効です)。ID は未定義にすることも、多重定義することもできます。 XML Information Set 仕様の情報項目定義で該当しているような場合が有名です。
プロパティー | 説明 |
---|---|
[children] | 文書順の、子情報項目の番号付きリストです。 |
[document element] | 文書エレメントに対応するエレメント情報項目です。 |
[notations] | 順不同の表記情報項目。各表記について 1 つずつ、DTD で宣言されます。 いずれかの表記が多重宣言された場合、このプロパティーは値を持ちません。 |
[unparsed entities] | 順不同の一連の解析対象外エンティティー情報項目。各解析対象外エンティティーについて 1 つずつ、DTD で宣言されます。 |
[base URI] | 文書エンティティーのベース URI。 |
[character encoding scheme] | 文書エンティティーを表現する、文字エンコード・スキームの名前。 |
[standalone] | 文書のスタンドアロン状況の表示で、yes または no をとります。このプロパティーは文書エンティティーの最初に XML 宣言のオプションのスタンドアロン文書宣言から派生し、スタンドアロン文書宣言がない場合は値がありません。 |
[version] | 文書の XML バージョンを表すストリング。 このプロパティーは、オプションで文書エンティティーの最初に表示される XML 宣言から派生し、XML 宣言がない場合は値がありません。 |
[all declarations processed] | このプロパティーは文書の情報セットの厳密な重要部分ではありません。 そうではなく、プロセッサーが完全な DTD を読み取ったかどうかを表示します。 値はブール値です。false ならば、ある種のプロパティー (以下の説明に示します) が不明の場合があります。true の場合、プロパティーが不明であることはありません。 |
すべての情報セットが理解され、すべてのエンティティー参照がすでに展開された XML 文書が記述されます。 つまり、それぞれの置換テキストに対応した情報項目によって表現されます。 XML プロセッサーが宣言や値を読み取らなかったためにエンティティー参照が展開できない場合は、情報セットにそうした参照を表す明示的な条件が作成されます。