La plateforme de Mozilla/Firefox incorpore un certain nombre de technologies, notamment en XML, dont la majorité est issue des standards recommandés par le W3C. En voici la liste (non exhaustive).
C'est le langage XML pour décrire une interface graphique. Toute l'interface graphique de Mozilla et produits dérivés sont en XUL (prononcez « zool »).
<window title="hello world">
<toolbar>
<menubar>
<menu label="Fichier">
<menupopup>
<menuitem label="quitter" oncommand="quit()" />
</menupopup>
</menu>
</menubar>
</toolbar>
<description>Hello World !</description>
</window>
Même si XUL possède un nombre satisfaisant de balises permettant d'inclure des composants graphiques de toutes sortes, nous avons souvent besoin d'avoir des composants ayant des comportements un peu plus spécifiques, ou regroupant divers composants de bases en un seul, et que l'on veut pouvoir ré-utiliser sans ré-inventer la roue. XBL est un langage XML permettant de réaliser de tels composants d'interface. D'ailleurs, nombre de balise XUL "standards" sont en fait programmée en XBL.
XBL 1 est une note du W3C, et sa version 2 est presque standardisé par le W3C (http://www.w3.org/TR/xbl/). XBL 1 n'est implémenté que dans Gecko, et la version 2 est en cours d'implémentation dans le moteur webkit, et sera implémenté aussi dans Gecko 2.0.
RDF est un format XML permettant de stocker des données, sous forme de graphe (arbre etc.). Il permet de lier des données entre elle de manière "sémantique".
Les composants graphiques XUL tels que les listes, arborescences (treeview), menu etc., peuvent être remplis automatiquement à partir de sources de données en RDF (entre autres), locales ou distantes. RDF est une recommandation du W3C.
Bien sûr, XHTML 1.0, la version XML de HTML, est implémentée dans Gecko (le cœur de Mozilla), permettant d'afficher des pages web. De même Gecko supporte HTML 4 et une partie de HTML 5 (comme la balise canvas, la balise video, les apis offline, worker threads et bien d'autres..).
XHTML et HTML sont des recommandations du W3C.
Avec Mozilla, vous pouvez manipuler, via des objets implémentant les interfaces DOM et n'importe quel fichier XML.
DOM et XML sont des recommandations du W3C.
La plateforme Mozilla propose une API permettant d'utiliser des fichiers XSLT, et ainsi de transformer des fichiers XML en d'autres fichiers XML. D'ailleurs, dans le navigateur, vous pouvez ouvrir un fichier XML lié à une feuille XSLT.
C'est un langage XML pour écrire des formules mathématiques. Gecko sait donc afficher des formules mathématiques à partir d'un contenu en MathML (recommandation du W3C).
Les services web sont aussi à l'honneur dans Mozilla, ce qui est logique pour un moteur web. Grâce à l'objet XMLHttpRequest, il est possible de faire appel à tout type de services web. Vous avez aussi une API pour manipuler le format JSON, et pour appeler des services web XML-RPC. Dans de veilles versions de gecko ( < 1.8), on pouvait aussi utiliser des services web SOAP, mais ces composants n'étaient plus maintenu et ont été retiré.
SVG, pour Scalable Vector Graphics, est un langage XML pour faire des dessins vectoriels en 2D. C'est une recommandation du W3C. SVG est disponible à partir de Firefox 1.5.
Voir la page dédiée, sur le wiki : SVG
Canvas est une balise HTML non standardisée, qui permet de dessiner en javascript.
Voir la page dédiée : canvas
XFORMS est le langage XML du W3C dont l'optique est de remplacer à terme les formulaires HTML. XForms comble les limitations des formulaires HTML : séparation des données et des contrôles dans les formulaires, validation coté client, validation des types des données, interdépendance entre les contrôles de saisie, prise en charge d'événements, envoi des données sous forme xml etc. Tout ceci sans une seule ligne de code Javascript.
L'implémentation de XFORMS n'est pas totale mais le principal est fait et il est possible de l'utiliser en installant l'extension Xforms dans Mozilla Firefox 1.5. Voir la page dédiée sur le wiki
C'est un dialect XML qui permet de faire des animations, des présentations multimédia. C'est une recommandation du W3C.
Les composants graphiques XUL/XBL ont un habillage par défaut (celui en général imposé par le système d'exploitation ou par le navigateur). CSS, le langage utilisé dans les pages web, permet de personnaliser cet habillage (ainsi que celui de n'importe quel autre type de fichier XML). CSS est une recommandation du W3C.
Ce langage de script, orienté objet, est utilisé pour programmer le comportement de l'interface graphique, effectuer les traitements en réponse aux actions sur les composants graphiques (suite à un clic de souris sur un bouton par exemple). Ne vous méprenez pas, ce langage est bien plus riche qu'on pourrait le croire au vu de son utilisation limitée dans les pages web.
De base, vous avez à disposition tout un ensemble d'objet pour agir sur les composants graphiques, pour communiquer sur le réseau, pour manipuler des fichiers, appeler des services web etc. Sa richesse suffit à réaliser bon nombre de logiciels. Mais il est possible d'étendre l'API Javascript grâce à XPCOM.
La version Javascript dans Mozilla est basée sur EcmaScript, le javascript standardisé.
Pour programmer le comportement des interfaces, il sera certainement possible, dans les futures versions de Mozilla, d'utiliser Python.
Voir la page dédiée sur le wiki : Javascript
E4X est une api qui a le même but que simplexml pour PHP : apporter une alternative à DOM pour manipuler facilement les fichiers XML. C'est normalisé par l'ECMA (qui a normalisé l'Ecmascript). E4X étend donc la syntaxe de javascript pour accéder naturellement aux éléments d'un fichier XML.
Voir la page dédiée sur le wiki : E4X
XPCOM est semblable à la technologie COM de Microsoft. XPCOM permet de développer des composants réutilisables, et installables facilement, tout en limitant les dépendances binaires (cela permet d'ajouter de nouvelles fonctionnalités en C++ à Mozilla sans avoir à recompiler l'application).
Voir la page XpCom.
XPI est le format de fichier d'installation d'une application Mozilla. Cela se présente sous forme de paquet XPI qui est en fait un fichier zip renommé. Mozilla est capable d'installer et d'intégrer automatiquement une application construite sous ce format. Un paquet XPI peut être protégé par une clé de cryptage.
La plateforme Mozilla embarque nativement le moteur de base de donnée sqlite. Vous pouvez donc créer et utiliser ce genre de base de donnée en local. À l'aide des templates XUL, vous pouvez même générer des parties d'une interface XUL (remplir une listbox par exemple).
Par le passé, il existait également une extension qui proposait une API générique pour accéder à une base de données. Cette extension prenait en charge PostgreSQL, MySql, SQLlite. Mais elle ne semble plus maintenu.
Voir la page dédiée BaseDeDonnées
De par l'application de courrier Mozilla Mail ou Thunderbird, le support des protocoles d'accès aux systèmes de messagerie et de groupe de discussion (newsgroup) les plus communs sont implémentés dans la plateforme Mozilla. Mais ils ne sont inclus nativement que dans l'application Thunderbird. Il faut donc les récupérer des sources de thunderbird.
XTF est un framework permettant d'ajouter facilement un langage XML dans le moteur Gecko, et ainsi programmer l'affichage d'un type de fichier XML particulier sans toucher au moteur. Cela permet d'installer via une extension la prise en charge d'un dialecte XML nativement inconnu de Gecko. L'extension Xforms utilise XTF pour permettre à Gecko de prendre en charge Xforms.
Voir la page dédiée XTF
Sur https://developer.mozilla.org/ , vous avez aussi un panorama de toutes les technologies ainsi que leur documentation.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.