Infoset

XML 情報集合 (XML)

[1] XML情報集合 (じょうほうしゅうごう) (Information Set = Infoset) は、 XML文書の持っている情報の種類を抽象的に定義したもの (「抽象データ集合」 >>24) です。

[9] XML名前空間を採用している XML 1.0整形式文書を対象としています。 (後に XML 1.1 も扱えるように修正されました。)

[45] XML情報集合は、XMLデータモデルの標準と考えられています。

仕様書

XML 情報集合

[25] XML情報集合は、XML情報集合仕様書が規定する抽象データ集合です >>24

[26] XML情報集合は、整形式 XML文書中の情報を参照する時に使う一貫した定義の集合を提供することを目的としたものです >>24

[27] XML文書は、整形式であり、名前空間URL相対URLでないなら、 情報集合を持ちます >>24

[28] 必ずしも妥当でなくても構いません >>24

[38] どのような情報集合であるかは、XML の版により異なることがあります >>24

[29] 情報集合は、XML文書構文解析以外の方法、例えば API の操作で作ることもできます >>24。 そのようなものを合成情報集合 (synthetic infoset) といいます >>24

[39] 合成情報集合は、不完全あるいは一貫しない情報が含まれていることがあります。 その場合、そのままでは XML文書として表現できないこともあります。 >>24

[31] XML情報集合は、情報項目により構成されます。情報集合情報項目節点に相当します。

情報項目節点を参照。

[32] XML情報集合は、 API 等によって情報を提供する具体的な方法を規定するものではありません。 具体的な方法は、木構造である必要すらありません。 >>24

[33] 例えば SAXイベントベースの API を提供していますが、 XML情報集合と矛盾するものではありません。

情報項目と特性

[10] XML 文書の情報集合は情報項目 (Information Item(s)) で構成されます。

[11] 各情報項目には特性 (Property(ies)) があります。 仕様書では特性は角括弧で括って示されています。

[16] XML 情報集合 IW:Infoset:"" は XML 文書に関する基本的な情報項目と特性を定義しています。

[30] XML情報集合情報項目特性は、すべてを網羅することを意図したものではなく、 主として他の仕様書から参照するに当っての有用性を考慮して含めるかどうかを決めています >>24XML情報集合XML処理器の返さなければならない情報の最小集合であるというわけでもありません >>24

An RDF Schema for the XML Information Set http://www.w3.org/TR/2001/NOTE-xml-infoset-rdfs-20010406 は XML 情報集合の情報項目や特性を RDF の語彙として定義しています。

[15] XInclude http://www.w3.org/TR/xinclude/ は拡張特性を定義しています。

[17] XML Schema IW:XMLSchema1:""PSVI を定義しています。

A schema for serialized infosets http://www.w3.org/2001/05/serialized-infoset-schema.html は XML 情報集合と XML Schema PSVIの XML 表現 (の XML Schema 定義) を用意しています。

[18] XML Linking and Style http://www.w3.org/TR/2001/NOTE-xml-link-style-20010605/XLink に関する特性などを提案しています。

[19] Using RDF to model XML structures (Abstract) http://www.w3.org/2000/10/swap/infoset/xmod67.html

Dan Connolly のメモ。

[23] HTML情報集合

具象データモデルとの関係

[34] DOM3DOMXML情報集合との関係を規定していました。 DOM2 以前で提供されていなかった XML情報集合中の情報にアクセスする属性も追加されています。 しかしこれらは現在の DOM Standard には引き継がれていません。

[35] XPath 1.0XPath 1.0データモデルXML情報集合との関係を規定しています。

[36] XDMXML情報集合PSVI との関係を規定しています。

マーク付け言語との関係

[37] AtomXML情報集合に関して語彙を規定しています。

Web における XML 情報集合

[41] Web は当初より DOM を使っていました。 DOMXML情報集合の設計時に (XPath 1.0データモデルSAX と共に) ベースとされたようですから、 データモデルには類似性があります。しかし完全には同一ではありません。 両者の対応関係は、 DOM3 Core ではじめて明確化されました。

対応関係を附属書として記述するに留まっており、 (おそらく XML情報集合が想定していたであろう) 専ら XML情報集合を使って XML から DOM への変換方法を記述する形にはなっていません。

[42] ただしそれは仕様上の XML と仕様上の DOM との対応関係を記述したものに過ぎず、 どちらも実際の Web 上の用法や実装とは細部において異なっていました。 後に Web 側で新たに開発された XML5DOM Standard は、 どちらもXML情報集合を使っていません。

[43] AtomXML情報集合上の語彙として規定されました。しかしそれ以外のマーク付け言語は (古くは) SGMLXML語彙として、または (近年では) DOM 上の語彙として規定する形を採っています。 XML の衰退に伴い、 今後新たな語彙XML情報集合として規定される可能性は低いと思われます。

関連

[48] SGML の世界には SGML特性集合があり、同じような役割が期待されていたものと思われます。

歴史

XML 情報集合の開発

[46] XML 本体 (構文) の仕様書が完成した後、 DOMXPath 1.0データモデルSAX が使われるようになった後、 XML情報集合の開発が進められていきました。

[21] 情報項目 & 情報集合の変遷:

WD 990517WD 991220WD 000726WD 001220WD 010202LWD 010316CR 010514PR 010810REC 011024PER 041210REC 040204
文書情報項目
[]子供
文書実体X
文書要素
[]記法
[]実体X
非解析対象実体
基底URI
[]子供—注釈X
[]子供—文書型X
[]実体—その他X
[] (属性宣言)X
文字符号化方式
単独
全宣言処理済
要素情報項目
[]名前空間URI名前空間名
[]局所名
接頭辞
[]子供
[]属性
宣言名前空間X
名前空間属性
適用範囲内名前空間
[]子供—注釈X
子供—実体標識子X
子供—文字データ標識子X
基底URI
[] (実体)X
属性情報項目
[]名前空間URI名前空間名
[]局所名
接頭辞
正規化値
[]子供X
指定
[] (属性宣言)X
既定値X
属性型
参照
子供—実体標識子X
所有者要素
処理指令情報項目
[]対象
[]内容
基底URI
記法
[] (実体)X
未知実体への参照情報項目読み飛ばした実体への参照情報項目未展開実体参照情報項目
[]名前
[]被参照実体X
システム識別子
公開識別子
宣言基底URI
[] (実体)X
文字情報項目
文字符号
要素内容空白
[] (字句的種類)X
定義済実体X
[] (実体)X
注釈情報項目
内容
[] (実体)X
文書型宣言情報項目
[]外部DTDX
システム識別子
公開識別子
子供
実体情報項目実体宣言情報項目X
[]実体型X
[]名前X
[]システム識別子X
[]公開識別子X
基底URIX
[]記法X
[]内容X
charsetX
単独X
[] (実体)X
内部実体情報項目X
名前X
内容X
外部実体情報項目X
名前X
システム識別子X
公開識別子X
基底URIX
charsetX
非解析対象実体情報項目
名前
システム識別子
公開識別子
宣言基底URI
記法名
記法
記法情報項目
[]名前
[]システム識別子
[]公開識別子
基底URIXX宣言基底URI
[] (実体)X
属性宣言情報項目X
[] (名前)X
[] (要素型名)X
[] (既定値)X
[] (属性型)X
[] (列挙値)X
[] (既定型)X
[] (実体)X
実体開始標識子情報項目X
実体X
X
実体終了標識子情報項目X
実体X
X
文字データ開始標識子情報項目X
X
文字データ終了標識子情報項目X
X
名前空間宣言情報項目名前空間情報項目
接頭辞
名前空間URI名前空間名
子供X
所有者要素X

注意: この表では名前が同じものを同じとしていますが、 名前が同じだからといって semantics や値域も同じとは限りません。

注意: 最初の WD では特性名がありませんでした。 2番目の WD で相当するものが既になくなっている特性については丸括弧内に適当な名前を与えています。

[47] XML Information Set Requirements, , https://www.w3.org/TR/1999/NOTE-xml-infoset-req-19990218.html

XML 情報集合仕様書の訂正

[12] W3C XML Information Set Errata http://www.w3.org/2001/10/02/xml-infoset-errata.html

この文書は、仕様書の FESE の両方の正誤表になっています。 E01〜E03 は FE に対する修正で、 FE と SE の (正確な) 差分でもあります。

  1. E01: 誤って「文書型定義情報項目」とされていた箇所がありますが、 正しくは「文書型宣言情報項目」です。
  2. E02: 妥当でない XML 文書では、同じ名前の複数の要素型宣言とか記法宣言が存在することがあります。そのような類への対処の規定。 (妥当でない文書では完全な情報集合を構成できないことはもとから言及されていましたが、起こり得る全ての場合についての言及が各情報項目の説明中に補われました。)
  3. E03: XML 1.1PR になりました。 XML 情報項目は改訂せずにそのまま 1.1 にも適用するようで、そのための修正。 注目すべきは、名前空間宣言を取り消す xmlns:prefix="" に対応する名前空間情報項目が存在するという規定。 (以前から、接頭辞無しの xmlns="" という null名前空間宣言に対して名前空間情報項目が存在することとなっており、 その自然な拡張になっています。)]]

[2] 例えば XPathDOM は XML 文書の構造をの集合として扱ったりしますが、実体参照マーク区間の扱いで微妙な差があったりします。そのような差異が決定的なものにならないようにどんな情報が存在しえるのかの指針とすべく作ったような感じの規格です。

  • [3] とはいえ、特別にこれへの適合を求めているわけではありませんし、実際にどのように構造を扱うか、・節モデルなのか事象モデルなのか問合せ駆動なのか、とかそういうことは全然制約していません。
  • [4] 結局のところ存在意義はあんまりないような気がします。 W3C勧告なのですが、 Note 程度でいいような気がしてます。
  • [5] 少なくても、仕様の細かいこととかに興味のない人とかには知らなくてもいい規格でしょう。
  • [6] その割に一部で妙に盛り上がってたりするけど、また何か面白い商売のねたでも見つけてきたんだろうか?
  • [7] XML Information Set http://www.w3.org/TR/xml-infoset/
  • [8] An RDF Schema for the XML Information Set http://www.w3.org/TR/xml-infoset-rdfs

[13] 2003-12-11 23:57:57 +00:00 名無しさん: >>12 の修正を反映した SE が出るみたいです : XML Information Set, second edition http://www.w3.org/TR/2003/PER-xml-infoset-20031210/

[14] で、その SE が勧告になりました http://www.w3.org/TR/2004/REC-xml-infoset-20040204FE との差分をとってみましたが、 >>12 の修正だけで、 他は一切変更がありませんでした。 (同時に勧告になった XML 1.1XML名前空間 1.1 のように変更点一覧にも載っていない修正がある規格とは大違いで、 素晴らしいことです。 (まあ、両規格と比べて抽象的なので大していじるところもないんですが。))

[20] 他のデータ・モデルとの関係

XML情報集合DOMXPath 1.0データ・モデルSGML
情報集合グローブ
情報項目節点節点節点
特性属性(名前無し)特性

注意: 対応はおおよそのものであり、実際には詳細で異なる点が色々とあります。

[22] The elaborated infoset: A proposal ( 版) http://www.w3.org/2001/tag/doc/elabInfoset.html (名無しさん 2007-02-01 13:40:15 +00:00)

[44] Mapping Between JSON and XML () https://msdn.microsoft.com/en-us/library/bb924435(v=vs.110).aspx

Internally, JSON is represented as an XML infoset when processed by WCF. Normally you do not have to be concerned with this internal representation as the mapping is only a logical one: JSON is normally not physically converted to XML in memory or converted to JSON from XML. The mapping means that XML APIs are used to access JSON content.