XML-based User interface Language

XML-based User interface Language
XML User Interface Language (XUL)
Extension .xul
Type MIME application/vnd.mozilla.xul+xml
Développé par Fondation Mozilla
Type de format Langage de balisage
Spécification Format ouvert

XML-based User interface Language (abréviation XUL) 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

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 GTK+ (Glade), Java, PHP, JavaScript, Flash (MXML), Qt (Qt Designer), wxWidgets(wxXmlResource, fichiers XRC), .Net (XAML) et Android.

Les deux grandes richesses de XUL sont 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.

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.

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>

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.

Voir aussi

Logiciels liés à XUL

Liens externes


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article XML-based User interface Language de Wikipédia en français (auteurs)

Игры ⚽ Нужен реферат?

Regardez d'autres dictionnaires:

  • XML-based user interface language — XML User Interface Language (XUL) Extension de fichier .xul Type MIME application/vnd.mozilla.xul+xml Développé par Fondation Mozilla Type de format …   Wikipédia en Français

  • Xml-based user interface language — XML User Interface Language (XUL) Extension de fichier .xul Type MIME application/vnd.mozilla.xul+xml Développé par Fondation Mozilla Type de format …   Wikipédia en Français

  • XML-based User-interface Language — Ejemplo de aplicación XUL. XUL (acrónimo de XML based User interface Language, lenguaje basado en XML para la interfaz de usuario) es la aplicación de XML a la descripción de la interfaz de usuario en el navegador Mozilla. XUL no es un estándar.… …   Wikipedia Español

  • XML User Interface Language — Окно настройки Mozilla Firefox 1.5 сделано с использованием XUL (заголовок  от менеджера окон) XUL (произносится «зул», XML User Interface Language)  язык разметки для создания динамических пользовательских интерфейсов на основе Mozilla и… …   Википедия

  • User interface markup language — A user interface markup language is a markup language that renders and describes graphical user interfaces. Many of these markup languages are dialects of XML.User interface markup languagesUIMLUIML is the earliest pioneer in user interface… …   Wikipedia

  • .xml — Extensible Markup Language Extensible Markup Language Extension de fichier .xml Type MIME application/xml, text/xml Développé par World Wide Web Consortium Type de format …   Wikipédia en Français

  • XML — Extensible Markup Language Extensible Markup Language Extension de fichier .xml Type MIME application/xml, text/xml Développé par World Wide Web Consortium Type de format …   Wikipédia en Français

  • Xml — Extensible Markup Language Extensible Markup Language Extension de fichier .xml Type MIME application/xml, text/xml Développé par World Wide Web Consortium Type de format …   Wikipédia en Français

  • XML Resource — Infobox file format name = XRC icon = logo = caption = extension = .xrc mime = type code = uniform type = magic = owner = genre = container for = contained by = extended from = XML extended to = standard = XRC, or XML Resource, is a cross… …   Wikipedia

  • Comparison of user interface markup languages — The following tables compare general and technical information for a number of user interface markup languages. Please see the individual markup languages articles for further information. This article is not all inclusive or necessarily up to… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”