[1] [DFN[[[XML]][RUBY[情報集合][じょうほうしゅうごう]]]] ([DFN[Information Set]] = [DFN[[[Infoset]]]]) は、 
[[XML文書]]の持っている情報の種類を抽象的に定義したもの
(「抽象データ集合」 [SRC[>>24]]) です。

[9] [[XML名前空間]]を採用している [[XML 1.0]] の[[整形式]]文書を対象としています。
(後に [[XML 1.1]] も扱えるように修正されました。)

[45] [[XML情報集合]]は、[[XML]] の[[データモデル]]の標準と考えられています。

* 仕様書

[REFS[
- [24] [CITE@en[XML Information Set (Second Edition)]] ([TIME[2007-10-12 05:43:40 +09:00]] 版) <http://www.w3.org/TR/xml-infoset/>
- [40] [CITE[W3C XML Information Set Errata]] ([TIME[2006-06-28 22:25:13 +09:00]] 版) <http://www.w3.org/2001/10/02/xml-infoset-errata.html>
]REFS]

* XML 情報集合

[25] [DFN[[[XML情報集合]]]]は、[[XML情報集合]]仕様書が規定する抽象データ集合です [SRC[>>24]]。

[26] [[XML情報集合]]は、[[整形式]] [[XML文書]]中の情報を参照する時に使う一貫した定義の集合を提供することを目的としたものです [SRC[>>24]]。

[27] [[XML文書]]は、[[整形式]]であり、[[名前空間URL]]が[[相対URL]]でないなら、
[[情報集合]]を持ちます [SRC[>>24]]。

;; [28] 必ずしも[[妥当]]でなくても構いません [SRC[>>24]]。

[38] どのような[[情報集合]]であるかは、[[XML]] の版により異なることがあります [SRC[>>24]]。

[29] [[情報集合]]は、[[XML文書]]の[[構文解析]]以外の方法、例えば [[API]]
の操作で作ることもできます [SRC[>>24]]。
そのようなものを[DFN[[RUBYB[合成情報集合]@en[synthetic infoset]]]]といいます [SRC[>>24]]。

[39] [[合成情報集合]]は、不完全あるいは一貫しない情報が含まれていることがあります。
その場合、そのままでは [[XML文書]]として表現できないこともあります。 [SRC[>>24]]

[31] [[XML情報集合]]は、[[情報項目]]により構成されます。[[情報集合]]は[[木]]、
[[情報項目]]は[[節点]]に相当します。

;; [[情報項目]]、[[節点]]を参照。

[32] [[XML情報集合]]は、 [[API]] 等によって情報を提供する具体的な方法を規定するものではありません。
具体的な方法は、[[木構造]]である必要すらありません。 [SRC[>>24]]

[EG[
[33] 例えば [[SAX]] は[[イベント]]ベースの [[API]] を提供していますが、
[[XML情報集合]]と矛盾するものではありません。
]EG]

* 情報項目と特性

[10] XML 文書の情報集合は[DFN[[RUBYB[[[情報項目]]] [Information Item[WEAK[(s)]]]]]] 
で構成されます。

[11] 各情報項目には[DFN[[RUBYB[[[特性]]] [Property[WEAK[(ies)]]]]]]があります。
仕様書では特性は[SAMP(infoprop)[角括弧で括って]]示されています。

[16] XML 情報集合 <IW:Infoset:""> は XML 
文書に関する基本的な情報項目と特性を定義しています。

[FIG(short list)[
- [RUBYB[[[文書]]] [[[Document]]]]情報項目
-- [CODE(infoprop)[[RUBYB[子供] [children]]]]
-- [CODE(infoprop)[[RUBYB[[[文書要素]]] [document element]]]]
-- [CODE(infoprop)[[RUBYB[[[記法]]] [notations]]]]
-- [CODE(infoprop)[[RUBYB[[[非解析対象実体]]] [unparsed entities]]]]
-- [CODE(infoprop)[[RUBYB[[[基底URI]]] [base URI]]]]
-- [CODE(infoprop)[[RUBYB[[[文字符号化方式]]] [character encoding scheme]]]]
-- [CODE(infoprop)[[RUBYB[[[単独]]] @en[standalone]]]]
-- [CODE(infoprop)[[RUBYB[[[版]]] [version]]]]
-- [CODE(infoprop)[[RUBYB[[[全宣言処理済]]] @en[all declaration processed]]]]
- [RUBYB[[[要素]]] [[[Element]]]]情報項目
-- [CODE(infoprop)[[RUBYB[[[名前空間名]]] [namespace name]]]]
-- [CODE(infoprop)[[RUBYB[[[局所名]]] [local name]]]]
-- [CODE(infoprop)[[RUBYB[[[接頭辞]]] [prefix]]]]
-- [CODE(infoprop)[[RUBYB[[[子供]]] [children]]]]
-- [CODE(infoprop)[[RUBYB[[[属性]]] [attributes]]]]
-- [CODE(infoprop)[[RUBYB[[[名前空間属性]]] [namespace attributes]]]]
-- [CODE(infoprop)[[RUBYB[[[適用範囲内名前空間]]] [in-scope namespaces]]]]
-- [CODE(infoprop)[[RUBYB[[[基底URI]]] @en[base URI]]]]
-- [CODE(infoprop)[[RUBYB[[[親]]] [parent]]]]
- [RUBYB[[[属性]]] [[[Attribute]]]]情報項目
-- [CODE(infoprop)[[RUBYB[[[名前空間名]]] [namespace name]]]]
-- [CODE(infoprop)[[RUBYB[[[局所名]]] [local name]]]]
-- [CODE(infoprop)[[RUBYB[[[接頭辞]]] [prefix]]]]
-- [CODE(infoprop)[[RUBYB[[[正規化値]]] [normalized value]]]]
-- [CODE(infoprop)[[RUBYB[[[指定]]] [specified]]]]
-- [CODE(infoprop)[[RUBYB[[[属性型]]] [attribute type]]]]
-- [CODE(infoprop)[[RUBYB[[[参照]]] [references]]]]
-- [CODE(infoprop)[[RUBYB[[[所有者要素]]] [owner element]]]]
- [RUBYB[[[処理指令]]] [[[Processing Instruction]]]]情報項目
-- [CODE(infoprop)[[RUBYB[[[対象名]]] [target name]]]]
-- [CODE(infoprop)[[RUBYB[[[内容]]] [content]]]]
-- [CODE(infoprop)[[RUBYB[[[基底URI]]] @en[base URI]]]]
-- [CODE(infoprop)[[RUBYB[[[記法]]] @en[notation]]]]
-- [CODE(infoprop)[[RUBYB[[[親]]] [parent]]]]
- [RUBYB[[[未展開実体参照]]] [Unexpanded Entity Reference]]情報項目
-- [CODE(infoprop)[[RUBYB[[[名前]]] @en[name]]]]
-- [CODE(infoprop)[[RUBYB[[[システム識別子]]] [system identifier]]]]
-- [CODE(infoprop)[[RUBYB[[[公開識別子]]] [public identifier]]]]
-- [CODE(infoprop)[[RUBYB[[[宣言基底URI]]] [declaration base URI]]]]
-- [CODE(infoprop)[[RUBYB[[[親]]] @en[parent]]]]
- [RUBYB[[[文字]]] [[[Character]]]]情報項目
-- [CODE(infoprop)[[RUBYB[[[文字符号]]] [character code]]]]
-- [CODE(infoprop)[[RUBYB[[[要素内容空白]]] [element content whitespace]]]]
-- [CODE(infoprop)[[RUBYB[親] [parent]]]]
- [RUBYB[[[注釈]]] [[[Comment]]]]情報項目
-- [CODE(infoprop)[[RUBYB[[[内容]]] @en[content]]]]
-- [CODE(infoprop)[[RUBYB[[[親]]] @en[parent]]]]
- [RUBYB[[[文書型宣言]]] [The Document Type Declaration]]情報項目
-- [CODE(infoprop)[[RUBYB[[[システム識別子]]] @en[system identifier]]]]
-- [CODE(infoprop)[[RUBYB[[[公開識別子]]] @en[public identifier]]]]
-- [CODE(infoprop)[[RUBYB[[[子供]]] @en[children]]]]
-- [CODE(infoprop)[[RUBYB[[[親]]] @en[parent]]]]
- [RUBYB[[[非解析対象実体]]] [Unparsed entity]]情報項目
-- [CODE(infoprop)[[RUBYB[[[名前] [name]]]]]]
-- [CODE(infoprop)[[RUBYB[[[システム識別子]]] @en[system identifier]]]]
-- [CODE(infoprop)[[RUBYB[[[公開識別子]]] @en[public identifier]]]]
-- [CODE(infoprop)[[RUBYB[[[宣言基底URI]]] @en[declaration base URI]]]]
-- [CODE(infoprop)[[RUBYB[[[記法名]]] @en[notation name]]]]
-- [CODE(infoprop)[[RUBYB[[[記法]]] @en[notation]]]]
- [RUBYB[[[記法]]] [[[Notation]]]]情報項目
-- [CODE(infoprop)[[RUBYB[[[名前]]] @en[name]]]]
-- [CODE(infoprop)[[RUBYB[[[システム識別子]]] @en[system identifier]]]]
-- [CODE(infoprop)[[RUBYB[公開識別子] [public identifier]]]]
-- [CODE(infoprop)[[RUBYB[宣言基底 URI] [declaration base URI]]]]
- [RUBYB[[[名前空間]]] [[[Namespace]]]]情報項目
-- [CODE(infoprop)[[RUBYB[[[接頭辞]]] @en[prefix]]]]
-- [CODE(infoprop)[[RUBYB[[[名前]]] @en[name]]]]
]FIG]

[30] [[XML情報集合]]の[[情報項目]]と[[特性]]は、すべてを網羅することを意図したものではなく、
主として他の仕様書から参照するに当っての有用性を考慮して含めるかどうかを決めています [SRC[>>24]]。
[[XML情報集合]]が [[XML処理器]]の返さなければならない情報の最小集合であるというわけでもありません
[SRC[>>24]]。

[CITE[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/> は拡張特性を定義しています。
- 要素情報項目
-- [CODE(infoprop)[[RUBYB[[[取込み履歴]]] [[[include history]]]]]]特性
-- [CODE(infoprop)[[RUBYB[[[言語]]] [[[language]]]]]]特性
- 文字情報項目
-- [CODE(infoprop)[[RUBYB[[[取込み履歴]]] [[[include history]]]]]]特性
- 注釈情報項目
-- [CODE(infoprop)[[RUBYB[[[取込み履歴]]] [[[include history]]]]]]特性
- 処理指令情報項目
-- [CODE(infoprop)[[RUBYB[[[取込み履歴]]] [[[include history]]]]]]特性

[17] [[XML Schema]] <IW:XMLSchema1:""> は [ABBR[[[PSVI]]] [スキーマ検証後情報集合]]
を定義しています。

[CITE[A schema for serialized infosets]] 
<http://www.w3.org/2001/05/serialized-infoset-schema.html>
は XML 情報集合と XML Schema [ABBR[PSVI] [Schema 検証後情報集合]]の
XML 表現 (の XML Schema 定義) を用意しています。

[18] [CITE[XML Linking and Style]] 
<http://www.w3.org/TR/2001/NOTE-xml-link-style-20010605/> は [[XLink]] 
に関する特性などを提案しています。
- [RUBYB[[[連結集合]]] [[[Link Set]]]]
-- [RUBYB[[[連結]]] [[[Link]]]]情報項目 (is‐a 要素情報項目)
-- [RUBYB[[[弧]]] [[[Arc]]]]情報項目 (is‐a 要素情報項目)
-- [RUBYB[[[関係者]]] [[[Participant]]]]情報項目 (is‐a 要素情報項目)
-- [RUBYB[[[開始関係者]]] [[[Start Participant]]]]情報項目 (is‐a 関係者情報項目)
-- [RUBYB[[[終了関係者]]] [[[End Participant]]]]情報項目 (is‐a 関係者情報項目)
- 文書情報項目
-- [CODE(infoprop)[[RUBYB[[[連結集合]]] [[[Link Set]]]]]]特性
- 要素情報項目
-- [CODE(infoprop)[[RUBYB[[[開始関係者弧]]] [[[Start Participant Arcs]]]]]]特性
-- [CODE(infoprop)[[RUBYB[[[終了関係者弧]]] [[[End Participant Arcs]]]]]]特性
- 文字情報項目
-- [CODE(infoprop)[[RUBYB[[[開始関係者弧]]] [[[Start Participant Arcs]]]]]]特性
-- [CODE(infoprop)[[RUBYB[[[終了関係者弧]]] [[[End Participant Arcs]]]]]]特性
- 注釈情報項目
-- [CODE(infoprop)[[RUBYB[[[開始関係者弧]]] [[[Start Participant Arcs]]]]]]特性
-- [CODE(infoprop)[[RUBYB[[[終了関係者弧]]] [[[End Participant Arcs]]]]]]特性
- 処理指令情報項目
-- [CODE(infoprop)[[RUBYB[[[開始関係者弧]]] [[[Start Participant Arcs]]]]]]特性
-- [CODE(infoprop)[[RUBYB[[[終了関係者弧]]] [[[End Participant Arcs]]]]]]特性

[19]
[CITE[Using RDF to model XML structures (Abstract)]] <http://www.w3.org/2000/10/swap/infoset/xmod67.html>

[[Dan Connolly]] のメモ。

[23] [[HTML情報集合]]

* 具象データモデルとの関係

[34] [[DOM3]] は [[DOM]] と [[XML情報集合]]との関係を規定していました。 [[DOM2]]
以前で提供されていなかった [[XML情報集合]]中の情報にアクセスする[[属性]]も追加されています。
しかしこれらは現在の [[DOM Standard]] には引き継がれていません。

[35] [[XPath 1.0]] は [[XPath 1.0データモデル]]と[[XML情報集合]]との関係を規定しています。

[36] [[XDM]] は [[XML情報集合]] や [[PSVI]] との関係を規定しています。

* マーク付け言語との関係

[37] [[Atom]] は[[XML情報集合]]に関して[[語彙]]を規定しています。

* Web における XML 情報集合

[41] [[Web]] は当初より [[DOM]] を使っていました。 [[DOM]] は [[XML情報集合]]の設計時に
([[XPath 1.0データモデル]]や [[SAX]] と共に) ベースとされたようですから、
データモデルには類似性があります。しかし完全には同一ではありません。
両者の対応関係は、 [[DOM3 Core]] ではじめて明確化されました。

;; 対応関係を[[附属書]]として記述するに留まっており、 (おそらく [[XML情報集合]]が想定していたであろう)
専ら [[XML情報集合]]を使って [[XML]] から [[DOM]] への変換方法を記述する形にはなっていません。

[42] ただしそれは仕様上の [[XML]] と仕様上の [[DOM]] との対応関係を記述したものに過ぎず、
どちらも実際の [[Web]] 上の用法や実装とは細部において異なっていました。
後に [[Web]] 側で新たに開発された [[XML5]] や [[DOM Standard]] は、
どちらも[[XML情報集合]]を使っていません。

[43] [[Atom]] は [[XML情報集合]]上の[[語彙]]として規定されました。しかしそれ以外の[[マーク付け言語]]は
(古くは) [[SGML]] や [[XML]] の[[語彙]]として、または (近年では) [[DOM]]
上の[[語彙]]として規定する形を採っています。 [[XML]] の衰退に伴い、
今後新たな[[語彙]]が [[XML情報集合]]として規定される可能性は低いと思われます。

* 関連

[48] [[SGML]] の世界には [[SGML特性集合]]があり、同じような役割が期待されていたものと思われます。

* 歴史

** XML 情報集合の開発

[46] 
[[XML]] 本体 (構文) の[[仕様書]]が完成した後、 [[DOM]] や [[XPath 1.0データモデル]]や
[[SAX]] が使われるようになった後、 [[XML情報集合]]の開発が進められていきました。


[21] 情報項目 & 情報集合の変遷:
,WD 990517	,WD 991220	,WD 000726	,WD 001220	,WD 010202	,LWD 010316	,CR 010514	,PR 010810	,REC 011024	,PER 041210	,REC 040204
,[CODE(InfoItem)[[[文書]]情報項目]]	,==	,==	,==	,==	,==	,==	,==	,==	,==	,==
,[]	,[CODE(InfoProp)[[[子供]]]]	,==	,==	,==	,==	,==	,==	,==	,==	,==
,	,	,	,[CODE(InfoProp)[[[文書実体]]]]	,==	,X
,	,	,	,[CODE(InfoProp)[[[文書要素]]]]	,==	,==	,==	,==	,==	,==	,==
,[]	,[CODE(InfoProp)[[[記法]]]]	,==	,==	,==	,==	,==	,==	,==	,==	,==
,[]	,[CODE(InfoProp)[[[実体]]]]	,==	,==	,==	,X
,	,	,	,	,	,[CODE(InfoProp)[[[非解析対象実体]]]]	,==	,==	,==	,==	,==
,	,[CODE(InfoProp)[[[基底URI]]]]	,==	,==	,==	,==	,==	,==	,==	,==	,==
,[]	,[CODE(InfoProp)[[[子供—注釈]]]]	,X
,[]	,[CODE(InfoProp)[[[子供—文書型]]]]	,X
,[]	,[CODE(InfoProp)[[[実体—その他]]]]	,X
,[] (属性宣言)	,X
,	,	,	,	,	,[CODE(InfoProp)[[[文字符号化方式]]]]	,==	,==	,==	,==	,==
,	,	,[CODE(InfoProp)[[[単独]]]]	,==	,==	,==	,==	,==	,==	,==	,==
,	,	,[CODE(InfoProp)[[[版]]]]	,==	,==	,==	,==	,==	,==	,==	,==
,	,	,	,	,[CODE(InfoProp)[[[全宣言処理済]]]]	,==	,==	,==	,==	,==	,==
,[CODE(InfoItem)[[[要素]]情報項目]]	,==	,==	,==	,==	,==	,==	,==	,==	,==	,==
,[]	,[CODE(InfoProp)[[[名前空間URI]]]]	,[CODE(InfoProp)[[[名前空間名]]]]	,==	,==	,==	,==	,==	,==	,==	,==
,[]	,[CODE(InfoProp)[[[局所名]]]]	,==	,==	,==	,==	,==	,==	,==	,==	,==
,	,	,	,[CODE(InfoProp)[[[接頭辞]]]]	,==	,==	,==	,==	,==	,==	,==	,==
,[]	,[CODE(InfoProp)[[[子供]]]]	,==	,==	,==	,==	,==	,==	,==	,==	,==
,[]	,[CODE(InfoProp)[[[属性]]]]	,==	,==	,==	,==	,==	,==	,==	,==	,==
,	,[CODE(InfoProp)[[[宣言名前空間]]]]	,==	,X
,	,	,	,[CODE(InfoProp)[[[名前空間属性]]]]	,==	,==	,==	,==	,==	,==	,==
,	,[CODE(InfoProp)[[[適用範囲内名前空間]]]]	,==	,==	,==	,==	,==	,==	,==	,==	,==
,[]	,[CODE(InfoProp)[[[子供—注釈]]]]	,X
,	,[CODE(InfoProp)[[[子供—実体標識子]]]]	,X
,	,[CODE(InfoProp)[[[子供—文字データ標識子]]]]	,X
,	,[CODE(InfoProp)[[[基底URI]]]]	,==	,==	,==	,==	,==	,==	,==	,==	,==
,	,	,[CODE(InfoProp)[[[親]]]]	,==	,==	,==	,==	,==	,==	,==	,==
,[] (実体)	,X
,[CODE(InfoItem)[[[属性]]情報項目]]	,==	,==	,==	,==	,==	,==	,==	,==	,==	,==
,[]	,[CODE(InfoProp)[[[名前空間URI]]]]	,[CODE(InfoProp)[[[名前空間名]]]]	,==	,==	,==	,==	,==	,==	,==	,==
,[]	,[CODE(InfoProp)[[[局所名]]]]	,==	,==	,==	,==	,==	,==	,==	,==	,==
,	,	,	,[CODE(InfoProp)[[[接頭辞]]]]	,==	,==	,==	,==	,==	,==	,==	,==
,	,	,[CODE(InfoProp)[[[正規化値]]]]	,==	,==	,==	,==	,==	,==	,==	,==
,[]	,[CODE(InfoProp)[[[子供]]]]	,==	,X
,	,[CODE(InfoProp)[[[指定]]]]	,==	,==	,==	,==	,==	,==	,==	,==	,==
,[] (属性宣言)	,X
,	,[CODE(InfoProp)[[[既定値]]]]	,==	,X
,	,[CODE(InfoProp)[[[属性型]]]]	,==	,==	,==	,==	,==	,==	,==	,==	,==
,	,	,	,	,	,[CODE(InfoProp)[[[参照]]]]	,==	,==	,==	,==	,==
,	,[CODE(InfoProp)[[[子供—実体標識子]]]]	,X
,	,	,[CODE(InfoProp)[[[所有者要素]]]]	,==	,==	,==	,==	,==	,==	,==	,==
,[CODE(InfoItem)[[[処理指令]]情報項目]]	,==	,==	,==	,==	,==	,==	,==	,==	,==	,==
,[]	,[CODE(InfoProp)[[[対象]]]]	,==	,==	,==	,==	,==	,==	,==	,==	,==
,[]	,[CODE(InfoProp)[[[内容]]]]	,==	,==	,==	,==	,==	,==	,==	,==	,==
,	,[CODE(InfoProp)[[[基底URI]]]]	,==	,==	,==	,==	,==	,==	,==	,==	,==
,	,	,	,	,	,[CODE(InfoProp)[[[記法]]]]	,==	,==	,==	,==	,==
,	,	,[CODE(InfoProp)[[[親]]]]	,==	,==	,==	,==	,==	,==	,==	,==
,[] (実体)	,X
,[CODE(InfoItem)[[[未知実体への参照]]情報項目]]	,[CODE(InfoItem)[[[読み飛ばした実体への参照]]情報項目]]	,==	,[CODE(InfoItem)[[[未展開実体参照]]情報項目]]	,==	,==	,==	,==	,==	,==	,==
,[]	,[CODE(InfoProp)[[[名前]]]]	,==	,==	,==	,==	,==	,==	,==	,==	,==
,[]	,[CODE(InfoProp)[[[被参照]]]]	,[CODE(InfoProp)[[[実体]]]]	,==	,==	,X
,	,	,	,	,	,[CODE(InfoProp)[[[システム識別子]]]]	,==	,==	,==	,==	,==
,	,	,	,	,	,[CODE(InfoProp)[[[公開識別子]]]]	,==	,==	,==	,==	,==
,	,	,	,	,	,[CODE(InfoProp)[[[宣言基底URI]]]]	,==	,==	,==	,==	,==
,[] (実体)	,X
,	,	,[CODE(InfoProp)[[[親]]]]	,==	,==	,==	,==	,==	,==	,==	,==
,[CODE(InfoItem)[[[文字]]情報項目]]	,==	,==	,==	,==	,==	,==	,==	,==	,==	,==
,[CODE(InfoProp)[[[文字符号]]]]	,==	,==	,==	,==	,==	,==	,==	,==	,==	,==
,[CODE(InfoProp)[[[要素内容空白]]]]	,==	,==	,==	,==	,==	,==	,==	,==	,==	,==
,[] (字句的種類)	,X
,	,[CODE(InfoProp)[[[定義済実体]]]]	,X
,[] (実体)	,X
,	,	,[CODE(InfoProp)[[[親]]]]	,==	,==	,==	,==	,==	,==	,==	,==
,[CODE(InfoItem)[[[注釈]]情報項目]]	,==	,==	,==	,==	,==	,==	,==	,==	,==	,==
,[CODE(InfoProp)[[[内容]]]]	,==	,==	,==	,==	,==	,==	,==	,==	,==	,==
,[] (実体)	,X
,	,	,[CODE(InfoProp)[[[親]]]]	,==	,==	,==	,==	,==	,==	,==	,==
,[CODE(InfoItem)[[[文書型宣言]]情報項目]]	,==	,==	,==	,==	,==	,==	,==	,==	,==	,==
,[]	,[CODE(InfoProp)[[[外部DTD]]]]	,==	,X
,	,	,	,[CODE(InfoProp)[[[システム識別子]]]]	,==	,==	,==	,==	,==	,==	,==
,	,	,	,[CODE(InfoProp)[[[公開識別子]]]]	,==	,==	,==	,==	,==	,==	,==
,	,[CODE(InfoProp)[[[子供]]]]	,==	,==	,==	,==	,==	,==	,==	,==	,==
,	,	,[CODE(InfoProp)[[[親]]]]	,==	,==	,==	,==	,==	,==	,==	,==
,[CODE(InfoItem)[[[実体]]情報項目]]	,==	,[CODE(InfoItem)[[[実体宣言]]情報項目]]	,X
,[]	,[CODE(InfoProp)[[[実体型]]]]	,==	,X
,[]	,[CODE(InfoProp)[[[名前]]]]	,==	,X
,[]	,[CODE(InfoProp)[[[システム識別子]]]]	,==	,X
,[]	,[CODE(InfoProp)[[[公開識別子]]]]	,==	,X
,	,[CODE(InfoProp)[[[基底URI]]]]	,==	,X
,[]	,[CODE(InfoProp)[[[記法]]]]	,==	,X
,[]	,[CODE(InfoProp)[[[内容]]]]	,==	,X
,	,[CODE(InfoProp)[[[charset]]]]	,==	,X
,	,[CODE(InfoProp)[[[単独]]]]	,X
,[] (実体)	,X
,	,	,	,[CODE(InfoItem)[[[内部実体]]情報項目]]	,==	,X
,	,	,	,[CODE(InfoProp)[[[名前]]]]	,==	,X
,	,	,	,[CODE(InfoProp)[[[内容]]]]	,==	,X
,	,	,	,[CODE(InfoItem)[[[外部実体]]情報項目]]	,==	,X
,	,	,	,[CODE(InfoProp)[[[名前]]]]	,==	,X
,	,	,	,[CODE(InfoProp)[[[システム識別子]]]]	,==	,X
,	,	,	,[CODE(InfoProp)[[[公開識別子]]]]	,==	,X
,	,	,	,[CODE(InfoProp)[[[基底URI]]]]	,==	,X
,	,	,	,[CODE(InfoProp)[[[charset]]]]	,==	,X
,	,	,	,[CODE(InfoItem)[[[非解析対象実体]]情報項目]]	,==	,==	,==	,==	,==	,==	,==
,	,	,	,[CODE(InfoProp)[[[名前]]]]	,==	,==	,==	,==	,==	,==	,==
,	,	,	,[CODE(InfoProp)[[[システム識別子]]]]	,==	,==	,==	,==	,==	,==	,==
,	,	,	,[CODE(InfoProp)[[[公開識別子]]]]	,==	,==	,==	,==	,==	,==	,==
,	,	,	,	,	,[CODE(InfoProp)[[[宣言基底URI]]]]	,==	,==	,==	,==	,==	,==
,	,	,	,	,	,[CODE(InfoProp)[[[記法名]]]]	,==	,==	,==	,==	,==	,==
,	,	,	,[CODE(InfoProp)[[[記法]]]]	,==	,==	,==	,==	,==	,==	,==
,[CODE(InfoItem)[[[記法]]情報項目]]	,==	,==	,==	,==	,==	,==	,==	,==	,==	,==
,[]	,[CODE(InfoProp)[[[名前]]]]	,==	,==	,==	,==	,==	,==	,==	,==	,==
,[]	,[CODE(InfoProp)[[[システム識別子]]]]	,==	,==	,==	,==	,==	,==	,==	,==	,==
,[]	,[CODE(InfoProp)[[[公開識別子]]]]	,==	,==	,==	,==	,==	,==	,==	,==	,==
,	,[CODE(InfoProp)[[[基底URI]]]]	,==	,X	,X	,[CODE(InfoProp)[[[宣言基底URI]]]]	,==	,==	,==	,==	,==
,[] (実体)	,X
,[CODE(InfoItem)[[[属性宣言]]情報項目]]	,X
,[] (名前)	,X
,[] (要素型名)	,X
,[] (既定値)	,X
,[] (属性型)	,X
,[] (列挙値)	,X
,[] (既定型)	,X
,[] (実体)	,X
,	,[CODE(InfoItem)[[[実体開始標識子]]情報項目]]	,==	,==	,==	,X
,	,[CODE(InfoProp)[[[実体]]]]	,==	,==	,==	,X
,	,	,[CODE(InfoProp)[[[親]]]]	,==	,==	,X
,	,[CODE(InfoItem)[[[実体終了標識子]]情報項目]]	,==	,==	,==	,X
,	,[CODE(InfoProp)[[[実体]]]]	,==	,==	,==	,X
,	,	,[CODE(InfoProp)[[[親]]]]	,==	,==	,X
,	,[CODE(InfoItem)[[[文字データ開始標識子]]情報項目]]	,==	,==	,==	,X
,	,	,[CODE(InfoProp)[[[親]]]]	,==	,==	,X
,	,[CODE(InfoItem)[[[文字データ終了標識子]]情報項目]]	,==	,==	,==	,X
,	,	,[CODE(InfoProp)[[[親]]]]	,==	,==	,X
,	,[CODE(InfoItem)[[[名前空間宣言]]情報項目]]	,[CODE(InfoItem)[[[名前空間]]情報項目]]	,==	,==	,==	,==	,==	,==	,==	,==
,	,[CODE(InfoProp)[[[接頭辞]]]]	,==	,==	,==	,==	,==	,==	,==	,==	,==
,	,[CODE(InfoProp)[[[名前空間URI]]]]	,[CODE(InfoProp)[[[名前空間名]]]]	,==	,==	,==	,==	,==	,==	,==	,==
,	,[CODE(InfoProp)[[[子供]]]]	,X
,	,	,[CODE(InfoProp)[[[所有者要素]]]]	,X

注意: この表では名前が同じものを同じとしていますが、
名前が同じだからといって semantics や値域も同じとは限りません。

注意: 最初の WD では特性名がありませんでした。
2番目の WD で相当するものが既になくなっている特性については丸括弧内に適当な名前を与えています。

[47] [CITE[XML Information Set Requirements]], [TIME[2017-10-02T11:15:22.000Z]], [TIME[2021-04-12T12:11:47.137Z]] <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>

この文書は、仕様書の [[FE]] と [[SE]] の両方の正誤表になっています。
E01〜E03 は FE に対する修正で、 FE と SE の (正確な) 差分でもあります。

= E01: 誤って「文書型定義情報項目」とされていた箇所がありますが、
正しくは「文書型宣言情報項目」です。
= E02: [[妥当]]でない XML 文書では、同じ名前の複数の[[要素型宣言]]とか[[記法宣言]]が存在することがあります。そのような類への対処の規定。
[WEAK[(妥当でない文書では完全な情報集合を構成できないことはもとから言及されていましたが、起こり得る全ての場合についての言及が各情報項目の説明中に補われました。)]]
= E03: [[XML 1.1]] が [[PR]] になりました。 XML 情報項目は改訂せずにそのまま 1.1 
にも適用するようで、そのための修正。
注目すべきは、名前空間宣言を取り消す [CODE(XML)[xmlns:[VAR[prefix]]=""]] 
に対応する名前空間情報項目が存在するという規定。
[WEAK[(以前から、接頭辞無しの [CODE(XML)[xmlns=""]] という ]]
[[null名前空間]]宣言に対して名前空間情報項目が存在することとなっており、
その自然な拡張になっています。)]]

**

[2] 例えば [[XPath]] や [[DOM]] は 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] [WEAK[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] で、その [ABBR[SE]] が勧告になりました
<http://www.w3.org/TR/2004/REC-xml-infoset-20040204>。
[ABBR[FE]] との差分をとってみましたが、 >>12 の修正だけで、
他は一切変更がありませんでした。
(同時に勧告になった [[XML 1.1]] や [[XML名前空間 1.1]]
のように変更点一覧にも載っていない修正がある規格とは大違いで、
素晴らしいことです。 
[WEAK[(まあ、両規格と比べて抽象的なので大していじるところもないんですが。)]])

[20]
他のデータ・モデルとの関係

,*[[XML情報集合]]	,*[[DOM]]	,*[[XPath 1.0データ・モデル]]	,*[[SGML]]
,[[情報集合]]	,[[木]]	,[[木]]	,[[グローブ]]
,[[情報項目]]	,[[節点]]	,[[節点]]	,[[節点]]
,[[特性]]	,[[属性]]	,(名前無し)	,[[特性]]

注意: 対応はおおよそのものであり、実際には詳細で異なる点が色々とあります。

[22]
[CITE[The elaborated infoset: A proposal]] ([TIME[2007-01-31 02:24:12 +09:00]] 版) <http://www.w3.org/2001/tag/doc/elabInfoset.html>
([[名無しさん]] [WEAK[2007-02-01 13:40:15 +00:00]])

[FIG(quote)[
[FIGCAPTION[
[44] [CITE@en[Mapping Between JSON and XML]]
([TIME[2017-06-01 22:25:02 +09:00]])
<https://msdn.microsoft.com/en-us/library/bb924435(v=vs.110).aspx>
]FIGCAPTION]

> 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.

]FIG]
