TUTORIELS 
A la découverte de XUL
XUL est un langage XML permettant de définir l'interface graphique d'une application de manière indépendante de la plate-forme.  (10 juin 2003)
 

XUL est un technologie issue du projet Open Source Mozilla, qui pourrait bien révolutionner la manière de construire des interfaces graphiques sur le Web. XUL est l'acronyme de XML-based User-interface Langage (Langage d'interface utilisateur basé sur XML), et se prononce "Zoule". Comme son nom l'indique, c'est un langage spécialisé dans la conception d'interfaces pour applications, et parce qu'il est basé sur XML, il fonctionne sur n'importe quel système - plus précisément, il peut être facilement porté vers une autre plate-forme.

Les caractéristiques de XUL sont nombreuses, et les avantages du cross-platform évidents : en plus de reconnaître directement l'ensemble des autres langages XML, comme SVG, SMIL ou MathML, XUL dispose d'une vaste bibliothèque d'éléments standards (boutons, onglets, événements) et peut parfaitement intégrer des feuilles de style pour modifier l'apparence d'une application. Pour simplifier, on pourrait dire que XUL est la combinaison de XML et HTML pour la structure, de CSS pour le format, du DOM pour la gestion des événements, et de JavaScript en tant que "lieur".

Créé pour les besoins du projet Mozilla, XUL se répand petit à petit dans le monde du développement, avec déjà de nombreuses applications permettant par exemple d'utiliser XUL dans une application Java, ou simplement de construire des applications complètes, en ligne ou non, ou des jeux.
Aidé d'un système de script, XUL pourrait fort bien se présenter comme étant une des solutions les plus standards lors de la création d'applications Web (face à l'aspect assez propriétaires de Flash et à la relative lenteur de Java).

Notamment, XUL se distance de Swing/JFC ou WinForms en séparant l'interface utilisateur en 4 "briques" : le contenu (la structure et les éléments de l'interface), l'apparence, le comportement et les informations de localisation. Accessoirement, rien n'empêche de créer des interfaces Swing, AWT ou WinForms en partant de XUL...

La pratique
Chaque fichier .xul décrit une fenêtre qui contient divers éléments, la forme la plus basique d'un tel fichier étant comme suite :

(fichier vide.xul)
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
  <window id="main-window" title="Fenetre principale" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
  </window>

Un fichier XUL ne peut contenir qu'un seul élément window, l'ensemble de l'interface de la fenêtre étant défini entre les balises de cet élément racine. XUL peut être déclaré avec un de ces trois espaces de nom :
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

Le premier est susceptible de changer lorsque XUL deviendra un véritable standard (il fait pour l'heure surtout référence au film "SOS Fantômes"...).

Pour l'interface elle-même, elle est définie au sein du fichier XUL à l'aide de balises bien définies. Voici un petit exemple non fonctionnel, mais qui vous permet de voir la manière dont est construite une interface XUL :

<window title="Youpla" width="150px" height="30px" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
  <menubar>
    <menu label="Fichier">
      <menupopup>

        <menuitem label="Fermer" oncommand=="window.close();"/>
      </menupopup>
    </menu>
    <menu label="?">
      <menupopup>

        <menuitem label="A propos" oncommand=="about();" />
      </menupopup>

    </menu>
  </menubar>
  <box>
    <button label="A propos" oncommand=="about();" />
    <button label="Fermer" oncommand=="window.close();" />
  </box>
</window>

Dans un prochain article, nous construirons une petite application XUL.

 
[ Xavier Borderie,JDNet
 
Accueil | Haut de page