XML 情報セット
XML 情報セット (Infoset) は、World Wide Web Consortium (W3C) で 2004 年 2 月 4 日に策定された仕様です。XML 情報セットとは、XML 文書に保管される情報の抽象モデルです。情報セットは、最も一般的な XML の使用法に合った方法で、データと情報間の分離を確立します。 具体的な XML データ・モデルのいくつかは、XML 情報セット項目およびそのプロパティーを参照することにより、定義されます。
XML 情報セット が XML 文書に保管される情報の抽象モデルであるのに対し、情報項目 は XML 文書のなんらかのコンポーネントの抽象的な表現です。 SOAP バージョン 1.2 は、この抽象化を使用して XML バージョン x を全く参照することなく 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 情報セットの要件は満たされます。
- コア項目のコア・プロパティーのみで構成される、固有の最小情報セット。
- すべてのコア項目および、すべての周辺プロパティーを持つすべての周辺項目で構成される、固有の最大情報セット。 そして、存在している周辺項目とプロパティー、 存在していない周辺項目とプロパティーの組み合わせごとに 1 つずつある中間の情報セット。 中間の情報セットは、最大情報セットと整合している必要があります。
情報セット項目
XML 情報セットは、整形式 XML 文書で使用可能な情報の記述で、一連の情報セット項目に関する XML 文書の抽象データ・モデルを記述します。 情報項目は一部の XML 文書の抽象的な記述であり、各情報項目には一連の関連付けられた指定のプロパティーがあります。 すべての他の情報項目は、文書情報項目のプロパティーから、他の情報項目のプロパティーを通じて直接的または間接的にアクセスできます。
情報セット項目の使用のガイドラインには、次のものがあります。
- 情報セットを持つためには、XML 文書が有効でなければならないという要件はありません。
- 1 つの XML 文書には、その文書が名前空間の制限を満たす場合、1 つの情報セットがあります。
- 1 つの XML 文書には、その文書が整形式である場合に 1 つの情報セットがあります。
- 情報セットでは 1 つの文書情報項目のみが許可されます。
- XML 文書の情報セットは 2 つ以上の情報項目で構成されます。
- 任意の整形式 XML 文書の情報セットには、少なくとも最小情報項目、すなわち、1 つの文書情報項目と 1 つのエレメント情報項目が含まれます。
- 各情報項目には一連の関連プロパティーがあり、その中にはコア・プロパティーと周辺プロパティーがあります。
- 文書情報項目
- エレメント情報項目
- 属性情報項目
- 処理命令情報項目
- 展開されていないエンティティー参照情報項目
- 文字情報項目
- コメント情報項目
- 文書タイプ宣言 (DTD) 情報項目
- 解析対象外エンティティー情報項目
- 表記情報項目
- 名前空間情報項目
ある種の無効性は、一部のプロパティーに割り当てられる値に影響します。 エンティティー、表記、エレメントおよび属性は宣言解除できます。 表記およびエレメントには複数の宣言を持つことができます。複数の宣言は、エンティティーおよび属性に有効です。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 プロセッサーが宣言や値を読み取らなかったためにエンティティー参照が展開できない場合は、情報セットにそうした参照を表す明示的な条件が作成されます。