XML User Interface Language

programmeertaal

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 bewerken

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 bewerken

De XUL-specificatie bevat een grote verscheidenheid aan elementen, die ruwweg tot de volgende types behoren:

Top-level elementen
bijvoorbeeld window, page, dialog, wizard, enz.
Widgets
bijvoorbeeld label, button, text box, list box, radio button, check box, tree, menu, toolbar, group box, tab box, color picker, spacer, splitter, enz.
Box model
bijvoorbeeld box, grid, stack, deck, etc.
Events en Scripts
bijvoorbeeld script, command, key, broadcaster, observer, enz.
Data source
bijvoorbeeld template, rule, etc.
Andere
bijvoorbeeld 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 bewerken

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. Een 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 geprivilegieerde 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 bewerken

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". Omdat XUL ongewoon is voor XML aangezien het 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, een van de hoofdpersonages uit de film.

Zie ook bewerken

Externe links bewerken

  • (en) Mozilla XUL, de homepagina voor Mozilla XUL-documentatie.
  • (en) Xul Runner, een poging om XUL-applicaties uit te voeren in een lichtgewicht container.