XML情報セット (第2版)


W3C

XML情報セット (第2版)

W3C勧告 2004年2月4日

このバージョン[原文]:
http://www.w3.org/TR/2004/REC-xml-infoset-20040204
最新のバージョン:
http://www.w3.org/TR/xml-infoset
以前のバージョン:
http://www.w3.org/TR/2003/PER-xml-infoset-20031210
編集者:
John Cowan, jcowan@reutershealth.com
Richard Tobin, richard@cogsci.ed.ac.uk

この文書のエラッタを参照いただきたい。これには、規範性のある訂正が含まれることがある。

翻訳も見ること。


概要

この仕様書は、XML文書の中の情報を参照する必要のある他の仕様で利用するための定義集合を提供する。

この文書の位置づけ

この節は、この文書の公開時における位置づけを説明したものである。他の文書がこの文書に取って代わることがある。現行のW3C公刊物のリストやこの技術レポートの最新バージョンは、http://www.w3.org/TR/ のW3C技術レポート索引で見ることができる。

この文書は、W3Cの勧告 (Recommendation) である。この文書は、W3C会員及びその他の利害関係者によりレビューされ、ディレクターによってW3C勧告として公布されているものである。この文書は、安定的な文書であって、参照素材として用いたり、他の文書から規範性ある参照としての引用に用いてもかまわない。勧告を作成する際のW3Cの役割は、仕様に対する注意を引き、その広範な普及を推進するものである。このことは、ウェブの機能と相互運用性とを高める。

この文書は、XML 1.1 および 名前空間 1.1 をカバーするよう、情報セット仕様を更新し、一定の種類の非妥当性の結果を明確にし、いくつかの印刷上のエラーを訂正するものである。これは、W3C XML Activity の産物である。この仕様書は、英語版が規範性ある唯一のバージョンである。しかしながら、この文書の翻訳を探しているのであれば、http://www.w3.org/2003/03/Translations/byTechnology?technology=xml-infoset を見てみること。

この勧告に関連があるかもしれない知的所有権のドキュメンテーションは、ワーキンググループの公開の知的所有権情報開示ページで見ることができる。

この文書のエラーは、www-xml-infoset-comments@w3.org までレポートいただきたい (公開アーカイブが利用可能である)。この勧告のエラッタリストは、http://www.w3.org/2001/10/02/xml-infoset-errata.html で入手できる。

目次


1. はじめに

この仕様書は、XML情報セット (XML Information Set, Infoset) と呼ばれる抽象データセットを定義する。その目的は、 整形式 (well-formed) のXML文書 [XML]の中にある情報を参照する必要のある他の仕様書で利用するために、一貫性ある定義集合を提供することにある。

これは、もれなく網羅しようとしたものではない。情報セットやプロパティを取り込むか否かについての主たる判断基準は、将来の仕様書で期待される有益さという基準である。また、これは、XMLプロセッサが返さなければならない最小限の情報の集合を制定するものでもない。

XML文書は、それが整形式であり、かつ、下記で解説する名前空間制約を満たす場合、情報セットを有する。XMLが情報セットを有するためには妥当 (vaild) でなければならないという必要条件はない。

情報セットは、XML文書を解析する以外の (この仕様書に記述されていない) 手法によって作り出されてもよい。下記の人工情報セットを見ること。

XML文書の情報セットは、多数の情報項目 (information item) からなる。どの整形式XML文書の情報セットも、少なくとも1個の文書情報項目と、その他の数個の情報項目とを包含することになる。情報項目は、XML文書のうちのある部分を抽象的に記述するものである。それぞれの情報項目には、名前付きのプロパティ (property) の集合が結び付けられている。この仕様書では、プロパティ名は、[konnakanji] のように、角括弧に入れて示される。情報項目の型は、第2節に列挙する。

XML情報セット仕様は、特定のインターフェイスや、インターフェイスのクラスを必須としたり好んだりはしない。この仕様書は、明快かつ単純にするため、情報セットを修正樹として表すが、XML情報セットが樹構造を通じて利用できるようにされなければならないという必要条件はない。イベントベースやクエリーベースのインターフェイスを含め (それらに限られないが)、その他の型のインターフェイスも、XML情報セット仕様に適合する情報を提供することができる。

「情報セット(information set)」や「情報項目(information item)」という用語は、コンピューティングで使われる「樹(tree)」や「ノード(node)」という用語に意味が似ている。しかしながら、他の特定のデータモデルとの混同の可能性を小さくするため、この仕様書では前者の用語が使われる。情報項目は、DOMのノードや、XPathデータモデルの「樹」や「ノード」と一対一で対応するものではない

この仕様書では、「なければならない(must)」、「べきである(should)」、「てもよい(may)」という言葉は、[RFC2119] で規定されている意味を前提としている。ただし、その言葉は大文字で現れない。

XMLのバージョン

XML仕様のバージョンが異なれば、規定される解析ルールも異なることがある。XML文書の情報セットは、その文書のバージョンに応当するバージョンの仕様書のルールに従って、その文書を解析して得られるものであると定義される。 バージョン番号を指定しない文書は、1.0 というバージョンをもつものとみなされる。XMLプロセッサが理解しないバージョン番号のついた文書を受け付ける場合、必ずしも正しい情報セットを生み出せるとは限らないことになる。

名前空間

[Namespaces] に適応しない XML文書は、技術的には整形式であるが、意味のある情報セットを有するものとはみなされない。すなわち、この仕様書は、[Namespaces] によって規定されている以外の方法で使われているコロンを含んだ要素名や属性名のある文書については、情報セットを定義しない。

さらに、この仕様書は、名前空間宣言の中で相対URI参照を使う文書について、情報セットを定義しない。これは、[Relative Namespace URI References] の W3C XML Plenary Interest Group の決定に従うものである。

[namespace name] プロパティの値は、対応する名前空間属性の既標準化値である。追加のURIエスケーピングは、プロセッサによって適用されない。

実体

情報セットは、そのXML文書を、実体参照を既に展開済みにして、すなわち、その置換テキストに対応する情報項目によって表して記述するものである。しかしながら、プロセッサがこの展開を実行しない環境もいろいろとある。実体が宣言されないこともあり、引き出し可能でないこともある。妥当性検証を行わないプロセッサは、宣言をすべては読まないこととしてもよいし、読むとしても、外部実体をすべては展開しなくてもよいのである。これらの場合には、実体参照を表すため、未展開実体参照情報項目が使われる。

行末の扱い

情報セット仕様のすべてのプロパティの値は、[XML], 2.11 "End-of-Line Handling" で解説されている行末標準化を考慮に入れる。

ベース

いくつかの情報項目は、[base URI] プロパティまたは [declaration base URI] プロパティを有する。これらは、[XML Base] に従って計算される。リソースの引き出しには、パーサレベル (たとえば、実体リゾルバ内) 以下でのリダイレクションを伴うことがあるので、注意してほしい。この場合、すべてのリダイレクションの後、そのリソースを引き出すために使われた最終的なURIが、ベースURIである。

これらのプロパティの値は、リソースの引き出しには必須とされることもあるURIエスケーピングを一切反映しないが、エスケープ済み文字が文書の中で指定されているか、リダイレクションの場合にサーバによって返される場合、そのエスケープ済み文字を含むことがある。

場合によっては (文書が文字列やパイプから読み込まれると言ったような場合)、[XML Base] の規則から、ベースURIがアプリケーション依存的になるという結果が生じることがある。これらの場合、この仕様書は、[base URI] プロパティまたは [declaration base URI] プロパティの値を定義しない。

相対URIを解釈するとき、[base URI] プロパティは、xml:base 属性の値より優先して使われるべきである。人工情報セットの場合には、それらが一貫しないことがあるのである。

「未知」と「値なし」

プロパティのなかには、未知 (unknown) や 値なし (no value) という値をとってよいものがあり、それぞれ、プロパティ値が未知であるとか、プロパティは値をとらないと言われる。これらの値は、互いに区別されるし、他のすべての値からも区別される。特に、それらは、それぞれ単にメンバがないにすぎない空文字列や空集合、空リストから区別される。この仕様書は、null という用語を使わない。コミュニティによっては、ここで意図されているのと合致しないことのある特定の含意を有するからである。

非妥当性から生じる非一貫性

上で注記したとおり、XML文書は、情報セットを有するために妥当である必要はない。しかしながら、一定の種類の非妥当性は、いくつかのプロパティに割り当てられる値に影響を及ぼす。実体や記法、要素、属性は、宣言解除されてもよい。記法や要素は、重ねて宣言されてもよい (実体や属性に宣言が複数あっても妥当である)。IDは、定義されなくてもよいし、重ねて定義されてもよい。そうしたケースは、下記の情報項目の定義の中で関連する箇所で注記される。

人工情報セット

この仕様書は、XML文書を解析した結果として得られる情報セットについて解説している。情報セットは、その他にも、たとえば、DOMといったようなAPIを利用したり、既存の情報セットを変形するといった手段で構築してもよい。

実在の文書に対応する情報セットは、必然的に、さまざまな点で一貫性を有することになる。たとえば、ある要素の [in-scope namespaces] プロパティは、その要素やその祖先の [namespace attributes] プロパティと一貫することになる。これは、その他の手段で構築された情報セットには当てはまらないことがある。そうした場合には、その情報セットに対応するXML文書はないことになり、それをシリアル化するためには、(たとえば、スコープ内にある名前空間に対応する名前空間宣言を出力することにより) 一貫性を欠く部分を解決することが必須となる。

2. 情報項目

情報セットは、以下の節で説明する、最大で11の異なる型の情報項目を包含することができる。情報項目ごとに、プロパティがある。参照しやすくするため、それぞれのプロパティに名前を与え、[konnakanji] のように示す。XML 1.0 勧告 [XML] にある定義および/または文法へのリンクが、情報項目ごとに与えられている。

2.1. 文書情報項目

XML定義: document (Section 2, Documents)

XML文法: [1] Document (Section 2.1, Well-Formed XML Documents)

情報セットには、ちょうど1個の文書情報項目 (document information item) があり、その他のすべての情報項目は、文書情報項目のプロパティから、直接的に、または、他の情報項目のプロパティを通じて間接的に、アクセスすることができる。

文書情報項目は、以下のプロパティを有する。

  1. [children] 子情報項目を文書順に並べた有順序リスト。リストには、ちょうど1個の要素情報項目が包含される。また、リストには、文書要素の外側にある処理命令ごとに1個ずつの処理命令情報項目と、文書要素の外側にある注釈ごとに1個ずつの注釈情報項目も包含される。DTDの内部にある処理命令や注釈は、除外される。文書型宣言がある場合、リストには、文書型宣言情報項目が包含される。
  2. [document element] 文書要素に対応する要素情報項目。
  3. [notations] DTDで宣言されている記法ごとに1個ずつある記法情報項目を集めた無順序集合。いずれかの記法が重ねて宣言される場合、このプロパティは値をとらない。
  4. [unparsed entities] DTDで宣言されている解析対象外実体ごとに1個ずつある解析対象外実体情報項目を集めた無順序集合。
  5. [base URI] 文書実体のベースURI。
  6. [character encoding scheme] 文書実体を表記するのに用いられている文字符号化スキームの名前。
  7. [standalone] 文書のスタンドアローン状態を yes か no かのいずれかで示すもの。このプロパティは、文書実体の冒頭にあるXML宣言の中にある任意的なスタンドアローン文書宣言から派生するものであり、スタンドアローン文書宣言がない場合には、値をとらない。
  8. [version] 文書のXMLバージョンを表す文字列。このプロパティは、文書実体の冒頭に任意的に存在するXML宣言から派生するものであり、XML宣言がない場合には、値をとらない。
  9. [all declarations processed] このプロパティは、厳密に言うと、文書の情報セットの一部分ではない。むしろ、プロセッサがDTD全体を読み込んだか否かを示すものである。その値は、ブール値である。それが false (偽) である場合、一定のプロパティ (下記のプロパティ解説で示される。) が未知であることがある。それが true (真) である場合、それらのプロパティが未知であることは決してない。

2.2. 要素情報項目

XML定義: element (Section 3, Logical Structures)

XML文法: [39] Element (Section 3, Logical Structures)

要素情報項目 (element information item) は、XML文書の中に出現する要素ごとに1個ずつある。要素情報項目のうち1個は、文書情報項目の [document element] プロパティの値となっていて、要素樹のルート (根) に対応するものであり、その他すべての要素情報項目は、その [children] プロパティを再帰的にたどることでアクセスすることができる。

要素情報項目は、以下のプロパティを有する。

  1. [namespace name] その要素型の名前空間名がある場合には、その名前空間名。その要素が名前空間に属さない場合には、このプロパティは値をとらない。
  2. [local name] 要素型名のローカル部分。これには、名前空間プリフィックスやそれに続くコロンは一切含まれない。
  3. [prefix] 要素型名の名前空間プリフィックス部分。名前にプリフィックスが付けられていない場合、このプロパティは値をとらない。名前空間を認識するアプリケーションは、要素を識別特定するのに、プリフィックスではなく名前空間名を使うべきであることに注意してほしい。
  4. [children] 子情報項目を文書順に並べた有順序リスト。このリストには、現在注目している要素の内部に直接出現する要素、処理命令、未処理外部実体への参照、データ文字、注釈ごとに1個ずつある要素情報項目、処理命令情報項目、未展開実体参照情報項目、文字情報項目、注釈情報項目を包含する。要素が空である場合、このリストはメンバを有しない。
  5. [attributes] この要素の属性 (値指定されているか、DTDからデフォルト指定されているもの) ごとに1個ずつある属性情報項目を集めた無順序集合。名前空間宣言は、この集合に出現しない。要素に属性がない場合、この集合はメンバを有しない。
  6. [namespace attributes] この要素の名前空間宣言 (値指定されているか、DTDからデフォルト指定されているもの) ごとに1個ずつある属性情報項目を集めた無順序集合。xmlns="" や xmlns:name="" という形式の宣言は、それぞれ、デフォルトの名前空間やプリフィックスを宣言解除するものであるが、名前空間宣言として数えられる。プリフィックスの宣言解除は、XML 1.1 名前空間で追加された。 定義により、名前空間属性はすべて ([prefix] プロパティが値をとらない xmlns という名前の名前空間属性を含む。)、http://www.w3.org/2000/xmlns/ という名前空間URIを有する。その要素が名前空間宣言を有しない場合、この集合はメンバを有しない。
  7. [in-scope namespaces] この要素について効力を有する名前空間ごとに1個ずつある名前空間情報項目を集めた無順序集合。この集合は、つねに、黙示的に http://www.w3.org/XML/1998/namespace という名前空間名に結合される xml というプリフィックスをもつ項目を包含する。xmlns というプリフィックス (名前空間を宣言するために使われる。) をもつ項目は包含されない。アプリケーションが、そのプリフィックスをもつ要素や属性に遭遇することはあり得ないからである。集合には、[namespace attributes] のメンバのすべてに対応する名前空間項目が含まれることになる。ただし、xmlns="" や xmlns:name="" という形式の宣言を表すものを除く。これらは、名前空間を宣言するのではなく、デフォルト名前空間やプリフィックスを宣言解除するものである。 有修飾名のプリフィックスを解釈するとき、このプロパティが、[namespace attributes] プロパティに優先して使われるべきである。人工情報セットの場合には、それらが一貫しない場合があるのである。
  8. [base URI] 要素のベースURI。
  9. [parent] この情報項目をその [children] プロパティに包含している文書情報項目または要素情報項目。

2.3. 属性情報項目

XML定義: attribute (Section 3.1, Start-Tags, End-Tags, and Empty-Element Tags)

XML文法: [41] Attribute (Section 3.1, Start-Tags, End-Tags, and Empty-Element Tags)

属性情報項目 (attribute information item) は、名前空間宣言であるものを含め、文書の中にある各要素の属性 (値指定されているものか、デフォルト指定されているもの) ごとに1個ずつある。しかしながら、名前空間宣言であるものは、ある要素の [attributes] プロパティではなく、 [namespace attributes] プロパティのメンバとして出現する。

DTDでデフォルト値を付けずに宣言され、要素の開始タグで値指定されていない属性は、属性情報項目で表されない。

属性情報項目は、以下のプロパティを有する。

  1. [namespace name] 属性の名前空間名がある場合には、その名前空間名。そうでない場合には、このプロパティは値をとらない。
  2. [local name] 属性名のローカル部分。これには、名前空間プリフィックスやそれに続くコロンは一切含まれない。
  3. [prefix] 属性名の名前空間プリフィックス部分。名前にプリフィックスが付けられていない場合、このプロパティは値をとらない。名前空間を認識するアプリケーションは、要素を識別特定するのに、プリフィックスではなく名前空間名を使うべきであるので注意してほしい。
  4. [normalized value] The normalized attribute value (see 3.3.3 Attribute-Value Normalization [XML]).
  5. [specified] この属性がその要素の開始タグで実際に値指定されたものか、DTDからデフォルト指定されたものかを示すフラグ。
  6. [attribute type] この属性についてDTDで宣言されている型を示すもの。合法な値は、ID, IDREF, IDREFS, ENTITY, ENTITIES, NMTOKEN, NMTOKENS, NOTATION, CDATA, ENUMERATION である。属性の宣言がない場合、このプロパティは値をとらない。宣言が読み込まれていないが、文書情報項目の [all declarations processed] プロパティが false (偽) である (そのため、未読の宣言があるかもしれない) 場合、このプロパティの値は未知である。アプリケーションは、値なしや未知を、CDATAの値と等価なものとして扱うべきである。このプロパティの値は、属性値の妥当性に影響されない。
  7. [references] 属性型が ID, NMTOKEN, NMTOKENS, CDATA, ENUMERATION である場合、このプロパティは値をとらない。属性型が未知である場合、このプロパティの値は未知である。それ以外の場合 (すなわち、属性型が IDREF, IDREFS, ENTITY, ENTITIES, NOTATION である場合)、このプロパティの値は、その属性値で参照される要素情報項目、解析対象外実体情報項目、記法情報項目を、そこで出現する順に並べた有順序リストである。この場合に、属性値が文法的に不当であるときには、このプロパティは値をとらない。型が IDREF もしくは IDREFS であり、かつ、IDのいずれかが、その文書の中にあるID属性の値として出現しない場合、または、型が ENTITY, ENTITIES, NOTATION であり、かつ、その実体のいずれかもしくは記法について宣言が読み込まれていない場合、文書情報項目の [all declarations processed] プロパティが true (真) であるか false (偽) であるかにより、このプロパティは値をとらず、または、未知である。型が IDREF または IDREFS であり、かつ、IDのいずれかが、文書で2個以上のID属性の値として出現する場合、あるいは、型が NOTATION であり、かつ、その記法に複数の宣言がある場合、このプロパティは値をとらない。
  8. [owner element] この情報項目をその [attributes] プロパティに包含している要素情報項目。

2.4. 処理命令情報項目

XML定義: processing instruction (Section 2.6, Processing Instructions)

XML文法: [16] PI (Section 2.6, Processing Instructions)

処理命令情報項目 (processing instruction information item) は、文書の中にある処理命令ごとに1個ずつある。XML宣言や、外部解析対象外実体のテキスト宣言は、処理命令とみなされない。

処理命令情報項目は、以下のプロパティを有する。

  1. [target] 処理命令のターゲット部を表す文字列 (XML名)。
  2. [content] 処理命令の内容を表す文字列。ターゲットとその直後に続く一切の空白とを除く。そうした内容がない場合、このプロパティの値は空文字列ということになる。
  3. [base URI] 処理命令のベースURI。情報セットがXML文書としてシリアル化される場合、もともと外部実体のトップレベルに出現していた一切の処理命令のベースURIを保存することができないことになるので注意してほしい。処理命令については、要素の xml:base 属性に対応する文法がないからである。
  4. [notation] ターゲットによって指名される記法情報項目。その名前をもつ記法に宣言がない場合、あるいは、複数の宣言がある場合、このプロパティは値をとらない。宣言が読み込まれていないが、文書情報項目の [all declarations processed] プロパティが false (偽) である (そのため、未読の宣言があるもしれない) 場合、このプロパティの値は未知である。
  5. [parent] この情報項目をその [children] プロパティに包含している文書情報項目、要素情報項目、文書型宣言情報項目。

2.5. 未展開実体参照情報項目

XML定義: Section 4.4.3, Included If Validating

未展開実体参照情報項目 (unexpanded entity reference information item) は、XMLプロセッサが外部解析対象実体が展開されていないことを示すのに用いることができる場所取りとして機能する。そうした情報項目は、要素の内容の内部にある外部一般実体への未展開参照ごとに1個ずつある。妥当性検証を行うXMLプロセッサや、妥当性検証を行わないがすべての外部一般実体を読むプロセッサは、妥当な文書について、未展開実体参照情報項目を生成することが決してないことになる。

未展開実体参照情報項目は、以下のプロパティを有する。

  1. [name] 参照される実体の名前。
  2. [system identifier] その実体のシステム識別子。プロセッサによって追加のURIエスケーピングを適用されない、実体の宣言の中で現れるままのものである。その実体に宣言がない場合、このプロパティは値をとらない。宣言が読み込まれていないが、文書情報項目の [all declarations processed] プロパティが false (偽) である (そのため、未読の宣言があるもしれない) 場合、このプロパティの値は未知である。
  3. [public identifier] 実体の公開識別子。4.2.2 External Entities [XML] に記述されているとおり標準化されたもの。その実体に宣言がない場合、または、宣言に公開識別子が含まれていない場合、このプロパティは値をとらない。宣言が読み込まれていないが、文書情報項目の [all declarations processed] プロパティが false (偽) である (そのため、未読の宣言があるもしれない) 場合、このプロパティの値は未知である。
  4. [declaration base URI] システム識別子を解釈するのに基準とされるべきベースURI (すなわち、その実体宣言が出現しているリソースのベースURI)。これは、[system identifier] プロパティと同じ状況において、未知または値なしになる。
  5. [parent] この情報項目をその [children] プロパティに包含している要素情報項目。

2.6. 文字情報項目

XML文法: [2] Char (Section 2.2, Characters)

文字情報項目 (character information item) は、リテラルであるか、文字参照としてであるか、CDATA節の内部であるかを問わず、文書に出現するデータ文字ごとに1個ずつある。

文字は、それぞれが論理的には別々の情報項目であるが、XMLアプリケーションが、必要や要望に応じて、文字をそれより大きなグループにまとめることは自由である。

文字情報項目は、以下のプロパティを有する。

  1. [character code] その文字の ISO 10646 文字コード (0 から #x10FFFF までの範囲内。ただし、この範囲内にある値がすべて合法なXML文字コードであるとは限らない)。
  2. [element content whitespace] その文字が、要素内容の内部に出現する空白であるか否かを示すブール値 ([XML], 2.10 "White Space Handling" を見よ)。妥当性検証を行うXMLプロセッサは、この情報を提供することが必須とされているので注意してほしい。包含側の要素に宣言がない場合、または、複数の宣言がある場合、空白文字については、このプロパティは値をとらない。宣言が読み込まれていないが、文書情報項目の [all declarations processed] プロパティが false (偽) である (そのため、未読の宣言があるもしれない) 場合、空白文字については、このプロパティの値は未知である。空白でない文字については、これはつねに false (偽) である。
  3. [parent] この情報項目をその [children] プロパティに包含している要素情報項目。

2.7. 注釈情報項目

XML定義: comment (Section 2.5, Comments)

XML文法: [15] Comment (Section 2.5, Comments)

注釈情報項目 (comment information item) は、DTDの中に出現するもの (これは表現されない。) を除き、元の文書の中にあるXML注釈ごとに1個ずつある。

注釈情報項目は、以下のプロパティを有する。

  1. [content] 注釈の内容を表す文字列。
  2. [parent] この情報項目をその [children] プロパティに包含している文書情報項目または要素情報項目。

2.8. 文書型宣言情報項目

XML定義: document type declaration (section 2.8, Prolog and Document Type Declaration)

XML文法: [28] doctypedecl (section 2.8, Prolog and Document Type Declaration)

XML文書に文書型宣言がある場合、情報セットは、単一の文書型宣言情報項目 (document type declaration information item) を包含する。実体や記法は、文書型宣言情報項目ではなく、文書情報項目のプロパティとして与えられるので注意してほしい。

文書型宣言情報項目は、以下のプロパティを有する。

  1. [system identifier] 外部サブセットのシステム識別子。プロセッサによって追加のURIエスケーピングを適用されない、DOCTYPE 宣言の中で現れるままのものである。外部サブセットがない場合、このプロパティは値をとらない。
  2. [public identifier] 外部サブセットの公開識別子。4.2.2 External Entities [XML] に記述されているとおり標準化されたもの。外部実体がない場合、または、公開識別子がない場合、このプロパティは値をとらない。
  3. [children] DTDに出現する処理命令を表す処理命令情報項目を、元の文書順に並べた有順序リスト。内部DTDサブセットに由来する項目は、外部サブセットの中にあるものより先に出現する。
  4. [parent] 文書情報項目。

2.9. 解析対象外実体情報項目

XML定義: entity (section 4, Physical Structures)

XML文法: [71] GEDecl (section 4.2, Entities)

解析対象外実体情報項目 (unparsed entity information item) は、DTDで宣言されている解析対象外一般実体ごとに1個ずつある。

解析対象外実体情報項目は、以下のプロパティを有する。

  1. [name] 実体の名前。
  2. [system identifier] 実体のシステム識別子。プロセッサによって追加のURIエスケーピングを適用されない、実体の宣言の中で現れるままのものである。
  3. [public identifier] 実体の公開識別子。4.2.2 External Entities [XML] に記述されているとおり標準化されたもの。実体に公開識別子がない場合、このプロパティは値をとらない。
  4. [declaration base URI] システム識別子を解釈するのに基準とされるべきベースURI (すなわち、その実体宣言が出現しているリソースのベースURI)。
  5. [notation name] 実体に結び付けられている記法名。
  6. [notation] 記法名によって指名される記法情報項目。その名前をもつ記法に宣言がない場合、あるいは複数の宣言がある場合、このプロパティは値をとらない。宣言が読み込まれていないが、文書情報項目の [all declarations processed] プロパティが false (偽) である (そのため、未読の宣言があるもしれない) 場合、このプロパティの値は未知である。

2.10. 記法情報項目

XML定義: notation (section 4.7, Notations)

XML文法: [82] NotationDecl (section 4.7, Notations)

記法情報項目 (notation information item) は、DTDで宣言されている記法ごとに1個ずつある。

記法情報項目は、以下のプロパティを有する。

  1. [name] 記法の名前。
  2. [system identifier] 記法のシステム識別子。プロセッサによって追加のURIエスケーピングを適用されない、記法の宣言の中で現れるままのものである。システム識別子が指定されていなかった場合、このプロパティは値をとらない。
  3. [public identifier] 記法の公開識別子。4.2.2 External Entities [XML] に記述されているとおり標準化されたもの。記法に公開識別子がない場合、このプロパティは値をとらない。
  4. [declaration base URI] システム識別子を解釈するのに基準とされるべきベースURI (すなわち、その記法宣言が出現しているリソースのベースURI)。

2.11. 名前空間情報項目

文書の中にある要素は、それぞれが、その要素のスコープ内にある名前空間ごとに1個ずつの名前空間情報項目 (namespace information item) を有する。

名前空間情報項目は、以下のプロパティを有する。

  1. [prefix] この項目がバインディングを記述しているプリフィックス。文法的には、これは、xmlns: プリフィックスに続く属性名の部分である。属性名が xmlns だけであり、そのために宣言がデフォルト名前空間のものである場合、このプロパティは値をとらない。
  2. [namespace name] プリフィックスの結合先の名前空間名。

3. 適合性

情報セット仕様の目的は定義集合を提供することにあるから、適合性とは、それらの定義を利用する仕様書の特性であって、実装物の特性ではない。

情報セット仕様書を参照する仕様書は、つぎのことをしなければならない。

仕様書が、上記の人工情報セットの下で記述した非一貫性を有する情報セットを構築することを容認する場合、それらの非一貫性がどのように解釈されるべきかを記述してもよいし、また、情報セットのシリアル化に備える場合には、その記述をするべきである。

付録 A. 参照

規範性ある参照

ISO/IEC 10646
ISO (International Organization for Standardization). ISO/IEC 10646-1:2000. Information technology - Universal Multiple-Octet Coded Character Set (UCS) - Part 1: Architecture and Basic Multilingual Plane および ISO/IEC 10646-2:2001.Information technology - Universal Multiple-Octet Coded Character Set (UCS) - Part 2: Supplementary Planes. ときどき修正されたり、新バージョンで置き換えられたり、新しい部分を追加して拡張されたりしたもの。[Geneva]: International Organization for Standardization. (最新のバージョンについては http://www.iso.ch を見よ。)
Namespaces
Namespaces in XML, W3C, eds. Tim Bray, Dave Hollander, Andrew Layman. 1999年1月14日. http://www.w3.org/TR/REC-xml-names で入手可能。
Namespaces 1.1
Namespaces in XML 1.1, W3C, eds. Tim Bray, Dave Hollander, Andrew Layman, Richard Tobin. 2004年2月4日. http://www.w3.org/TR/xml-names11 で入手可能。
RFC2119
Key words for use in RFCs to Indicate Requirement Levels, ed. S. Bradner. 1997年3月. http://www.ietf.org/rfc/rfc2119.txt で入手可能。
XML
Extensible Markup Language (XML) 1.0 (Third Edition), W3C, eds. Tim Bray, Jean Paoli, C.M. Sperberg-McQueen, Eve Maler, François Yergeau. 2004年2月4日. http://www.w3.org/TR/REC-xml で入手可能。
XML 1.1
Extensible Markup Language (XML) 1.1, W3C, eds. Tim Bray, Jean Paoli, C.M. Sperberg-McQueen, Eve Maler, John Cowan, François Yergeau. 2004年2月4日. http://www.w3.org/TR/xml11 で入手可能。
XML Base
XML Base, W3C, ed. Jonathan Marsh. 2000年2月. http://www.w3.org/TR/xmlbase で入手可能。

参考的な参照

DOM
Document Object Model (DOM) Level 1 Specification, W3C, eds. Vidur Apparao, Steve Byrne, Mike Champion, et al. 1998年10月1日. http://www.w3.org/TR/REC-DOM-Level-1 で入手可能。
XPointer-Liaison
XPointer-Information Set Liaison Statement, W3C, ed. Steven J. DeRose. 1999年2月24日. http://www.w3.org/TR/NOTE-xptr-infoset-liaison で入手可能。
Relative Namespace URI References
Results of W3C XML Plenary Ballot on relative URI References in namespace declarations, 3-17 July 2000, W3C, eds. Dave Hollander, C. M. Sperberg-McQueen. 2000年9月6日. http://www.w3.org/2000/09/xppa で入手可能。
RDF Schema for the XML Information Set
RDF Schema for the XML Information Set, W3C, ed. Richard Tobin. 2001年4月6日. http://www.w3.org/TR/xml-infoset-rdfs で入手可能。

付録 B: XMLレポーティングの必要条件 (参考)

XML勧告 [XML] は、主としてXML文法に関するものであるけれども、XMLプロセッサについての具体的なレポーティングの必要条件もいくつか含まれている。

レポーティングの必要条件としては、エラーと文書情報とがある。ただし、エラーは、この仕様書の範囲外である。文書情報のレポーティングについての XMLの必要条件のすべてが、XML情報セット仕様に統合されている。括弧の中の番号は、XML勧告の節を指す。

  1. XMLプロセッサは、文書の中にあって、マークアップの一部分でないすべての文字を、アプリケーションに供給しなければならない。(2.10)
  2. 妥当性検証を行うXMLプロセッサは、文書の中にある文字データのうちのどれが要素内容の内部に出現する空白であるかを、アプリケーションに伝えなければならない。(2.10)
  3. XMLプロセッサは、行末をアプリケーションに渡す前に、それらを LF に標準化しなければならない。(2.11)
  4. XMLプロセッサは、属性の値をアプリケーションに渡す前に、それらを、第3.3.3項の規則に従って標準化しなければならない。
  5. XMLプロセッサは、宣言された記法の名前と外部識別子 (システム識別子、公開識別子、あるいはその双方) をアプリケーションに渡さなければならない。(4.7)
  6. 解析対象外実体の名前が、ENTITY 属性または ENTITIES 属性の明示値またはデフォルト値として現れるとき、XMLプロセッサは、その実体と記法との双方の名前、システム識別子、(存在する場合には) 公開識別子を、アプリケーションに供給しなければならない。(4.6, 4.7)
  7. XMLプロセッサは、処理命令をアプリケーションに渡さなければならない。(2.6)
  8. 外部解析対象実体の置換テキストを実体参照の代わりに組み込まないXMLプロセッサ (必然的に、妥当性検証を行わないプロセッサ) は、その実体を認識したが読み込まなかったことをアプリケーションに通知しなければならない。(4.4.3)
  9. 妥当性検証を行うXMLプロセッサは、実体の置換テキストを、実体参照の代わりに組み込まなければならない。(5.2)
  10. XMLプロセッサは、ある与えられた要素型についてDTDで宣言されたがその要素の開始タグに出現しない属性について、デフォルト値を補わなければならない。(3.3.2)

付録 C: 用例 (参考)

以下のXML文書例を考えてみよう。

<?xml version="1.0"?>

<msg:message doc:date="19990421"
                xmlns:doc="http://doc.example.org/namespaces/doc"
                xmlns:msg="http://message.example.org/"
>Phone home!</msg:message>

このXML文書の情報セットは、以下の情報項目を内容とする。

付録 D: 情報セットに含まれないもの

以下の情報は、現行バージョンのXML情報セット仕様では表されない (このリストはもれなく網羅しようとしたものではない)。

  1. 要素の内容モデル。これはDTDの中にある ELEMENT 宣言に由来する。
  2. ATTLIST 宣言での属性宣言のグルーピングやオーダリング。
  3. 文書型名。
  4. 文書要素の外側にある空白。
  5. 処理命令のターゲット名の直後に続く空白。
  6. 文字が文字参照によって表されているか否か。
  7. 空要素の2つの形式の区別。<foo/><foo></foo>
  8. 開始タグおよび終了タグの内部にある空白 (属性値の中にある有意味な空白以外のもの)。
  9. 行末の CR, CR-LF, LF の区別。
  10. 開始タグの内部における属性の順序。
  11. DTDの内部における宣言の順序。
  12. DTDにおける条件節の境界。
  13. DTDにおけるパラメータ実体の境界。
  14. DTDの中にある注釈。
  15. 宣言の場所 (内部サブセットにあるのか、外部サブセットにあるのか、パラメータ実体の中にあるのか)。
  16. 無視された一切の宣言。IGNORE 条件節の内部にあるものや、前出の宣言によって上書きされたため無視された実体宣言や属性宣言を含む。
  17. 属性値をくくるのに使われている引用符の種類 (単引用符か二重引用符か)。
  18. 一般解析対象実体の境界。
  19. CDATAマーク節の境界。
  20. DTDで宣言された属性のデフォルト値。

付録 E: RDFスキーマ (参考)

情報セットの形式面の特徴については、RDF Schema for the XML Information Set を見ること。


どら猫本舗 (webmaster@doraneko.org)