連載 役に立つXMLツール集(8)
XULとJSFでリッチクライアント 〜XUL編〜 Page 1

XMLプログラミングでは、DOMやSAXといったAPIを使用すると単調なコードを繰り返し書くことになり生産性が上がらないものだ。本連載では開発者が“楽をする”ために役立つXML関連ツールを紹介していく。(編集局)

www.netpotlet.com
原田洋子
2004/6/16

リッチクライアントって何?

主な内容
--Page 1--
リッチクライアントって何?
XULを使いこなす情報源
--Page 2--
XULを表示するための準備
XULの書き方
--Page 3--
XULのサンプル
まとめ&サンプルダウンロード

 本連載のこれまでの記事はロジックが中心のアプリケーションでしたが、今回からUI(ユーザーインターフェイス)を考慮したWebアプリケーションを紹介していこうと思います。

 WebというとUIはHTMLで作るのが一般的ですが、素のHTMLが貧弱なのはだれもが理解しているところです。このため、最近は豊かな表現ができるリッチクライアントが注目されるようになりました。@ITの記事「リッチクライアント時代の到来」でもリッチクライアントについて解説しています。

 リッチクライアントは確かに見た目も操作性もHTMLよりはるかにいいのですが、専用のクライアントアプリケーションが必要になる場合が多いのが欠点です。貧弱と知りつつもHTMLで済ませてしまう、あるいはDynamic HTMLを加えてメニューの選択方法を改善したり、スタイルシート(CSS)を使って形を整える程度で終わっているのが現状ではないでしょうか。

 ユーザーの視点からすると、すべての操作をブラウザ上で実行できるのは便利ですし、開発者の視点からすると、これまでに作ってしまった膨大な数のHTMLファイルをリッチクライアント用に作り直すほどのメリットがまだないといったところかもしれません。

 リッチクライアントの中で唯一普及しているのはFlashでしょうか。Flashはブラウザにプラグインを追加するだけで動きます。当たり前ですが、プラグインなのでFlashが必要なければブラウザの通常の機能でこれまでどおりHTMLを表示できます。事実上、Flashが動かないプラットフォームはないといわれるほど、複数のOS、ブラウザをサポートしているのも普及している理由でしょう。

XULの概要

 Flashのように従来技術と共存できるリッチクライアントという視点から、本記事ではXUL(ずーる:XML User Interface Language)というXMLで記述するリッチクライアントのための言語を紹介します。XULを動かすのに必要な環境はMozilla、Netscape 7などのブラウザのみで、ブラウザにインストールしなければならないものはありません(IEでは動作しません)。特にMozillaではブラウザそのもののユーザーインタフェイスを作るためにXULが使われています。Mozilla、Netscape 7ともに無償で利用できます。Mozillaはオープンソース製品ということもあり、Mozilla 1.x Releasesにあるように多様なOSに移植されています。XULが動かない環境はほぼないといえるでしょう。つまり、

 XULは

  • ブラウザ上で動くリッチクライアントを作れる
  • マルチプラットフォームで動く
  • XMLで記述できる

という特徴を持っています。これが、本記事で取り上げた理由です。

JavaServer Faces(JSF)の概要

 リッチクライアントというテーマで、次回に紹介するのはJavaServer Faces(JSF)です。JSFはWebアプリケーション用フレームワークのための仕様で、特にUIに焦点を当てた仕様になっています。XULで記述したファイルはWebサイトに置いてもブラウザ上で表示できますが、本来、クライアントサイドの技術なので、本格的なXULアプリケーションを動かすには、パッケージをダウンロードしてインストールするのが一般的です。そのようなXULをWebアプリケーションのためのUIとして使うには、サーバサイドでダイナミックにXULファイルを生成できるような仕組みが必要になります。そこで、UIのためのフレームワークであるJSFをサーバサイドで使ってみることにしました。

 JSFではWebアプリケーションフレームワークで必要になる各種機能が定義されていますが、大ざっぱに分類すると表示にかかわるレンダリングとフォームの処理やロジックの実行、ページ遷移などのアクションの2つに分けられます。次回は主にJSFのレンダリングを見ることにし、次々回はアクションを説明します。

 本記事と次回記事で紹介するサンプルプログラムは

  • Mozilla 1.6
  • J2SDK 1.4.1_06
  • Tomcat 5.0.24
  • JSF 1.1 ※注1
  • Relaxer 1.1b(20040519)

の環境で動作を確認しています。

※注1
JSF EAと1.x
JavaServer Facesの参照実装はJWSDP(本連載「第2回 JAXBでデータバインディングに挑戦しよう JAXB参照実装の入手」参照)の1つとして配布されていたEarly Access(EA)版と、リリース版である1.0/1.1(2004年5月27日リリース)がありますが、1.0 Finalで仕様に大幅な修正が加えられるとともに参照実装も変わったので、EA時代のサンプルなどは動かなくなりました。また、本記事のサンプルはEAでは動きません。


XULを使いこなす情報源

 冒頭で触れましたが、もう一度XULが何物かについて説明を加えておきましょう。

 XULはクロスプラットフォームのリッチクライアントを記述できるマークアップ言語です。XULはGecko(げっこ)というレンダリングエンジンが解釈します。GeckoはMozillaの一部ですが、独立したモジュールですのでGeckoだけをほかのブラウザに組み込めるようになっています。このため、XULはMozillaでなくてもNetscape 6、7などのGeckoベースのブラウザならレンダリング可能です。

 XULについては「XUL Planet」にチュートリアルやリファレンスマニュアル、FAQなどの詳細な説明資料がありますので、XULプログラミングを行う場合は参考にしてください。チュートリアルの邦訳版は「XULチュートリアル」で公開されていますが、残念ながらメンテナンスされなくなってから時間がたってしまいました。また、「Mozilla 資料 - コアアーキテクチャ: XUL」に資料一覧があるので、ここから探すのもいいでしょう。

 それでは次ページで、どのようにXULファイルを記述すると、どのように表示されるのかを見てみましょう。(次ページへ続く)

  1/3 Page 2

 Index
連載 役に立つXMLツール集(8)
XULとJSFでリッチクライアント 〜XUL編〜
リッチクライアントって何?
XULを使いこなす情報源
  XULを表示するための準備
XULの書き方
  XULのサンプル
まとめ&サンプルダウンロード


「連載 役に立つXMLツール集」


XML & SOA フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

HTML5+UX 記事ランキング

本日月間