3- XUL | 
XUL est une description en XML de l'interface utilisateur, cette
 sérialisation des composants selon une spécification standardisée
 permet à Gecko de parser le fichier .xul et de créer et instancier
 l'interface graphique elle-même.
 
L'exemple suivant donne une idée sur la structure d'un fichier
 .xul  :
 
 
 
| <?xml version="1.0"?>
  <?xml-stylesheet href="xul.css" type="text/css"?> <!DOCTYPE package> <package xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <window id="main"> ... <xul:toolbar> <html:button cmd="nsCmd:MailSendMsg" style="background-color:rgb(192,192,192);"> <html:img src="resource:/res/toolbar/Mail_SendMsg.gif"/><html:BR/>Send </html:button> ... </window>   <window id="help">
   | 
 
    Après que Gecko parse ce fichier, il le charge
 et l'instancie par :
 
 
Package *package = LoadPackage("http://xxx/package.xul");
 
InstantiateWindow(package, GetNodeWithID("main");
    Pour le moment, un fichier XUL ne contient qu'une
 seule fenêtre qu'on instancie par :
 
 
InstantiateWindow("http://xxx/window.xul");
    Cette fenêtre principale peut contenir des menus,
 des barres d'outils, des boutons, des images. Les balises et attributs
 de ces  principaux éléments graphiques sont spécifiés. 
 Une dizaine d'autres sont identifiés, mais pas encore standardisés.
 
L'interface ainsi décrite est statique, XUL permet aussi d'ajouter
 de la programmation en javascript ou en C++.
 
 
 
| <html:script>
  // dialog initialization code function InitWindow() { var checkbox = document.getElementByID("remember"); if (checkbox) checkbox.checked = true; } </html:script>  | 
 
 
 |