EcmaのMarkup Compatibilityについて
Open Document FormatとOffice Open XMLの角逐が話題になって久しい。ここに来て、Office Open XMLの新パートとして、Markup Compatibility という仕様をEcmaは発表した。私にとって、この仕様はここ数年でもっとも興味深いものである。
Markup Compatibilityは何のための仕様だろうか。仕様書には、次のように書かれている。
This Part describes a set of conventions that facilitate future enhancement and extension of XML markup.
このパートは、XMLマークアップを将来に増強・拡張するためのコンベンションを示す。
正直、これだけでは増強・拡張が何なのか分からない。具体的に考えられるのは、いくつかある。
1) Microsoft Office製品を利用するユーザ企業が、自らの業務を円滑に進めるため、文書に独自拡張を導入する。
2) Microsoftが、Office製品の機能であって、Ecma Office Open XMLに入っていない部分を導入する。
3) Ecma TC 45が、将来のOffice Open XMLを制定するとき、新機能を導入する。
どれが主な目的なのかは、私にはよく分からない。個人的にもっとも興味深いのは、1である。
Office Open XMLを制定しているEcma Tc 45の議長であるJean Paoliとは、名前空間を用いたユーザ拡張について、1999年ごろに寿司屋で長々と話したことがある。名前空間になにを期待するかは、XMLエキスパートごとに大きく異なるのだが、彼と私の意見はきわめて近い。それは、名前空間は一枚岩ではないXML文書を可能にするという考え方である。一つの文書中の名前空間を全部分かる人・プログラムは誰もいないかも知れない。一部しか分からないプログラムであっても、インターネット上で、互いに協調動作することができる。たとえば、1のシナリオにおいて、Microsoft 製品はユーザの独自拡張を理解しないが、独自拡張部分を扱うソフトウェアと協調して動作するものと期待される。
名前空間についてほとんど同じ意見をもつJeanと私だが、その意見に基づいて具体的にやってきたことは大きく異なる。私が取り組んできたのはNamespace-based Validation Dispatching Language である。これはJames Clarkの絶大な貢献を受けて、ISO/IEC規格として今年承認された。Jean Paoliが取りくんできたのが、このMarkup Compatibilityである。
Markup Compatibilityの提供する機能を簡単に要約する。Ignorable属性は、無視してよい名前空間を指定する。PreserveElementsとPreserveAttributes属性は、分からなくても保存しなければならない(消してはいけない)ものの名前空間を指定する。AlternateContent, Choice, Fallback要素は、独自拡張名
前空間を扱えないプログラムが代替として用いるものを指定する。
Markup Compatibilityはインスタンスベースの技術であり、NVDLはスキーマベースの技術であるという点は大きく異なる。しかし、基本となる思想が同じなので、両者は共存し、互いの弱点を補うのではないかと期待している。実際、Markup Compatibilityは、拡張を含んだ文書をどう検証するかについては、(拡張部分を無視して検証するという案を除き)なにも提供していない。これは、NVDL の得意領域である。一方、NVDLは、自分の知らない拡張部分を含んだ文書を、どう扱うかのガイドラインは示していない。Markup Compatibilityは、このガイドラインに他ならない。
資料
[1] Ecma TC 45,
Document Interchange Specification, Working Draft 1.4, Part 5: Markup
Compatibility.
http://www.ecma-international.org/news/TC45_current_work/tc45-2006-332.pdf
[2] 村田、NVDLの規格化が終了、
http://ch.kitaguni.tv/u/5250/XML/0000351032.html
[3] FDIS 19757-4 - Document Schema Definition Languages (DSDL) Part 4 -
Namespace-based Validation Dispatching Language,
http://www.jtc1sc34.org/repository/0694c.htm
投稿者: 村田 真 日時: 2006.11.24 | パーマリンク | コメント (0) | トラックバック (0)