XUL(XML User Interface Language)とは
XUL(ズール)は、
Mozilla FirefoxやThunderbirdといった
Mozillaアプリケーションのユーザーインターフェース(UI)を構築するために開発された、XMLをベースとしたマークアップ言語です。UIML(User Interface Markup Language)と同様に、XMLアプリケーションの一種であり、主にUIの構造や要素を定義するために利用されます。
XULの大きな特徴は、既存の標準技術であるCSS、
JavaScript、DOM、DTD、RDFなどを多く採用している点です。そのため、これらの技術に慣れ親しんでいる
プログラマーやデザイナーにとっては、比較的容易に習得できる言語となっています。
XULの構成要素
XULによるインターフェースは、以下の3つの主要なコンポーネントで構成されています。
1.
Content (コンテント): ユーザーインターフェースのレイアウトを定義するXULコード自体です。要素の配置や構造を記述します。
2.
Skin (スキン): アプリケーションの視覚的な表現を定義する部分です。CSSや画像などを使って、外観やスタイルを調整します。
3.
Locale (ロケール): ソフトウェアのローカライズを容易にするためのテキストデータが含まれる部分です。DTDファイルに定義されたテキスト実体を参照することで、多言語対応を実現します。
XULの最大の利点は、シンプルで移植性の高いウィジェットを記述できる点です。これにより、
第四世代言語(4GL)がソフトウェア開発にもたらしたのと同様に、開発工数の大幅な削減に貢献します。
XULの要素
XULの仕様では、多種多様な要素が定義されており、これらは以下のカテゴリに分類できます。
トップレベル要素: ウィンドウ、ページ、ダイアログ、ウィザードなど、アプリケーションの主要な構成要素を定義します。
ウィジェット: ラベル、ボタン、テキストボックス、リストボックス(コンボボックス)、ラジオボタン、チェックボックス、ツリー、メニュー、
ツールバー、グループボックス、タブ、カラーピッカー、スペーサー、スプリッターなど、ユーザーが操作するUI部品を定義します。
ボックスモデル: ボックス、グリッド、スタック、デッキなど、要素の配置やレイアウトを制御するための要素を定義します。
イベントとスクリプト: スクリプト、コマンド、キーボード、ブロードキャスター、オブザーバなど、イベント処理やスクリプトの実行を制御するための要素を定義します。
データソース: テンプレート、ルールなど、データの取得や操作を制御するための要素を定義します。
その他: オーバーレイ(
クライアントサイドで行われるServer Side Includes)、インラインフレーム、ブラウザ、
エディタなど、特定の機能を提供する要素を定義します。
XULでは、XHTMLやMathMLといった他のXMLアプリケーションの要素を記述内に含めることも可能です。これにより、表現力の高いUIを構築できます。ただし、スピンボックス、スライダー、キャンバスといった一部のウィジェットは、現在のXUL仕様では利用できません。これらのウィジェットは、XUL 2.0での検討課題となっています。
XULの使い方
XULは、主に
Mozilla FirefoxやThunderbird本体、およびこれらの拡張機能の開発に利用されています。また、HTTP経由で配信されるWebアプリケーションにも使用できます。例えば、「
Mozilla Amazon Browser」は、
Amazon.comで書籍を検索するためのリッチクライアントアプリケーションとして、XULを用いて開発されました。しかし、リモートのXULドキュメント(署名されていない場合)には、
Mozillaの強力な機能である
XPCOMオブジェクトを使用する権限は付与されません。また、外部ドメインのXUL、DTD、RDFドキュメントを読み込むことができないといった制限も存在します。
映画との関連
実は、「XUL」という名前は、映画『
ゴーストバスターズ』に登場する古代
シュメールの女神「ズール(Zuul)」に由来しています。映画の中でズールの亡霊が
シガニー・ウィーバー演じるデーナ・バレットに
憑依した際に、「There is no Dana, only Zuul.(デーナはいない、ズールしかいない)」というセリフを吐きます。
XULの開発者は、マークアップ言語であるXMLをUI定義に利用するという発想から、このセリフをもじって「There is no data, only XUL.(データはない、XULしかない)」というスローガンを掲げました。このスローガンは、XULアプリケーションでXML名前空間の宣言に用いられるURI(https://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul)にも記述されており、このアドレスをXUL対応のアプリケーションで開くと、画面中央に大きく表示されます。「keymaster」や「gatekeeper」も、映画『
ゴーストバスターズ』のシナリオに由来します。この映画からの引用は、
Mozillaの他のプロジェクトでも見られ、例えば、
JavaScriptには「Venkman」という
デバッガーコンポーネントがありますが、これは映画の主人公の一人であるピーター・ヴェンクマン博士にちなんで名付けられました。
関連項目
XULRunner
レイアウトマネージャ
Extensible Application Markup Language(XAML)
外部リンク
Mozilla/Tech/XUL'>
Mozilla XUL -
Mozilla.orgのXUL公式ホーム
ページ(英文)
Xul Runner - An attempt to run XUL applications in a light-weight container.
XUL Wiki - XULアプリケーションや拡張機能開発関係に関する日本語の情報
*
Xul and Xul Dev project