連載 役に立つ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は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ツール集」 |
- QAフレームワーク:仕様ガイドラインが勧告に昇格 (2005/10/21)
データベースの急速なXML対応に後押しされてか、9月に入って「XQuery」や「XPath」に関係したドラフトが一気に11本も更新された - XML勧告を記述するXMLspecとは何か (2005/10/12)
「XML 1.0勧告」はXMLspec DTDで記述され、XSLTによって生成されている。これはXMLが本当に役立っている具体的な証である - 文字符号化方式にまつわるジレンマ (2005/9/13)
文字符号化方式(UTF-8、シフトJISなど)を自動検出するには、ニワトリと卵の関係にあるジレンマを解消する仕組みが必要となる - XMLキー管理仕様(XKMS 2.0)が勧告に昇格 (2005/8/16)
セキュリティ関連のXML仕様に進展あり。また、日本発の新しいXMLソフトウェアアーキテクチャ「xfy technology」の詳細も紹介する
|
|