XML-based User interface Language

Un article de Wikipédia, l'encyclopédie libre.

XML User Interface Language (XUL)

Extension de fichier :

.xul

Type MIME :

application/vnd.mozilla.xul+xml

Développé par :

Fondation Mozilla

Type de format :

Langage de balisage

Spécification :

Format ouvert

XUL, pour XML-based User interface Language, est un langage de description d'interfaces graphiques fondé sur XML créé dans le cadre du projet Mozilla. XUL se prononce zoul en anglais (pour rimer avec cool, mais aussi en hommage au demi-dieu Zoul dans le film S.O.S. Fantômes).

Sommaire

[modifier] Caractéristiques

XUL comprend un ensemble de balises permettant de définir des boutons, des listes, des menus, ou encore des zones d'édition, bref tous les éléments d'une véritable interface utilisateur. Un tel langage facilite le travail du développeur et permet d'écrire l'interface d'une application aussi aisément qu'une page web.

Le développement d'une application XUL se rapproche du développement d'une application cliente ou client-serveur traditionnelle. À chaque objet graphique sont associés des événements (clic de souris, double-clic, etc) pour lesquels le développeur doit écrire du code (typiquement en Javascript) à exécuter par la machine cliente. L'application peut récupérer des données d'un serveur, par exemple via des requêtes HTTP.

Le fait de définir dans un document XML la structure de l'interface graphique permet de réutiliser la même structure d'un environnement à l'autre et même d'un langage de programmation à l'autre. Des moteurs similaires à XUL existent pour Java, PHP, Javascript et .Net.

L'une des grandes richesses de XUL est son extensibilité, et la facilité de réutilisation d'éléments. Il est possible de définir ses propres balises pour mettre en place des composants complexes et réutilisables en écrivant un fichier XBL (eXtensible Binding Language). Celui-ci comporte, pour chaque nouveau composant qu'il décrit, une partie décrivant l'aspect graphique du composant, par association des éléments graphiques de base par exemple, et plusieurs parties décrivant son comportement, sous la forme de fonctions JavaScript. Les bindings ainsi définis peuvent hériter les uns des autres, et surcharger leurs contenus ou comportements.

Initialement, XUL a été développé afin de permettre de créer facilement l'interface graphique du navigateur web Mozilla. Un moteur XUL est intégré au moteur Gecko de Mozilla. Actuellement, Mozilla développe XULRunner, qui permet d'exécuter des applications XUL sans Mozilla ou Firefox.

[modifier] Organisation d'une fenêtre

Une fenêtre XUL est conçue comme un emboîtement de « boîtes » rectangulaires. Une boîte contient des sous-éléments qui sont juxtaposés soit verticalement, soit horizontalement. Ces sous-éléments peuvent être des champs de type texte, des listes déroulantes, des champs affichant du code HTML, et ainsi de suite. Ces sous-éléments peuvent aussi être des boîtes, qui elles-mêmes contiendront d'autres éléments. À l'intérieur de chaque boîte, divers paramètres permettent de paramétrer facilement l'alignement des sous-éléments (à gauche, en haut, centré...) ainsi que leur comportement en cas de redimensionnement de la fenêtre (taille fixe, taille proportionnelle...).

L'affichage de tous ces éléments graphiques peut être configuré en utilisant une feuille de style CSS, ce qui facilite l'accès à XUL pour les développeurs web.

[modifier] Exemple

Voici une comparaison entre quelques lignes de code XUL et HTML qui affichent toutes deux le traditionnel « Hello World! » :

XUL

<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
   <box>
     <description>Hello world!</description>
   </box>
 </window>

HTML

<html>
   <body>
     <p>
       Hello World!
     </p>
   </body>
 </html>

[modifier] XUL et les autres technologies d'interface graphique

XUL facilite la mise au point d'une interface plus évoluée que HTML sur le plan technique. En effet les objets XUL se manipulent via une interface DOM, comme en DHTML. De plus une interface XUL peut récupérer d'un serveur les seules données nécessaires à la mise à jour d'un élément de la page et non l'ensemble de la page elle-même ; ces données peuvent être récupérées en XML et de manière asynchrone, ce qui permet d'utiliser la méthode AJAX en programmation XUL. Ces techniques permettent d'améliorer considérablement les temps de réponse et le confort de l'utilisateur. L'environnement XUL les utilise de manière transparente pour l'utilisateur dans le système des templates (modèles de page) qui permet de générer une partie de l'interface utilisateur à partir de données externes en RDF, sans avoir à écrire une ligne de code Javascript. XUL peut exploiter et interagir avec les diverses ressources de mozilla dont le SVG.

XUL est aussi un concurrent des technologies client-serveur traditionnelles comme Delphi. XUL offre par exemple l'avantage d'être fondé sur des standards ouverts, tel XML, et sur des logiciels libres : les fichiers de description d'interface sont de simples fichiers texte. Toutefois, XUL ne bénéficie pas pour le moment du support d'environnements de développement sophistiqués : il faut écrire ou générer des fichiers XML pour décrire l'interface graphique.

[modifier] Voir aussi

[modifier] Logiciels liés à XUL

[modifier] Langages de description d'interface utilisateur basés sur XML

[modifier] Lien externe

Catégorie XUL de l’annuaire dmoz.

Les projets Mozilla
Composants de navigateur NSPR • SpiderMonkeyTamarinRhino • Venkman
Infrastructure de navigateur GeckoXPCOMXULXPInstall
Navigateurs FirefoxSeaMonkeyMinimoCamino
Autres projets ThunderbirdSunbird • Penelope • LightningPrismBugzilla

Wikipedia HTML 2008 in other languages

100 000 +

Česká (Czech)  •  English  •  Deutsch (German)  •  日本語 (Japanese)  •  Français (French)  •  Polski (Polish)  •  Suomi (Finnish)  •  Svenska (Swedish)  •  Nederlands (Dutch)  •  Español (Spanish)  •  Italiano (Italian)  •  Norsk (Norwegian Bokmål)  •  Português (Portuguese)  •  Română (Romanian)  •  Русский (Russian)  •  Türkçe (Turkish)  •  Українська (Ukrainian)  •  中文 (Chinese)

10 000 +

العربية (Arabic)  •  Български (Bulgarian)  •  Bosanski (Bosnian)  •  Català (Catalan)  •  Cymraeg (Welsh)  •  Dansk (Danish)  •  Ελληνικά (Greek)  •  Esperanto  •  Eesti (Estonian)  •  Euskara (Basque)  •  Galego (Galician)  •  עברית (Hebrew)  •  हिन्दी (Hindi)  •  Hrvatski (Croatian)  •  Magyar (Hungarian)  •  Ido  •  Bahasa Indonesia (Indonesian)  •  Íslenska (Icelandic)  •  Basa Jawa (Javanese)  •  한국어 (Korean)  •  Latina (Latin)  •  Lëtzebuergesch (Luxembourgish)  •  Lietuvių (Lithuanian)  •  Latviešu (Latvian)  •  Bahasa Melayu (Malay)  •  Plattdüütsch (Low Saxon)  •  Norsk (Norwegian Nynorsk)  •  فارسی (Persian)  •  Sicilianu (Sicilian)  •  Slovenčina (Slovak)  •  Slovenščina (Slovenian)  •  Српски (Serbian)  •  Basa Sunda (Sundanese)  •  தமிழ் (Tamil)  •  ไทย (Thai)  •  Tiếng Việt (Vietnamese)

1 000 +

Afrikaans  •  Asturianu (Asturian)  •  Беларуская (Belarusian)  •  Kaszëbsczi (Kashubian)  •  Frysk (Western Frisian)  •  Gaeilge (Irish)  •  Interlingua  •  Kurdî (Kurdish)  •  Kernewek (Cornish)  •  Māori  •  Bân-lâm-gú (Southern Min)  •  Occitan  •  संस्कृत (Sanskrit)  •  Scots  •  Tatarça (Tatar)  •  اردو (Urdu) Walon (Walloon)  •  יידיש (Yiddish)  •  古文/文言文 (Classical Chinese)

100 +

Nehiyaw (Cree)  •  словѣньскъ (Old Church Slavonic)  •  gutisk (Gothic)  •  ລາວ (Laos)