XUL

XUL
拡張子.xul
MIMEタイプapplication/vnd.mozilla.xul+xml
開発者Mozilla Foundation
派生元XML
ウェブサイトdeveloper.mozilla.org/en-US/docs/Archive/Mozilla/XUL

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

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

概要

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

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

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

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ドキュメントを読み込むことができない。

映画との関連

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名前空間の宣言記述に用いられるURIhttps://www.mozilla.org/keymaster/gatekeeper/there.is.only.xulに記述された文章でもある。XULが使用可能なアプリケーションでこのアドレスを開くと、(図のように)このスローガンが画面中央に大きな文字で表示されるようになっている。

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

関連項目

外部リンク

  • 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
プロジェクト
Firefox
種類
技術
レンダリングエンジン
フレームワーク
コンポーネント
系統
その他
開発終了
公式
本部
支部
コミュニティ
その他
カテゴリ カテゴリ
低レベル
高レベル
AmigaOS対応
  • BOOPSI(英語版)
  • Magic User Interface(英語版)
  • ReAction GUI(英語版)
  • Zune(英語版)
Mac OS/macOS対応
  • Cocoa (API)
  • MacApp(英語版)
  • MacZoop(英語版)
  • PowerPlant(英語版)
Windows対応
X11下のUnix対応
  • Athena/Xaw(英語版)
  • InterViews(英語版)
  • LessTif
  • Motif
言語別
クロスプラットフォーム
CLI
  • Gtk#
  • Moonlight(英語版)
  • Tao(英語版)
C/C++
  • CEGUI(英語版)
  • Component Library for Cross Platform
  • FLTK
  • FOX toolkit(英語版)
  • OpenGL User Interface Library(英語版)
  • GTK
  • Juce(英語版)
  • Qt
  • Wt(英語版)
  • Tk
  • TnFOX(英語版)
  • Ultimate++(英語版)
  • Visual Component Framework(英語版)
  • wxWidgets
  • YAAF(英語版)
  • XForms
  • XVT(英語版)
Objective-C
Flash
Java
デスクトップ
ウェブ
JavaScript
Common Lisp
Object Pascal
Perl
  • WxPerl(英語版)
  • Perl/Tk
PHP
  • PHP-GTK(英語版)
  • PHP-Qt(英語版)
  • WxPHP(英語版)
Python
Ruby
  • Shoes
  • QtRuby(英語版)
XML
  • Ample SDK(英語版)
  • CougarXML(英語版)
  • GladeXML
  • Lively Kernel(英語版)
  • Pyjamas(英語版)
  • Rialto Toolkit(英語版)
  • XAML
  • XML User Interface(英語版)
  • XUL
  • Wt(英語版)
  • 一覧記事一覧(英語版)
  • カテゴリカテゴリ
典拠管理データベース: 国立図書館 ウィキデータを編集
  • フランス
  • BnF data
  • ドイツ
  • イスラエル
  • アメリカ