XML User Interface Language
XML User Interface Language (XUL) is een gebruikersinterface-opmaaktaal, ontwikkeld om Mozilla-toepassingen zoals Mozilla Firefox en Mozilla Thunderbird te ondersteunen. Het acroniem XUL wordt uitgesproken als zool, zodat het rijmt met "cool" (zie onder)).
XUL is een standaard van de Mozilla Foundation, en beschrijft de verschillende elementen binnen XUL (zie onder) en zaken als lay-out en toetsenbord-shortcuts ('accesskeys'). Binnen XUL kunnen ook zelf elementen worden gedefinieerd met behulp van XBL. XUL maakt ook gebruik van bestaande standaarden en technologieën, zoals CSS, JavaScript, DTD en RDF.
Het belangrijkste voordeel van XUL is dat het de ontwikkeling van user interfaces overzichtelijker maakt en kan versnellen. 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 lay-out van de gebruikersinterface definiëren.
- Skin
- de CSS- en afbeeldingsbestanden, die het uiterlijk van de applicatie bepalen.
- Locale
- de DTD-documenten, die entiteiten definiëren voor gemakkelijke softwarelocalisatie.
XUL-elementen
De XUL-specificatie bevat 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 midden van het scherm (gelijkaardig 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.
Zie ook
Externe links
- (en) Mozilla XUL, de homepagina voor Mozilla XUL-documentatie.
- (en) Xul Runner, een poging om XUL-applicaties uit te voeren in een lichtgewicht container.
- (en) XUL Periodic Table, visuele demonstratie van de mogelijkheden van XUL (Vereist een Gecko-gebaseerde toepassing zoals Mozilla Firefox).