XUL

XUL（ズール、XML User Interface Language）はMozilla FirefoxやMozilla ThunderbirdなどのMozillaアプリケーションを作成するためのユーザインタフェースマークアップ言語である。UIMLのようなXMLアプリケーションの一つであり、ユーザインタフェースを記述するための言語である。
XUL自体は標準とはなっていないが、CSS、JavaScript、DOM、DTD、RDF等の既存の標準技術を多く利用しているため、すでにこれらの技術に親しんでいるプログラマやデザイナにとっては比較的習得しやすい言語となっている。
概要.
XULによるインタフェースは3つの別個に独立したコンポーネントのグループによって記述される。
XULの持つ最も大きな利点は単純でポータブルなウィジェットの記述が可能であることである。これは第4世代言語 (4GL) がソフトウェア開発の場で果たしたのとよく似た労力の削減に繋がっている。
XULのエレメント（要素）.
XULの仕様はたくさんの種類の要素を規定している。これらは大まかに以下のように分類できる。
XULの記述の中にXHTMLやMathMLのような別のXMLアプリケーションによる要素を含めることも可能となっている。
一般的なウィジェットの中でもたとえばスピンボックス、スライダー、キャンバスなどは現在のXULの仕様では使用できないがこれらはXUL 2.0での検討課題に含められている。
使い方.
XULは主にMozillaやFirefox本体やこれらの拡張のために使われているが、HTTPで転送されるウェブアプリケーションに使うこともできる。例えば、XULアプリケーションとしてMozilla Amazon Browserという、Amazon.comで本を探すためのリッチクライアントソフトにも使われている。しかしながら、Mozillaの強力な特徴であるXPCOMオブジェクトを使う権限は、セキュリティの観点から、リモートのXULドキュメントには与えられない（署名がされていない限り権限が与えられない）。また他の制限もあり、例えば他ドメインの外部のXULやDTDやRDFドキュメントを読み込むことができない。
映画との関連.
XULという名前は映画『ゴーストバスターズ』に由来する。映画にて古代シュメール人の女神ズール (Zuul) の亡霊は、シガニー・ウィーバー演ずるデーナ・バレット (Dana Barrett) に憑依し、「There is no Dana, only Zuul（デーナはいない。ズールしかいない）」と宣言している。XULでは、本来文書やデータの構造などを記述するための言語であるマークアップ言語（を創るための仕様であるXML）をインタフェースを定義するために利用していることから、XULの開発者は映画のセリフをもじって「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というデバッガコンポーネントがあるが、これは同作品の主人公の1人、ピーター・ヴェンクマン博士に由来する。