title: XML User Interface Language
text: # XML User Interface Language
  
  XUL (XML User Interface Language) è un linguaggio per definire interfacce grafiche sviluppato per supportare le applicazioni basate su Mozilla, come Mozilla Firefox e Mozilla Thunderbird. Come UIML, è un'applicazione basata su XML per descrivere interfacce grafiche. Si pronuncia zuul.
  
  XML è utilizzato anche da Android Studio.
  
  L'intera interfaccia di Firefox, Thunderbird, Seamonkey e altri programmi Mozilla è costruita in XUL.
  
  Sebbene XUL non sia uno standard pubblico W3C, esso riutilizza molte tecnologie standard preesistenti, come i CSS, JavaScript, Document Type Definition (DTD) e Resource Description Framework (RDF), che lo rende molto semplice da imparare per persone che hanno una conoscenza di sviluppo e design di applicazioni web.
  
  Il maggiore vantaggio di XUL è il suo fornire una interfaccia semplice e portabile per i componenti più comuni. Questo riduce lo sforzo implementativo in modo analogo a quello fornito dagli strumenti 4GL.
  
  ## Introduzione
  
  Un'interfaccia XUL è tipicamente definita da tre insiemi discreti di componenti:
  
  ### Contenuto
  
      il documento XUL, che definisce il layout dell'interfaccia.
  
  ### Skin
  
      il file CSS e le immagini, che definiscono l'aspetto esteriore dell'applicazione
  
  ### Localizzazione
  
      il documento DTD, che definisce i componenti per una localizzazione più semplice.
  
  ## Elementi XUL
  
  Le specifiche XUL comprendono un gran numero di elementi che, in prima approssimazione, appartengono alle seguenti aree:
  
  ### Elementi principali
  
      finestre, pagine, finestre di dialogo, wizard, ...
  
  ### Componenti (widget)
  
      etichette, bottoni, caselle di testo, liste, alberi, menu, barre degli strumenti, tabulazioni, spaziatori, ...
  
  ### Box model
  
      box, grid, stack, deck, ...
  
  ### Eventi e script
  
      script, comandi, tasti, broadcaster, observer, ...
  
  ### Sorgenti di dati
  
      template, regole, ...
  
  ### Altri
  
      overlay, iframe, browser, editor
  
  È possibile usare, all'interno di documenti XUL, anche altri documenti XML, come XHTML e MathML, grazie all'uso dei namespace.
  
  Alcuni componenti comuni, come spinbox o canvas, non sono disponibili nelle specifiche XUL correnti, ma sono nella lista delle cose da implementare per la versione 2.0 di XUL.
  
  ## Modo d'uso
  
  Sebbene XUL sia usato soprattutto per creare l'applicazione Mozilla e tutte le sue estensioni, è possibile usarla anche per applicazioni web trasferite via HTTP. L'applicazione XUL maggiormente conosciuta è la Mozilla Amazon Browser, che fornisce una ricca interfaccia per cercare i libri presenti su Amazon. Comunque molte delle funzioni più potenti di Mozilla (come l'uso degli oggetti XPCOM), non sono disponibili ai documenti eseguiti in remoto (a meno che lo script non sia firmato digitalmente).
  
  ## Origine del nome
  
  Il nome XUL deriva dal film Ghostbusters, nel quale un fantasma di nome Zuul si impossessa di un personaggio di nome Dana (interpretato da Sigourney Weaver) e dichiara "Non c'è Dana, solo Zuul" (There is no Dana, only Zuul). Poiché XUL è stranamente usato per definire in XML un'interfaccia, invece del contenuto, gli sviluppatori hanno adottato come slogan il motto "Non ci sono dati, solo XUL" (There is no data, only XUL). Questo si può vedere nell'URI usato nel namespace XML all'inizio di ogni documento XUL https://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul; quando si vede con una applicazione XUL, il documento mostra uno slogan in grandi lettere al centro dello schermo.
  
  "Keymaster" (mastro di chiavi) e "gatekeeper" (guardiano di porta) sono anch'essi presi dallo stesso film. Questo non è l'unico riferimento al film in Mozilla: ad esempio, il debugger JavaScript è chiamato Venkman, il nome di uno dei personaggi del film.
  
  