XML User Interface Language

linguaggio per definire interfacce grafiche

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 User Interface Language
Estensione.xul
Tipo MIMEapplication/vnd.mozilla.xul+xml
SviluppatoreMozilla Foundation
TipoLinguaggio di markup
Sito webwww.mozilla.org/projects/xul
Esempio di applicazione XUL.

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 modifica

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 modifica

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[1].

Modo d'uso modifica

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 modifica

THERE IS NO DATA.
THERE IS ONLY XUL.

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.

Note modifica

Voci correlate modifica

Collegamenti esterni modifica

Controllo di autoritàLCCN (ENsh2002007597 · GND (DE7560706-2 · BNF (FRcb150215315 (data) · J9U (ENHE987007556763205171