第29回 実体を参照する文脈=コンテキスト Page 1

XML 1.0は、1998年にW3Cから勧告として公開された。当然中身は英語で、しかもEBNFと呼ばれる式によって重要な部分が記述してある。この連載では、XML 1.0を深く理解するために、そのXML 1.0勧告の最新版「Extensible Markup Language (XML) 1.0 (Third Edition)」をだれでも分かるように、やさしく読み解きながら解説していくことを目指している。(編集局)

川俣 晶
株式会社ピーデー
2005/1/13

XMLプロセッサによる実体および参照の扱い

主な内容
--Page 1--
XMLプロセッサによる実体および参照の扱い
文脈別に見る実体と参照
--Page 2--
余談:文脈の重要性とXML
--Page 3--
文脈の種類

 前回「文字符号化の問題に決着を付ける」は、「4.3.3 Character Encoding in Entities(4.3.3 実体における文字符号化)」という大物を読んだ。これは、文書実体や外部解析対象実体の文字符号化について扱っていた。つまり、実体をUTF-8で記述したのか、シフトJISで記述したのか、といった相違を正しく判定する方法について記述していた。XMLでは比較的まっとうに文字符号化の問題に対処できているものの、そもそも文字の符号化は複雑で悩ましい問題故にそれなりのボリュームを含んでいた。外部実体の文字化けとサヨナラするために、役に立つ規定だったと思う。

 さて、今回は「4.4 XML Processor Treatment of Entities and References(4.4 XMLプロセッサによる実体および参照の扱い)」を読んでいこう。これは、さまざまな実体の種類と、それが出現する場所(文脈)ごとに、どのように処理すればよいのかを示した表とその説明文から構成される。これは、XML 1.0勧告最大の山場かもしれない大物である。しかし、この表があることで分かりやすくなるという側面もあるので、決して無駄ではない。ここに規定された内容には、ほかの場所で記述された規定との重複が見られる場合があるが、表形式で実体の種類と場所(文脈)の関係を一望できる利便性は高い。そして、表形式にしたことで、あいまいさも減らすことができるのである。今回はこの表に取り組んでみよう。

編集注:この連載では、XML 1.0勧告であるW3Cの「Extensible Markup Language (XML) 1.0 (Third Edition)」(英語)を参照し、その日本語訳として、日本工業規格 JIS X 4159:2002(Second Edition相当。リンク先は該当規格の原案ですが、最終版とほぼ同等の内容です)と追補1として出版予定の原稿(Third Edition対応)を参照しています。本文中のピンクの地の部分は、XML 1.0勧告の原文を示しています。

文脈別に見る実体と参照

 それでは「4.4 XML Processor Treatment of Entities and References(4.4 XMLプロセッサによる実体および参照の扱い)」を読んでいこう。ここで重要なのは、実体と参照についての表である。W3C勧告では名なしだが、JIS X 4159では「表2 実体および参照の扱い」と名付けられたものである。この表の前後の文章は、この表を読むための説明となる。

 さて、この表は何を表しているのだろうか。それが最初の段落に記述されている。

The table below summarizes the contexts in which character references, entity references, and invocations of unparsed entities might appear and the REQUIRED behavior of an XML processor in each case. The labels in the leftmost column describe the recognition context:

次の表に、文字参照、実体参照および解析対象外実体の呼び出しが現れる文脈、ならびに、それぞれの場合におけるXMLプロセサに要求される振る舞いを要約する。一番左の列のラベルは、参照が現れる文脈を示す:

 冒頭の文章で書かれているのが、この表が表しているものの内容である。では、なぜこの表が必要とされるのだろうか。その理由は、ここにさりげなく出てくる「文脈」という言葉にある。XML文書中にはさまざまな参照を記述できるが、書く場所(つまり文脈)によって振る舞いが変わるものがある。ただ単に、振る舞いが変わるだけならさほど難しい話にならないが、参照にも種類がある。この表では、文脈が5種類、対象となる型が4種類に「文字」を加えて5種類ある。5×5=25ということで、25種類の組み合わせが存在する。それは、文章で書くとうっかり間違いかねない複雑さである。しかし、表として表せば、すべての組み合わせが一目瞭然(りょうぜん)となり、分かりやすさは飛躍的に高まる。

 次に、この表の最も左側の列が、文脈を示していると述べられている。いい換えれば、それ以外の列は、「振る舞い」を示していることになる。上の段は対象となる実体と参照の種類を示している。文脈の種類はこの後に説明がある。「振る舞い」の具体的な内容は表の後に説明がある。実体と参照の種類は特に説明がないが、それぞれ、この文書の中のほかの場所で定義されている用語が使われる。(次ページへ続く)

  1/3

 Index
やさしく読む「XML 1.0勧告」 第29回
実体を参照する文脈=コンテキスト
Page 1
・XMLプロセッサによる実体および参照の扱い
・文脈別に見る実体と参照
  Page 2
・余談:文脈の重要性とXML
  Page 3
・文脈の種類


連載 やさしく読む「XML 1.0勧告」


XML & SOA フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

HTML5+UX 記事ランキング

本日月間