XUL - XML-based User interface Language
Création de widgets portables en XML, présentation générale.
XUL fournit à l'interface utilisateur les bases pour une application portable. De même que DHTML a été créé pour l'interface des pages web, XUL l'est pour les applications.
XUL a été défini pour construire l'interface
utilisateur de Mozilla, navigateur open source.
Le nom vient d'une créature du film Ghostbuster.
XUL se prononce "zool".
En quoi consiste XUL?
XUL décrit un contenu avec un comportement, puis une
présentation pour ce contenu, et ensuite on peut localiser
l'interface pour la langue d'un pays.
Les composantes de chaque niveau sont les suivants:
- niveau contenu: XUL, XBL, JavaScript,
- comportement: gestion des évènements,
- présentation: CSS, images,
- local: DTD, fichiers de propriétés.
Le modèle à objets peut être appliqué à plusieurs niveaux.
Quand vous programmez en XUL, il vous faut savoir utiliser RDF (pour les templates), XPCom, XPConnect et JavaScript. XBL est optionnel
Les composantes de XUL:
RDF
RDF signifie: Resource Description Framework (Cadre de description
des ressources).
Il permet de créer des fichiers XML qui reprennent la structure
des composants qui les utilisent.
On peut alors, dans XUL, créer une liste structurée
à partir d'un fichier en décrivant un seul élément.
XBL
XBL signifie: eXtensible Binding Language.
Son but est de modifier les balises XML de XUL, ou les remplacer
par d'autres. Donc de changer l'interface d'une application.
Le langage définit les éléments XML pour
les widgets, évènements, propriétés,
méthodes.
XTF
eXtensible Tag Framework (cadre extensible de balises) remplace
XBL dans les nouvelles versions de Gecko et donc XUL et permet
de définir plus directement de nouveaux éléments
XML. (Firefox 1.5).
Les éléments xtf peuvent être écrits
en C.
Overlay
Le but est de fractionner un GUI en plus petits composants réutilisables.
C'est aussi le mécanisme d'ajout de composants à une application
XUL. Overlay est un ensemble de fichiers XUL utilisé pour décrire
le contenu de l'interface et l'adapter aux préférences de l'utilisateur.
L'AOM
L' Application Object Model est à XUL ce que le Document Object Model est à une page HTML. DOM décrit les pages web, et AOM décrit les applications. AOM permet de manipuler les objets (widgets) écrits en XML pour construire l'interface graphique.
XPCom
(Cross Platform Component Object Model) Il a pour but l'utilisation de code
natif par une application XUL, et améliorer les performances. La partie
JavaScript de l'interface XUL peut ainsi être réécrite
en C et compilée.
Cela fournit un système de logiciel modulaire. Un composant XPCom peut
être écrit en tout langage et utilisé par un programme
écrit en tout langage.
XPConnect
Il a pour but l'utilisation de librairies binaires avec XUL.
C'est une interface permettant à JavaScript d'utiliser
les fichiers XPCom. Les objets JavaScript peuvent utiliser les
objets binaires définie à travers XPCom et inversement.
XPInstall
Il a pour but l'installation d'application XUL à partir d'Internet
ou Intranet.
Donc c'est un installeur de composant XUL sur réseau, principalement
le web.
Les templates
A placer des données en cours de traitement dans un document
XUL.
Pour citer Mozilla, un template XUL est "une collection de
règles utilisée pour construire un contenu XUL et
HTML à partir d'une ou plusieurs sources de données
RDF ".
Un template décrit un modèle de contenu et les conditions
pour l'appliquer.
Le navigateur crée le document XUL ou HTML en copiant le
template et en le remplissant de valeurs prise dans une source
de données RDF.
<template> <rule> <conditions> ... </conditions> <action> ... </action> <rule> <rule> .....etc... </template>
Les conditions peuvent être vides ou inclure
un ou plusieurs tests.
Pour chaque occurrence ou l'ensemble des conditions est rencontré,
l'action est accomplie.
Autres composantes
XUL utilise aussi DOM, les CSS, HTML, JavaScript.
Comment lancer un programme XUL
Vous pouvez charger un fichier ayant l'extension
XUL à partir de Firefox comme une page HTML.
Certains projets que j'ai testés ne fonctionnent pas et requièrent
une installation spéciale décrite ci-dessous...
Si XULRunner est installé, on le lance dans la fenêtre
de commande avec en paramètre le fichier de description.
Si par exemple demo.XUL à un fichier de configuration
demo.ini:
xulrunner demo.ini
Le format d'un fichier de configuration est donné dans l'archive de XULRunner.
Comment utiliser XUL comme interface graphique d'un programme
- Il faut connaître les widgets disponibles.
- Les définitions (XUL, RDF et autres fichiers) doivent être placées dans le répertoire chrome directory de Mozilla.
- Votre application doit être enregistrée dans le fichier d'installation de chrome.
- L'application est lancée par la commande: mozilla -chrome suivie par le chemin du fichier XUL principal.
Voir parmi les sites en ressources pour plus
de détails.
mozilla |--chrome |--mygui |--content // fichiers XUL, RDF, js |--locale // fichiers de texte dtd |--skin& // fichiers css
Le système de développement
Le système est constitué de ces éléments:
- XUL: (XML User-interface Language) description de l'interface utilisateur.
- CSS (Cascading Style Sheet) personnalise l'apparence.
- JavaScript: programmation de l'interface.
- XBL (eXtensible Binding Language): création de composants réutilisables XUL.
- XPCom/XPConnect: interfacer xpfe avec du code binaire (C++ ou autre).
- XUL Templates: système d'importation de données.
- RDF (Resource Description Framework) stocke et restitue des données.
- DTD peut être utilisé pour les langues étrangères.
- XPInstall: installeur standard des applications XPFE.
XUL ou XAML?
XUL est multi plateformes, et fonctionne en mode natif, tandis que XAML
fonctionne sous .NET et compatibles .NET (mono, etc.)
XAML à la particularité d'utiliser les noms de classes graphiques
comme balises et les propriétés comme attributs XML. XML devient
une classe, à la mode de CSharp, plus simple à implémenter
mais plus limité.
XUL utilise XPCom pour étendre les possibilités
JavaScript, tandis que l'on peut placer du code directement dans
xaml.
En outre XUL est interprété et utilise des dessins bitmaps,
XAML est compilé et dessine en vectoriel.
Un avantage de XUL est qu'il intègre HTML directement tandis que XAML
utilise des éléments équivalents à ceux de HTML.
En conclusion, xaml est plus simple à écrire, mais
ne fonctionne pas en mode natif.
Cette page compare
XUL et tous les autres langages d'interface XML.
Inconvénients de XUL
- Le principal inconvénient du XUL est l'absence de message en cas d'erreur. L'interface ne s'affiche pas, sans plus.
- L'emploi de RDF est assez complexe.
- L'emploi de XPCom, XPConnect l'est encore plus.
Spécifications
XUL se fonde sur ces spécifications par le W3C: XML 1,
HTML 4.0, CSS 2, DOM 2.
Et ECMAScript
1.5 par l'ECMA.
Le format XUL est défini par Mozilla.
Voir aussi... |
- Tutoriel XUL. Apprendre XUL avec le didacticiel de xul.fr.
- XUL vs HTML 5.
- XDK. Une plateforme de développement pour XUL et XPCom.
- Comment créer un document RDF.
- Installer une application XUL. Manuel détaillé d'installation.