ホーム > X-Plus > XML Square >  スタンダーズ

この記事を送る はてなブックマークに追加する BuzzurlにブックマークBuzzurlにブックマーク Yahoo!ブックマークに登録
テキストリンクコードを取得する

スタンダーズコーナー:W3C規格解説 「XML Information Set」

2002年12月04日作成 

W3C規格解説
XML Information Set
   

(株)日本ユニテック
青木 秀起

「XML Information Set」とは、XMLデータについての用語を明確に定義するデータモデルで、2001年10月24日に勧告となりました。(http://www.w3.org/TR/xml-infoset/)

「XML Information Set」はなぜ必要か?

XMLは、データを表現する技術にすぎず、XMLプロセッサでXMLデータを処理した後どのような情報がどのような構造でアプリケーションに渡されるのかについては規定していません。それゆえ、XMLプロセッサがアプリケーションに渡す情報のモデルを抽象的に規定しておけば、他のXML関連規格の仕様書でより厳密な仕様定義を行うことができ、実装上の混乱も防ぐことができます。

例えば、XMLのソース・ツリーは、DOMやSAXを介して、あるいはXPointerやXQLを介して展開されますが、そのパスの指定はさまざまです。他の仕様書で使われていない用語がDOMでは使われていたり、SAXでは認識されない要素をDOMで指定したりすることも考えられます。データ型や用語を統一しておけばこうした混乱を避けることができるわけです。「XML Information Set」の定義により、XMLの汎用性が高まるというわけです。XML関連規格の中でもコア部分に該当し、XMLツール開発者にとって重要な規格と言えるでしょう。

「XML Information Set」とは何か?

「XML Information Set」は、XMLデータを、「情報項目」から成る「情報セット」と見なします。それぞれの「情報項目」はいくつかのプロパティを持っています。

以下の11の「情報項目」が定義されています。"[ ]"で囲まれているのはプロパティを表します。

文書情報項目 (Document Information Item)
XMLデータ全体を表す情報項目
1.[children]:文書要素に対応する要素情報項目
2.[document element]:文書要素に対応する要素情報項目
3.[notations]:DTDの記法宣言に対応した記法情報項目
4.[unparsed entities]:解析対象外エンティティを宣言するエンティティに宣言する解析対象外エンティティ情報項目
5.[base URI]:文書エンティティの持つ基底URI
6.[character encoding scheme]:文書エンティティを表現するときに使用される符号化方式
7.[standalone]:文書エンティティのXML宣言にあるスタンドアロン文書宣言に対応した情報
8.[version]:XMLのバージョン
9.[all declarations processed]:XMLプロセッサがDTDを全部読み込んだかどうかを示す


要素情報項目 (Element Information Items)
要素に対応する情報項目
1.[namespace name]:要素が属する名前空間URI
2.[local name]:要素の修飾名のローカル名
3.[prefix]:要素の修飾名の名前空間接頭辞
4.[children]:要素の下位に直接現れる要素
5.[attributes]:要素に対して指定された個々の属性に対応する属性情報項目
6.[namespace attributes]:要素で指定された名前空間宣言に対応する属性情報項目
7.[in-scope namespaces]:この要素で有効な名前空間に対応する名前空間情報項目のリスト
8.[base URI]:要素の持つ基底URI
9.[parent]:この要素情報項目を[children]プロパティに含む文書情報項目


属性情報項目 (Attribute Information Items)
属性に対応する情報項目
1.[namespace name]:属性が属する名前空間の名前空間URI
2.[local name]:属性の修飾名のローカル名
3.[prefix]: 属性の修飾名の名前空間接頭辞
4.[normalized value]:正規化された属性値
5.[specified]:属性が要素の開始タグで実際に指定されたか、あるいはデフォルト値としてXMLプロセッサが生成したかを示す
6.[attribute type]:DTDでこの属性に対して宣言されたデータ型を示す
7.[references]:[attribute type]プロパティがIDREF、IDREFS、ENTITY、ENTITIES、NOTATIONの場合、属性値によって参照されている要素情報項目
8.[owner element]:この属性情報項目を属性プロパティに含む要素情報項目


処理命令情報項目 (Processing Instruction Information Items)
処理命令に対応する情報項目
1.[target]:処理命令のターゲットの名前
2.[content]:処理命令の内容を表す文字列
3.[base URI]:処理命令の基底URI
4.[notation]:処理命令ターゲットを記法名として記法宣言を行っている場合、その記法宣言を表す記法情報項目
5.[parent]:この処理命令情報項目を[child]プロパティとして含む文書情報項目、要素情報項目、文書型宣言情報項目のいずれか


展開されなかったエンティティ参照情報項目 (Unexpanded Entity Reference Information Items)
展開されなかったエンティティ参照に対応する情報項目
1.[name]:展開されなかったエンティティの名前
2.[system identifier]:展開されなかったエンティティのシステム識別子
3.[public identifier]:展開されなかったエンティティの公開識別子
4.[declaration base URI]:システム識別子が相対URIであった場合に、それを絶対URIに解決するために使用する基底URI
5.[parent]:[child]プロパティにこの情報項目を含む要素情報項目


文字情報項目 (Character Information Items)
文字参照やCDATAセクション内に現れるものを含め、要素内の1文字1文字を表す情報項目
1.[character code]:その文字を表すISO/IEC 10646ににおけるコード
2.[element content whitespace]:意味のある空白記号か、意味のない空白記号かを示す
3.[parent]:[child]プロパティにこの情報項目を含む要素情報項目


コメント情報項目 (Comment Information Items)
コメントに対応する情報項目
1.[content]:コメントの内容を表現する文字列
2.[parent]:[child]プロパティにこの情報項目を含む文書情報項目、要素情報項目


DTD情報項目 (Document Type Declaration Information Item)
DOCTYPE宣言に対応する情報項目
1.[system identifier]:DOCTYPE宣言のSYSTEMキーワードで指定された外部サブセットのシステム識別子
2.[public identifier]:DOCTYPE宣言のPUBLICキーワードで指定された外部サブセットの公開識別子
3.[children]:DTDの内部サブセットおよび外部サブセットに現れる処理命令に対応する処理命令情報項目
4.[parent]:文書情報項目


解析対象外エンティティ情報項目 (Unparsed Entity Information Items)
DTDで宣言された解析対象外エンティティに対応する情報項目
1.[name]:解析対象外エンティティの名
2.[system identifier]:解析対象外エンティティのシステム識別子
3.[public identifier]:解析対象外エンティティの公開識別子
4.[declaration base URI]:システム識別子が相対URIであった場合に、それを絶対URIに解決するために使用する基底URI
5.[notation name]:エンティティに関連付けられた記法名
6.[notation]:記法名の表す記法に対応する記法情報項目


記法情報項目 (Notation Information Items)
DTDで宣言された記法に対応する情報項目
1.[name]:記法名
2.[system identifier]:記法のシステム識別子
3.[public identifier]:記法の公開識別子
4.[declaration base URI]:システム識別子が相対URIであった場合に、それを絶対URIに解決するために使用する基底URI


名前空間情報項目 (Namespace Information Items)
名前空間に対応する情報項目
1.[prefix]:名前空間に割り当てられた接頭辞
2.[namespace name]:名前空間URI

なお、「情報セット」や「情報項目」は、「ツリー」または「ノード」と同じ意味ですが、混乱を避けるため、「情報セット」や「情報項目」という言葉が使われています。「情報項目」は、DOMのノード、XPathデータ・モデルのツリーやノードに1対1で対応するわけではないからです。




関連サービス

標準化仕様の動向調査
最新動向を伝えるDXメールニュース (無料)



この記事と関連の高い記事

関連キーワード:XML関連規格




ページトップへ戻る