XML User Interface Language
XUL (XML User Interface Language) is een gebruikersinterface-opmaaktaal, ontwikkeld om Mozilla-toepassingen zoals Mozilla Firefox en Mozilla Thunderbird te ondersteunen. Net zoals UIML is het een XML-toepassing die gebruikersinterfaces beschrijft. Het acroniem wordt uitgesproken als zool, zodat het rijmt met "cool" (zie onder)).
Hoewel XUL geen publieke standaard is, herbruikt deze wel veel bestaande standaarden en technologieën, zoals CSS, JavaScript, DTD en RDF, wat het relatief makkelijk te leren maakt voor mensen die een achtergrond hebben in webprogrammatie en -design.
Het belangrijkste voordeel van XUL is dat het voorziet in een eenvoudige en draagbare definitie van veel voorkomende widgets. Dit vermindert het werk in software-ontwikkeling op een gelijkaardige manier als het voordeel dat 4GL-hulpmiddelen opleveren.
Introductie
Een XUL-interface wordt typisch gedefinieerd als drie discrete verzamelingen met componenten:
- Content
- De XUL-documenten, die de layout van de gebruikersinterface definiëren.
- Skin
- De CSS- en afbeeldingsbestanden, die het uitzicht van de applicatie bepalen.
- Locale
- De DTDT-documenten, die entiteiten definiëren voor gemakkelijke softwarelokalisatie.
XUL-elementen
De XUL-specificaties bevatten een grote verscheidenheid aan elementen, die ruwweg tot de volgende types behoren:
- Top-level elementen
- bv. window, page, dialog, wizard, enz.
- Widgets
- bv. label, button, text box, list box, radio button, check box, tree, menu, toolbar, group box, tab box, color picker, spacer, splitter, enz.
- Box model
- bv. box, grid, stack, deck, etc.
- Events en Scripts
- bv. script, command, key, broadcaster, observer, enz.
- Data source
- bv. template, rule, etc.
- Andere
- bv. overlay (analoog aan SSI, maar aan de client-kant), iframe, browser, editor, enz.
Het is mogelijk om elementen uit andere XML-toepassingen binnen XUL-documenten te gebruiken, zoals XHTML en MathML.
Enkele populaire widgets - zoals spinbox, slider en canvas - zijn niet beschikbaar in de huidige XUL-specificatie, maar staan op de todo-lijst voor XUL 2.0 [1].
Gebruik
Hoewel XUL het vaakst wordt gebruikt voor de ontwikkeling van de Mozilla-toepassing zelf en zijn extensies, kan het gebruikt worden voor webapplicaties die over HTTP verstuurd worden. Eén van de bekendste XUL-toepassingen van dit type is de Mozilla Amazon Browser, die een uitgebreide interface biedt om boeken op te zoeken op Amazon.com. Veel van de krachtige opties van Mozilla, zoals gepriviligeerde XPCOM documenten, zijn echter niet beschikbaar voor externe XUL-documenten (tenzij het script digitaal getekend is), en zulke documenten zijn ook onderhevig aan verschillende beperkingen van de browser, zoals de onmogelijkheid om externe XUL, DTD en RDF documenten in te laden.
Filmreferenties
THERE IS NO DATA. THERE IS ONLY XUL. |
De naam XUL is een verwijzing naar de film Ghostbusters, waarin de geest van een oude Sumerische godheid met de naam Zuul bezit heeft genomen van het personage Dana Barrett (gespeeld door Sigourney Weaver) en verklaart "There is no Dana, only Zuul". Aangezien XUL ongewoon is voor XML aangezien die een interface beschrijft in plaats van een document, pasten de ontwikkelaars de spreuk aan tot "There is no data, only XUL". Daar wordt ook naar verwezen door de URI van de XML naamruimte op het begin van elk XUL document, http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul; wanneer men dit bekijkt met een toepassing die XUL ondersteunt, dan toont het document waarnaar de link verwijst, de spreuk in grote letters in het mdiden van het scherm (gelijkardig aan de afbeelding rechts).
"Keymaster" en "gatekeeper" zijn eveneens referenties naar hetzelfde verhaal. Dit is niet de enige verwijzing naar Ghostbusters in Mozilla - zo wordt bijvoorbeeld de JavaScript debugger-component Venkman genoemd, één van de hoofdpersonages uit de film.
Externe links
- Mozilla XUL - De homepagina voor Mozilla XUL-documentatie.
- XULPlanet - Een site voor ontwikkelaars, met tutorials, referenties en forums.
- Xul Runner - Een poging om XUL-applicaties uit te voeren in een lichtgewicht container.
- XUL Periodic Table - Visuele demonstratie van de mogelijkheden van XUL (Vereist een XUL-klare, Gecko-gebaseerde toepassing, zoals Mozilla Firefox).