VCDOM ver.0.1.1

こないだ Ruby の勉強をして早速ちょこちょこ使ってるのですが、標準ライブラリに DOM を扱えるものがないということに気づいてちょっと悲しくなりました。 DOM プロセッサの代わりに REXML という XML プロセッサが標準で添付されてはいますが、やはり DOM に慣れているので DOM API が使いたいのです。 というわけで自分で DOM プロセッサを及び DOM オブジェクト群を実装しました。 VCDOM という名前のライブラリです。

とりあえず XML 文書の読み書きができるようにして、DOM API の一部の実装が完了しました。 どこら辺まで作りこむかが結構悩みどころなのですが、とりあえず現状のものでもそれなりに満足して使えると思います。 チュートリアルも作成中ですが、DOM を知っている人であれば現在のチュートリアルを読んだだけで使えると思います。 ただ、一部メソッドはまだ実装されていませんのでご注意ください。

バグ報告や改善要望などはコメントにてお願いします。

Qualified name (QName) の仕様

XML 文書内で名前空間 (namespace) を使用する際、qualified name を使用することになります。 下記 XML の "test" や "p:test2" は qualified name です。


<test xmlns="http://www.vividcode.info/test" xmlns:p="http://www.vividcode.info/p">
<p:test2>この要素は名前空間 URI "http://www.vividcode.info/p" に属する</p:test>
</test>
Qualified name に関しては 名前空間に関する W3C の文書中、Qualified name の項目 に説明があります。 Qualified name には、接頭辞付き名 (PrefixedName) と接頭辞無し名 (UnprefixedName) の 2 通りあり、接頭辞付きの場合は
Prefix:LocalPart
のように、コロン (:) で分けて接頭辞と局所名を書きます。 接頭辞無し名の場合は局所名のみ (コロンはない) です。

XML の仕様では要素名などにコロン (:) は何度出現しても良いことになっています (cf. W3C XML 仕様 - 名前に使用できる文字) が、qualified name の場合はコロン (:) は接頭辞と局所名を分けるためだけに使用され、つまり最大 1 回しか出現してはいけないことになっています。

変更メモ

  • はてぶコメントにて 「非接頭辞付き名」 よりは 「接頭辞無し名」 の方がわかりやすいとありましたので、変更しました。 PrefixedName および UnprefixedName が日本語で一般的にどう訳されているかわかればいいんですが・・・ (2009.09.22)