TOPサーバ構築・運用> eXistを使ってのWebアプリケーション構築
XMLDB入門
eXistではじめよう!使って覚えるXMLデータベース入門

第4回:Webアプリケーションを構築しよう!

著者:ウルシステムズ  大塚 庸史、柏原 宏充   2007/8/6
1   2  3  4  次のページ
eXistを使ってのWebアプリケーション構築

   「第3回:eXistでXQueryを実行しよう!」に続いて今回は、eXistとAjaxを使ってWebアプリケーションの構築を行います。今回のアプリケーション構築では、基本的なJavaとJavaScriptの知識を前提としています。

   それではeXistとAjaxの組み合わせに挑戦してみましょう!

eXistを使ったWebアプリケーション構築のパターン

   「第1回:今、XMLデータベースを始める理由」で書いたように、eXistは標準で多様なAPIを提供しています。Webアプリケーションを作る場合、以下のようなパターンでの利用が考えられます。

インターフェース種類 特徴 開発内容
XQueryServlet Servlet環境で稼働。XQueryの結果をそのまま返す XQuery+Webブラウザ側処理
XQueryGenerator Cocoonとの連携で利用する XQuery+Cocoon
XML:DB JavaからJDBCのデータソースとして利用する。低レベルのAPIが利用可能 XQuery+Java+JSP
REST RESTでの呼び出しを行う XQuery+他Webアプリケーションなど
XML-RPC XML-RPCでの呼び出しを行う
SOAP SOAPプロトコルでの呼び出しを行う

表1:eXistで提供されているAPI

   eXistでは、業務的/システム的な要件に応じて適切なAPIを選択することができます。今回はこれらの中から、XQueryServletを使ってアプリケーション構築を行います。


eXistによるXQueryの拡張

   eXistではアプリケーションのニーズに応じ、XQueryをJava言語によって独自に拡張することができる仕組みが用意されています。以下は標準で提供されている拡張ライブラリの一覧です。

ライブラリ名 概要
xmldiff 複数のXMLドキュメント間の差分をとる
xmldb DB操作ライブラリ
validation XMLバリデーションライブラリ
util ユーティリティライブラリ
transform XSL変換関連ライブラリ
text 全文検索関連ライブラリ
system システム情報取得のためのライブラリ
sql RDBへのSQL実行ライブラリ。結果をXML形式で返す
simpleql simple query language用パーサ。XPath形式へ変換をする
session HTTPセッションを扱うためのライブラリ
scheduler スケジューリングを行うためのライブラリ
response HTTPレスポンスを扱うためのライブラリ
request HTTPリクエストを扱うためのライブラリ
ngram Nグラム検索を行うためのライブラリ
math 数学的操作を行うためのライブラリ
mail メール関連の処理を行うためのライブラリ
image eXist DBに格納されているイメージを処理するためのライブラリ
http HTTPリクエストを扱うためのライブラリ
example サンプル用ライブラリ
datetime 日付関連処理用ライブラリ

表2:標準で提供されている拡張ライブラリ


XQueryServletの特徴

   eXsitにはJettyというServletコンテナが同梱されています。XQueryServletはJetty上で稼働し、XMLデータベース(以下、XMLDB)とHTTPプロトコルとのインターフェースの役割を果たします。

   リクエストURL名に含まれる「*.xql」の部分をXQueryとして実行し、その結果をHTTPレスポンスとしてクライアントに返します。XQueryServletを使うことで、XQueryの記述のみでWebアプリケーションを作成することができます。


サンプルアプリケーションについて

   今回のサンプルアプリケーションでは、「第3回:eXistでXQueryを実行しよう!」で登録したサンプルデータを利用して、製品と部品の関連を管理できるプログラムを作ります。

   作成するアプリケーションでは、これらの製品一覧の表示を行います。一覧画面から特定の製品を選択すると、製品を構成している部品をツリーで階層構造を表示することとします。

1   2  3  4  次のページ


ウルシステムズ株式会社 大塚 庸史
著者プロフィール
ウルシステムズ株式会社  大塚 庸史
ウルシステムズ株式会社シニアコンサルタント。2003年より現職。以前よりスクリプト言語には大きな興味を寄せていたが、最近、JavaScript、Flexの柔らかさに開眼しつつある。XQueryは今年「来る」と確信しつつ日々奔走中。


ウルシステムズ株式会社 柏原 宏充
著者プロフィール
ウルシステムズ株式会社  柏原 宏充
ウルシステムズ株式会社シニアコンサルタント。Web系開発の世界でRDBMSと触れあっていたところ、様々なことがあってXMLDBの世界へ。技術を文字にして伝え、文字を実装にして証明することを武器に、今日もお客様の課題解決に取り組んでいる。


INDEX
第4回:Webアプリケーションを構築しよう!
eXistを使ってのWebアプリケーション構築
  作ってみよう!
  関数の作成と再帰呼び出し
  製品一覧:グリッド表示