XUL

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

XUL(ずーる、XML User Interface Language)はMozilla FirefoxMozilla ThunderbirdなどのMozillaアプリケーションを作成するためのユーザインタフェースマークアップ言語である。UIMLのようなXMLアプリケーションの一つであり、ユーザインタフェースを記述するための言語である。

XUL自体は標準とはなっていないが、CSSJavaScriptDOMDTDRDF等の既存の標準技術を多く利用しているため、すでにこれらの技術に親しんでいるプログラマデザイナにとっては比較的習得しやすい言語となっている。

XULの持つ最も大きな利点は単純でポータブルなウィジェットの記述が可能であることである。これは第4世代言語 (4GL) がソフトウェア開発の場で果たしたのとよく似た労力の削減に繋がっている。

概要[編集]

XULによるインタフェースは3つの別個に独立したコンポーネントのグループによって記述される。

Content(コンテント) 
ユーザインタフェースのレイアウトを規定するXUL本文。
Skin(スキン) 
アプリケーションの視覚的な表現を行うためのCSSや画像。
Locale(ロケール) 
ソフトウェアのローカライズを容易にするための実体テキストを記述するDTD

XULによるインタフェースの作成例は、Hello worldプログラムの一覧#XULを参照。

XULのエレメント(要素)[編集]

XULの仕様はたくさんの種類の要素を規定している。これらは大まかに以下のように分類できる。

トップレベル要素 
ウィンドウページダイアログウィザードなど
ウィジェット 
ラベル、ボタンテキストボックス、リストボックス(コンボボックス)、ラジオボタンチェックボックス、ツリー、メニューツールバー、グループボックス、タブ、カラーピッカー、スペーサー、スプリッターなど
ボックスモデル 
ボックス、グリッド、スタック、デッキなど
イベントとスクリプト 
スクリプト、コマンド、キーボード、ブロードキャスター、オブザーバなど
データソース 
テンプレート、ルールなど
その他 
オーバーレイ(クライアントサイドで行われるServer Side Includes)、インラインフレーム、ブラウザエディタなど

XULの記述の中にXHTMLMathMLのような別のXMLアプリケーションによる要素を含めることも可能となっている。

一般的なウィジェットの中でもたとえばスピンボックス、スライダー、キャンバスなどは現在のXULの仕様では使用できないがこれらはXUL 2.0での検討課題に含められている[1]

使い方[編集]

XULはMozillaFirefox本体やこれらの拡張のために使われていて、HTTPを使ったウェブアプリケーションによく使われる。例えば、XULアプリケーションとしてMozilla Amazon Browserという、Amazon.comで本を探すためのリッチクライアントソフトにも使われている。しかしながら、Mozillaの強力な特徴であるXPCOMオブジェクトを使う権限は、セキュリティの観点から、リモートのXULドキュメントには与えられない(署名がされていない限り権限が与えられない)。また他の制限もあり、例えば他ドメインの外部のXULやDTDRDFドキュメントを読み込むことができない。

コードの例はXULによるHello Worldの例を参照されたい。

映画との関連[編集]

THERE IS NO DATA.
THERE IS ONLY XUL.

XULという名前は映画『ゴーストバスターズ』に由来する。映画にて古代シュメール人の女神ズール (Zuul) の亡霊は、シガニー・ウィーバー演ずるデーナ・バレット (Dana Barrett) に憑依し、「There is no Dana, only Zuul(デーナはいない。ズールしかいない)」と宣言している。XULでは、本来文書やデータの構造などを記述するための言語であるマークアップ言語(を創るための仕様であるXML)をインタフェースを定義するために利用していることから、XULの開発者は映画のセリフをもじって「There is no data, only XUL(データはない。XULしかない)」というスローガンを掲げている。そしてこれはXULアプリケーションでXML名前空間の宣言記述に用いられるURIhttp://www.mozilla.org/keymaster/gatekeeper/there.is.only.xulに記述された文章でもある。XULが使用可能なアプリケーションでこのアドレスを開くと、(図のように)このスローガンが画面中央に大きな文字で表示されるようになっている。

"keymaster" や "gatekeeper" も同作品のシナリオに由来する。『ゴーストバスターズ』からのもじりはMozillaの他のプロダクトでも見られ、例えばJavaScriptにはVenkmanというデバッガコンポーネントがあるが、これは同作品の主人公の1人、ピーター・ヴェンクマン博士に由来する。

関連項目[編集]

外部リンク[編集]