XMLマスターポイントレッスン ~ プロフェッショナル(データベース)編 ~
第3回 XQueryのデータモデルと型

どこがドキュメントノードになるのか?

整形式XMLドキュメントの場合はドキュメントノードがルートノードになりますが、XMLドキュメントの一部を切り出した場合、切り出したノードがルートノードになります(図A)。

ルートノード

ルートノードがドキュメントノードではないノード木のことを「フラグメント」と呼び、ルートノードがドキュメントノードであるノード木のことを「ドキュメント」と呼びます。

XQueryの実行環境

前回のコラムで「XQueryは習うより慣れろ」と言いましたが、実際に実行できる環境がないと慣れようがないですよね。ということで、今回のコラムでは実行環境を取り上げます。

最近の主要なRDBはネイティブXMLDB機能を実装し、問い合わせ言語としてXQueryをサポートしていますし、ほとんどのXMLDBも問い合わせ言語にXQueryを使用しています。これらの商用実装は独自の拡張があったり、XQueryの古いワーキングドラフトに準拠しているため、XQuery 1.0勧告とは差異があることがあり、学習環境として使用するには注意が必要です。
また、学習目的で気軽に触ってみるというわけにはいかないのも難点です。しかし、具体的なプロジェクトが計画されていたり進行中だったりするのであれば、最初に考慮すべき選択肢です。

オープンソースの実装ではMichael Kay氏が開発しているXSLT 2.0とXQuery 1.0のプロセッサであるSaxon注Aが有力です。MPL 1.0(Mozilla Public License 1.0)で公開されているフリーの「Saxon-B」、最適化とエラーハンドリングを強化した商用版の「Saxon-SA」があり、それぞれにJava環境用と.NET環境用のライブラリが提供されています。2007年4月1日時点で最新のSaxon 8.9はW3CのXQuery 1.0勧告に準拠しています。Saxonはライブラリなので、クエリの入力や結果確認のためのフロントエンドが必要になります。商用のXML開発環境にもSaxonをサポートしているもの注Bは多くありますが、フリーのフロントエンド注CやEclipseのプラグイン注Dもありますので、環境に応じて組み合わせて使うと良いでしょう。
また、XQuery関連の情報をまとめたW3Cのサイト注Eでは、さまざまな実装のリリース情報やW3Cが公開しているXQueryのテストスイート、XQTSの実行結果などを公開しています。プロジェクトなどで製品を選定する際にはこちらを参照すると良いでしょう。

注A:http://saxon.sourceforge.net/

注B:http://www.stylusstudio.com/http://www.altova.com/ など

注C:http://www.cafeconleche.org/xquisitor/

注D:http://sourceforge.net/projects/kernowforsaxon/

注E:http://www.w3.org/XML/Query/


<掲載> P.208-212 DB Magazine 2007 July

ページトップへ▲

XMLマスターポイントレッスン ~ プロフェッショナル(データベース)編 ~ 記事一覧へ戻る

HOMEへ戻る