この文書はXML Infoset 勧告 2001年1024日版を翻訳したものです。
翻訳文はオリジナルの仕様を完全に翻訳したものではありません。語法レベルのみならず、内容理解としての誤りも存在しえます。また、正しい翻訳が意図されていても、読む人にとっては理解出来ないこともありえます。翻訳文に対するコメントは歓迎します。
翻訳文に対する二次的著作権、および同一性保持権は放棄します(注意: 著作権は、何者にも独占的譲渡はしません)。
著作権表記の引用は、完全に下記本文とかぶるので省略。
Translation Copyright (C)2001.10.28 Ginga, Almost All Rights Abondoned
Copyright ©1999, 2000, 2001 W3C® (MIT, INRIA, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.
この仕様は、これの他にXMLドキュメント中の情報を参照する必要のある仕様のための、一連の定義を提供する。
このセクションでは、このドキュメントの公表時点での状態を説明する。他のドキュメントがこのドキュメントにとって代わるかもしれない。このドキュメントのシリーズの最新の状態は、W3Cによってメンテナンスされている。
これはXML情報セットに関する、W3Cの 勧告 である。
このドキュメントは、W3Cメンバーとその他の関係団体によってレビューされ、ディレクターによってW3C勧告として承認された。 これは安定したドキュメントであり、資料または規範的な参照として、他のドキュメントから参照に用いられうる。 W3Cの勧告を作成する役割は、仕様に関心をもたせて、それが広く使用されるよう促すことにある。それがWebの機能性と相互運用性を増強する。
このドキュメントはW3C XML Core ワーキンググループによって、W3CアーキテクチャドメインのXMLアクティビティの一環として、作成された。 この成果の背景については、 XML アクティビティの声明を参照。
XML情報セットに関連する特許の情報が開示されている; W3C ポリシー に準拠した XML Infoset 特許声明ページ で見ることができる。
このドキュメントの間違いは、
www-xml-infoset-comments@w3.org -
(公開アーカイブ)に報告してほしい。
この仕様中の
既知の間違い
の一覧は
http://www.w3.org/2001/10/02/xml-infoset-errata.html
で見ることができる。
この仕様の英語のバージョンのみが正式なバージョンである。 このドキュメントの翻訳については http://www.w3.org/XML/#trans で見ることができる。
現在の W3C 勧告とその他の技術文書 の一覧は http://www.w3.org/TRで見ることができる。
この仕様は、XML 情報セット (Infoset) と呼ばれる、抽象的なデータセットを定義する。 この目的は、ウェルフォームドXMLドキュメント [XML] 中の情報を参照する必要がある、これの他の仕様で用いるための、一貫した定義のセットを提供することにある。
これは完全なものを目指しているわけではない; 情報項目やプロパティを包含する主要な基準は、将来の仕様における利便性を期待してのものである。また、XML処理系が返さなければならない最低限の情報のセットを強制するものでもない。
XMLドキュメントは、ウェルフォームドであり、かつ 以下で説明するネームスペースの制約を満たしているとき、情報セットをもつ。 情報セットをもつために、XMLドキュメントが有効(valid: 妥当)である、という必要は無い。
情報セットは、XMLドキュメントを解析する以外の方法(この仕様では説明しない)によって生成されても良い。 以下の総合的インフォセット を参照。
XMLドキュメントの情報セットは、一連の 情報項目からなる; いかなるXMLドキュメントの情報セットにも、 少なくとも1つの ドキュメント 情報項目が、そしてその他多くが含まれる。 情報項目は、XMLドキュメントのいくつかの部分の抽象表現である: それぞれの情報項目は、 プロパティと命名された関連物のセットからなる。 この仕様では、プロパティ名は角括弧で [このように] 示される。 情報項目の型は、 セクション 2で列挙されている。
XML情報セットは、特定のインターフェースやインターフェースのクラスを要求したり支持したりするものではない。 この仕様は、情報セットを、明確化と単純化のために修正されたツリーとして提示するが、XML情報セットがツリー構造を通じて利用可能でなければならないという要求はない; イベントベースやクエリベースのインターフェースなども含めて(また、これらに限らず)、この他の種類のインターフェースも、XML情報セットに準拠する情報を提供することが可能である。
「情報セット」と「情報項目」という用語は、コンピュータの世界で用いられる一般的な用語である「ツリー」と「ノード」に類似する意味をもつ。 しかし、前者(訳注: 「情報セット」と「情報項目」)は、この仕様の中では、他の特定のデータモデルとの混乱を避けるために用いられる。 情報項目は、DOMのノードやXPathデータモデルの「ツリー」あるいは「ノード」に一対一対応するものではない。
この仕様において、「ねばならない」「べきである」「かもしれない」という言葉は、 それらの単語が大文字で表れない場合を除き(except that the words do not appear in uppercase)、 [RFC2119]で規定する意味をもつと推定される。
[ネームスペース]に適合しない XML 1.0のドキュメントは、技術的にウェルフォームドであっても、意味のある情報セットをもつとは考えられない。これはすなわち、この仕様は、 [ネームスペース]によって事前定義される以外の方法でコロンを含むエレメント名や属性名をもつドキュメントについては、情報セットを定義しない。
さらに、この仕様ではネームスペース宣言において相対URI参照を用いるようなドキュメントについては、情報セットを定義しない。 これは[相対ネームスペースURI参照]で説明される、W3CのXML総会(W3C XML Plenary Interest Group)の決定に基づく。
[namespace name] プロパティの値は、該当するネームスペース属性の正規化された値である; 処理系によってこれに付加的なURIエスケープが適用されることはない。
情報セットは、そのXMLドキュメントを、実体参照を既に展開された形で、つまり、それらの置換テキストに該当する情報項目によって表現された形で、表す。 しかし、処理系がこの展開を実行しない環境も多く存在する。 実体は宣言されなかったり、扱えなかったりしてはならない。 非検証の処理系は全ての宣言を読み込む方法を採らなくても良く、採るとしても、全ての外部実体を展開しなくても良い。 このように展開されない実体参照の場合は、 情報項目は実体参照を表すものとして扱われる。
インフォセットにおける全てのプロパティの値は、 [XML] 2.11 "改行の扱い" で説明される改行の正規化を考慮する。
多くの情報項目が、[base URI] あるいは [declaration base URI] のプロパティをもつ。 これらは [XML 基底]に基づいて計算される。 あるリソースの扱いは、解析系レベル(たとえば実体解決(エンティティリゾルバ)の内容)あるいはそれ以下で、リダイレクトを含むかもしれない; この場合、基底URIは、全てのリダイレクトの後でリソースを扱うために用いられる、最終的なURIである。
これらのプロパティの値は、リソースを扱うために要求されうるURIエスケープを、何ら反映するものではないが、ドキュメント中に指定されたり、あるいはリダイレクトの場合にサーバから返された場合には、エスケープされた文字を含んでも良い。
場合によっては(文字列あるいはパイプから読み込まれたドキュメントなど)、 [XML基底]におけるルールは、アプリケーション依存で、単一の基底URIになるかもしれない。 そのような場合には、この仕様は [base URI] や [declaration base URI] のプロパティの値を定義しない。
相対URIの解決時には、xml:base 属性の値よりも[base URI] プロパティが用いられるべきである; あれらは総合的インフォセットの場合に一貫しない。
いくつかのプロパティでは、ときに unknown あるいは no valueという値をもつことがあり、それぞれ、プロパティ値は 未知、あるいは 値が無い と言われる。 これらの値はお互いに、そしてその他の値と、異なるものである。 特にこれらは、それぞれ単にメンバーをもたない、空文字列・空集合・空リストある場合に区別できる。 この仕様では、null という用語を用いない。 いくつかのコミュニティでこれは、上記で認識されたいずれにもマッチしないという特別な意味をもつ。
この仕様では、XMLドキュメントを解析して得られた情報セットを説明する。 情報セットはその他の方法、たとえばDOMのようなAPIの利用や、既存の情報セットの変換などによって構築されても良い。
実存するドキュメントに該当する情報セットは、多くの方法で一貫していることが必要である; たとえばあるエレメントの[in-scope namespaces]プロパティは、そのエレメントおよびその祖先エレメントの[namespace attributes] プロパティに合致する。 これは、情報セットが他の方法によって構築されるとは限らない; そのような場合には、情報セットに該当するXMLドキュメントは存在しないかもしれず、 そしてこれをシリアライズするためには、(たとえばスコープ中のネームスペースに合致するネームスペース宣言を出力することによって)一貫性の欠落を解決する必要がある。
情報セットには、以下のセクションで説明される、全部で11種別の情報項目を含めることができる。 どの情報項目もプロパティをもつ。 リファレンスの用に供するため、それぞれのプロパティには名前があり、 [このように]示される。 勧告 [XML] 中の定義あるいはシンタックスへのリンクが、それぞれの情報項目について提供される。
XML 定義: 文書 (セクション 2, 文書)
XML シンタックス: [1] 文書 (セクション 2.1, ウェルフォームドXML文書)
これは情報セットの中でただ1つのドキュメント情報項目であり、他の全ての情報項目はこのドキュメント情報項目のプロパティから、直接的にあるいはそれら他の情報項目のプロパティから間接的に、アクセス可能である。
文書情報項目は以下のプロパティをもつ:
XML 定義: 要素 (セクション 3, 論理構造)
XML シンタックス: [39] 要素 (セクション 3, 論理構造)
XMLドキュメント中に出現するそれぞれのエレメントについて、エレメント情報項目 がある。 エレメント情報項目のひとつは、ドキュメント情報項目の [document element] プロパティの値であり、エレメントツリーのルートに該当し、その他の全てのエレメント情報項目はこれの [children] プロパティから再帰的に探すことでアクセス可能である。
エレメント情報項目は以下のプロパティをもつ:
xmlns=""
の形式による、デフォルトネームスペースを取り消し宣言する宣言は、ネームスペース宣言として考えられる。
定義によれば、全てのネームスペース属性(xmlns
と命名され、[prefix] プロパティが値をもたないものも含む) は http://www.w3.org/2000/xmlns/
のネームスペースURIをもつ。
もしこの要素にネームスペース宣言が無ければ、このセットはメンバーをもたない。
http://www.w3.org/XML/1998/namespace
に暗黙のうちに従ったプレフィックスxml
をもつ項目を含む。
これはプレフィックス xmlns
(ネームスペースの宣言に用いられる)となる項目をもたない。アプリケーションはこのプレフィックスをもつエレメントあるいは属性に遭遇することは絶対にないからである。
このセットは、
ネームスペースの宣言ではなくデフォルトネームスペースの取消宣言を行うxmlns=""
の形式の宣言を表すものを除いて、[namespace attributes]の全てのメンバーに該当するネームスペース項目を含みうる。
有修飾名のプレフィックスを解決する時は、[namespace attributes] プロパティよりもこのプロパティが用いられるべきである; あれらは総合的インフォセットの場合に一貫しない。
XML 定義: 属性 (セクション 3.1, 開始タグ、終了タグ、空要素タグ)
XML シンタックス: [41] 属性 (セクション 3.1, 開始タグ、終了タグ、空要素タグ)
ドキュメント中のそれぞれのエレメントのそれぞれの属性(指定されたものあるいはデフォルトのもの)について、属性情報項目 がある。これにはネームスペース宣言も含まれる。 ただし後者はエレメントの [attributes] プロパティではなく [namespace attributes] プロパティのメンバーとして出現する。
DTDの中で定義された属性でデフォルト値が無く、その要素の開始タグで指定されていないものは、属性情報項目で表されることはない。
属性情報項目は次のプロパティをもつ:
XML 定義: 処理命令 (セクション 2.6, 処理命令)
XML シンタックス: [16] PI (セクション 2.6, 処理命令)
ドキュメント中のそれぞれの処理命令について、処理命令情報項目 がある。 XML宣言および外部解析済み実体のためのテキスト修飾は、処理命令とは見なされない。
処理命令情報項目は以下のプロパティをもつ:
xml:base
属性に該当するPIのシンタックスは無いので、
もとは外部実体のトップレベルで出現していたPIの基底URIを保存しておくことは出来ないかもしれない。
XML 定義: セクション 4.4.3, 検証時の取り込み
展開されない実体参照情報項目は、 XML処理系が 外部解析済み実体を展開されなかったことを示すことができるプレースホルダとして用いることができる。 エレメントの内容で、それぞれの外部一般実体への展開されなかった参照についての情報項目がある。 検証を行うXML処理系、あるいは全ての外部一般実体を読み込む非検証処理系は、有効な(妥当な)ドキュメントについて、展開されない実体参照情報項目を生成することはない。
展開されない実体参照情報項目は次のプロパティをもつ:
XML シンタックス: [2] Char (セクション 2.2, 文字)
リテラルであるか、文字参照であるか、CDATAセクション中であるかを問わず、ドキュメント中に出現するそれぞれの文字について、文字情報項目 がある。
それぞれの文字は論理的に別個の情報項目であるが、XMLアプリケーションは必要または期待に応じて、文字をより大きな集合にまとめてもよい。
文字情報項目は以下のプロパティをもつ:
XML 定義: 注釈 (セクション 2.5, 注釈)
XML シンタックス: [15] 注釈 (セクション 2.5, 注釈)
オリジナルのドキュメント中にあるそれぞれのXMLコメントについて、DTD中に出現したものを除いて(それらは表されない)、 コメント情報項目 がある。
コメント情報項目は以下のプロパティをもつ:
XML 定義: 文書型宣言 (セクション 2.8, 前書きおよび文書型宣言)
XML シンタックス: [28] doctypedecl (セクション 2.8, 前書きおよび文書型宣言)
もしXML文書が文書型宣言をもっていれば、その情報セットには1つの文書型宣言情報項目が含まれる。 実体と記法については、文書型宣言情報項目としてではなく、ドキュメント情報項目のプロパティとして提供されることに注意。
文書型宣言情報項目は、以下のプロパティをもつ:
XML 定義: 実体 (セクション 4, 物理的構造)
XML シンタックス: [71] GEDecl (セクション 4.2, 実体)
DTDで宣言された、解析されない一般実体それぞれについて、解析されない実体情報項目がある。
解析されない実体情報項目は、以下のプロパティをもつ:
XML 定義: 記法 (セクション 4.7, 記法)
XML シンタックス: [82] NotationDecl (セクション 4.7, 記法)
DTD中で宣言されたそれぞれの記法について、記法 情報項目 がある。
記法情報項目は、以下のプロパティをもつ:
ドキュメント中のそれぞれのエレメントは、それらのスコープにあるそれぞれのネームスペースについて、ネームスペース情報項目 をもつ。
ネームスペース情報項目は、以下のプロパティをもつ:
xmlns:
プレフィックスに続く属性名の部分である。
もし属性名が単に xmlns
であり、その宣言がデフォルトネームスペースのものであれば、このプロパティは値をもたない。
情報セットの目的は定義の集合を提供することにあるので、準拠性とは、これらの定義を使用する仕様の特徴であって、実装の特徴ではない。
インフォセットを参照する仕様は:
もしある仕様が、 前述の総合的な情報セット の元で矛盾をかかえるような情報セットの構築を許容する場合、この矛盾がどのように解決されるかを説明し、インフォセットのシリアライゼーションが提供される場合はそれを実現すべきである。
http://www.w3.org/TR/REC-xml-names/
.
http://www.ietf.org/rfc/rfc2119.txt
.http://www.w3.org/TR/REC-xml
.
http://www.w3.org/TR/xmlbase
.
http://www.w3.org/TR/REC-DOM-Level-1/
.
http://www.w3.org/TR/NOTE-xptr-infoset-liaison
.http://www.w3.org/2000/09/xppa
.
http://www.w3.org/TR/xml-infoset-rdfs
.
XML 1.0 勧告 [XML] はXML文法を主としているが、これにはXML処理系の報告処理の要求事項をいくつか含まれている。
この報告処理の要求事項には、この仕様の適用範囲外であるエラーと、ドキュメント情報が含まれる。 XML 1.0 のドキュメント情報の報告処理に関する要求事項は全て、XML情報セットの中に統合されている; 丸括弧中の番号がこの XML 仕様のセクションを参照している:
以下の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ドキュメントの情報セットには、以下の情報項目が含まれる:
http://message.example.org/
"であり、
ローカル部分が "message
"であり、
プレフィックスが "msg
"であるような
1つの エレメント 情報項目。
http://doc.example.org/namespaces/doc
"であり、
ローカル部分が "date
"であり、
プレフィックスが "doc
"であり、
正規化された値が "19990421
" となるような
1つの属性 情報項目。
http://www.w3.org/XML/1998/namespace
,
http://doc.example.org/namespaces/doc
,
http://message.example.org/
のネームスペースを表す
3つの ネームスペース 情報項目。
以下の情報は現在のバージョンのXML情報セットでは表されない(この一覧は網羅することを意図していない):
<foo/>
と <foo></foo>
.インフォセットの形式的な特徴付け(characterization)については XML 情報セットのためのRDFスキーマ を参照。