« 2007年12月22日 | メイン | 2007年12月24日 »
2007年12月23日
第10回 XML 開発者の日(2)
昨日に続き、第10回XML開発者の日で、面白かった内容につきまして。
セッション4で、村田 真さんが、「Atomとその拡張を検証するためのスキーマ」という題で、Atomに要素や属性を追加して拡張した複合文書を検証する方法について報告されました。
XMLでは名前空間を使うことにより、さまざまなスキーマのXMLを自在に組み合わせることができます。
Atomに限らず、ODF(Open Document Format)、OOXML(Office Open XML形式)などで、あるひとつのスキーマのXMLの中に、他のスキーマのXMLを入れて、複合文書を作る例が増えています。
こうした複合文書を検証するための仕様としてNVDLという仕様があるようです。(もう、かなり昔からやているようですが、知りませんでした。)
NVDL:Namespace-based Validation Dispatching Language
http://nvdl.org/
NVDLは、複合文書XMLの大きなツリーを、名前空間毎の個別スキーマの枝毎に切り離して、単一スキーマのXML文書にし、個々に検証しようという仕様のようです(多分)。
それから、IBMの基礎研究所の宮下さんによる、NVDLで切り離してシンプルなXMLファイルにしたものを、もう一度、組み立てるプログラムのデモがありました。
問題としては、Atomにせよ、ODFにせよ、名前空間をきちんとした方針で使い分けているわけではなく、単に要素名の衝突をさけるという便宜上の使い方をしているために、複合文書を分割するとやたらに沢山のファイルができたりしてしまうことだそうです。
また、実際に使うXML文書の要素には、ユニークなID(識別子)が付いていたり、ある要素からあるIDをもつ要素を参照したり、あるいは、文書要素間で相互に参照しあったりする関係をもっています。そうしますと、複合文書を、名前空間毎に切り離した段階で、IDのユニークさ、あるいは相互の参照などの関係が変ってしまうことになります。これらの問題は、どうもNVDLではうまく扱えないようです。
複合文書を、それを構成する部品に分解したり、部品を組み合わせて複合文書を作ることが自由自在にできるようになると、相当に面白い応用ができそうな気がします。それには、予めそういうことを考えて文書構造を設計しておかないといけないということなのでしょう。
こうしたことを考えますと、NVDL問題もそうなのですが、XML技術は面白いですが、実用上に使いこなすのは非常に難しいものだと思います。
投票をお願いいたします