特集:「XML 1.1」を分析する

XML 1.1とは何か? 答えなき迷走の果て
Page2

川俣 晶
株式会社ピーデー
2004/4/27

XML 1.1が生まれるまでの経緯

主な内容
XML 1.1が勧告されたが……
XML 1.1は1.0とどこが違うのか
XML 1.1が生まれるまでの経緯
XML 1.1とほかの標準とのかかわり
利用者から見たXML 1.1
答えなき迷走の果て

 XML 1.0の誕生は、ちょっとしたブームを引き起こした。その結果として、XMLはどのように発展すべきかという議論も発生することになった。実際、XML 1.0はSGMLとの互換性のために、いろいろな古い仕様を引きずっており、改善すべき点がいろいろあったことは事実である。

 しかし、具体的にどのように変化させていくべきかについては、多くの論点が提示され、それらに対して異なるいくつもの意見が出てきて、とても一本化できるような状況ではなくなっていった。「貴族とボヘミアンの対立」なども、このような状況の一部をなすものだといえる。

参照(@IT記事より)
ボヘミアンと貴族の階級闘争
・XMLにおける「ボヘミアンと貴族の階級闘争」
・属性のデフォルトにまつわる論点を理解する(やさしく読む「XML 1.0勧告」第18回)

 具体的に、どんな相違があったのかは、2001年11月30日に公開された拙著XMLフロンティア探訪 第7回 XMLの新バージョン「Blueberry」解説と本稿を読み比べることで、その一部に触れることができるだろう。Blueberryとは、この当時にXMLの未来の新バージョンに付けられた名前である。

 上記記事で取り上げた主なトピックは、

  • 名前文字の変更
  • 行末コードの変更
  • 消えるDTD

である。このうち、「消えるDTD」を除く、ほかの項目は実際にXML 1.1で行われた。しかし、XML 1.1では依然としてDTDが残されており、消えてはいない。なぜ、ほかの2項目は実行できたのに、DTDだけは変更できなかったのだろうか。

 名前文字の変更は主にUnicode/ISO 10646に起因する外部の問題であるため、XML側として議論になりにくい側面があるだろう。変えなくてもよい、という意見はあるにせよ、実際に追加された名前文字を使う文化圏の住人には切実な問題である。変更しないという圧力よりも、変更するという圧力の方が大きい。

 行末コードの変更は、メインフレーマーからの強い要望の結果実現したようである。これは、W3Cで発言力のある企業から強く要望が出されたことで実現したのだろう。

 XML勧告からDTDを消してしまう、というのは、実はかなりの関係者が賛成する妥当性のある選択だと思う。DTDは、名前空間に適切に対応していないなど、明らかにいくつもの問題があり、現在のXMLの利用状況にマッチしていない。しかし、おそらく意見が一致するのはそこまでであり、その先には危険な過熱地帯が待っている。

 つまり、DTDを取り去った後、どうするのかという点で、貴族とボヘミアンのような厳しい対立が待っているということである。例えば、DTDを取り去った後、唯一のXMLのスキーマ言語としてXML Schemaを合体させて、スキーマを必須としたい人たちもいるし、逆にスキーマが必須であるとか、XML Schemaが必須となることを絶対に認めるべきではないと考える人たちもいる。オプション選択で自由にさせれば丸く収まるかというと、そうでもない。自由にするという主張を認めない人たちもいるためである。

 おそらく、このような状況で選択可能な唯一の手段は、「変更なし」だろう。つまり、DTDを含むスキーマ関係については、何も変更を行わないという選択である。それならば、これまでだれもが(不本意でも)受け入れてきたXML 1.0時代と何ら変わらない。その決定に不満を持つ者は多いかもしれないが、だれかほかの人の意見が通っているわけではないので、争いにはなりにくい。

 一方で、6年の間、これだけの深い対立を解消しようとする努力が、必ずしも熱心に行われてこなかった事実も見逃せない。もし、本当に利用上の不都合があれば、対立するどちらにも所属しない中立の多数の利用者が、「いいかげんに妥協しろ」と圧力を加えて、適当な落としどころに決めさせる方法もあり得ただろう。しかし、そのような圧力を加えようという話が浮上したと聞いたことはない。おそらく、XML 1.0勧告は、長いSGMLの実績の上に立脚しているために、十分な実用性があり、XML 1.1がなくてもさほど困らなかったのだろう。それが混乱を収拾しようという強い動きを妨げ、XML 1.1が生まれるまでに6年も要した理由の1つになったのではないかと思う。

XML 1.1とほかの標準とのかかわり

 XMLは、ほかの多くの技術が幅広く利用している基盤技術である。それがバージョンアップするということは、影響も多方面におよぶ可能性がある。実際に、XML 1.1と同時に、3つの勧告が行われている。そのうちの1つは、「Extensible Markup Language (XML) 1.0 (Third Edition)」で、XML 1.0勧告の第3版であり、XML 1.1とは直接関係はない。残りの2つは、「Namespaces in XML 1.1」と「XML Information Set (Second Edition)」である。この2つは、明確にXML 1.1と協調して使用するために同時に勧告されたものである。

 Namespaces in XML 1.1は「7 Conformance of Documents」の中で、

This specification applies to XML 1.1 documents

という表現で、XML 1.1を対象としたことを明示している。XML Information Set (Second Edition)は、「Status of this Document」で

This document updates the Infoset to cover XML 1.1 and Namespaces 1.1, clarifies the consequences of certain kinds of invalidity, and corrects some typographical errors.

と述べていて、やはりXML 1.1に対応するためのアップデートであることを明示している。

 ここで1つ注意すべきことは、この2つの位置付けは必ずしも同じではないことである。XML Information SetはSecond Editionということで、小さな変更にとどまっているのに対して、Namespaces in XMLはSecond Editionではなく、バージョンが1.1に変更されている。つまり大きな変更が行われている。

 Namespaces in XMLは旧版の勧告そのものに多くの問題があることが明らかになっていて、それらを全面的に直すために、大幅に内容が変更されている。機能面での大きな変更点としては、接頭辞を未定義状態に戻すメカニズム(A mechanism is provided for undeclaring prefixes)と、名前空間名をURIではなく、IRIとするという変更(Namespace names are IRIs, rather than URIs)がある。IRIとは、「Internationalized Resource Identifier」の略で、大ざっぱには国際化されたURIと理解すればよいだろう。RFCのドラフトが「Internationalized Resource Identifiers (IRIs)」として発行されている。

 では、世の中に多数あるXMLによって作られたさまざまな言語の動向はどうだろうか。これらの中で、XML 1.1を積極的に使おうという動きがあるかというと、筆者の知る限りそのような話はまだ聞かない。(次ページに続く

Page1 2/3 Page3

 Index
特集:「XML 1.1」を分析する
XML 1.1とは何か? 答えなき迷走の果て
  Page1
XML 1.1が勧告されたが……
XML 1.1は1.0とどこが違うのか
Page2
XML 1.1が生まれるまでの経緯
XML 1.1とほかの標準とのかかわり
  Page3
利用者から見たXML 1.1
答えなき迷走の果て

関連記事

 ・やさしく読む「XML 1.0勧告」
 ・XMLフロンティア探訪

特集:「XML 1.1」を分析する


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

注目のテーマ

HTML5+UX 記事ランキング

本日月間