XUL (, skraćeno od XML User Interface Language, je jezik za obeležavanje za korisničkim interfejsom napravljen od strane Mozilla-e. XUL je implementiran kao XML dialekat; on dozvoljava da grafički korisnički interfejs bude napisan na sličan način kao veb stranice.

XUL može da se koristi za pisanje aplikacija za više platformi kao što je Mozilla Firefox, gde je interpretiran od strane layout engine-a poznatijeg kao Gecko koji prevodi Firefox-ov korisnički interfejs i prikaz veb stranica.

Dizajn XUL se oslanja na mnoge postojeće veb standarde i tehnologije, uključujući CSS, JavaScript, i DOM, ta činjenica čini XUL relativno lakim za učenje ljudima sa poznavanjem osnova veb programiranja i veb dizajna.

XUL nema formalnu specifikaciju i ne interaguje se ne-Gecko implementacijama. Ipak, koristi open source implementaciju Gecko-a, koja je licencirana pod GNU GPL-om, GNU LGPL-om, i MPL-om dok Gecko nije prešao na GPL-kompatibilni, MPL 2.0.

Mozilla pruza eksperimentalni XULRunner build-er koji omogućava programerima da napišu svoje aplikacije na osnovama Mozilla application framework-a i XUL-a posebno.

XUL pruža portable definiciju za uobičajne widget-e, omogućavajući im da se lako prebace na bilo koju platformu na kojoj se Mozilline aplikacije izvršavaju.

XUL dokumentacija Programeri obično definišu XUL interfejs kao tri diskretna skupa komponenti:

content: XUL dokumenta, čiji elementi definišu raspored korisničkog interfejsa skin: CSS fajlovi i slike, koji definišu izgleda aplikacije locale: fajlovi koji sadrže vidljive stringove za lakšu lokalizaciju softvera

XUL elementi XUL definiše veliki broj elemenata, koji grubo mogu da se podele na sledeće tipove:

Elementi visokog nivoa window, page, dialog, wizard, etc. Widget-i label, button, text box, list box, combo box, radio button, check box, tree, menu, toolbar, group box, tab box, colorpicker, spacer, splitter, etc. Box modeli box, grid, stack, deck, etc. Događaji i skriptovi script, command, key, broadcaster, observer, etc. Izvori podataka template, rule, etc. Ostali overlay (analogno sa SSI-om, ali na klijentskoj strani i moćniji, sa boljim performansama), iframe, browser, editor, etc.

Programer može da koristi elemente iz drugih XML aplikacija u XUL dokumentima, kao npr. XHTML, SVG i MathML.

Mozilla je dodala neke osnovne widget-e — (nekada nazvan i "slider"), (spinbox), odabirače datuma i vremena — za vreme razvijanja Gecko verzije 1.9.Firefox 3 for developers

XUL aplikacije

Dok se XUL koristi primarno za razvijanje Mozilla aplikacija i njihovih ekstenzija on može da se koristi i u veb aplikacijama transferovan preko HTTP-a. Mozilla Amazon Browser, bivša XUL aplikacija ovog tipa, pružala je bogat interfejs za pretraživanje knjiga na Amazon.com-u. Ipak, mnoga moćna svojstva Mozilla-e (kao npr. XPCOM objekti) ostaju nedostupni za neprivilegovana XUL dokumenta osim ako skript ima digitalni potpis, i osim ako korisnik dobije pravo pristupa određenim privilegijam u aplikaciji. Takva dokumenta takođe pate od različitih ograničenja veb pregledača, uključujući nemogućnost da se učitaju daljinski XUL, DTD, i RDF dokumenti.

Kako Gecko jedini pruža punu implementaciju XUL-a, takve aplikacije ostaju nepristupačne korisnicima veb pregledača koji nisu zasnovani na Mozili. Mozilla-programeri ponekad kažu da se XUL aplikacije izvršavaju lokalno kao chrome.

Druge aplikacije koje koriste XUL:

Ample SDK open-source GUI okvir omogućuje implementaciju XUL-a u JavaScript-u na više veb pregledača. ActiveState Komodo IDE koristi XUL kao i Open Komodo projekat predstavljen 2007. Songbird muzički plejer i Miro video plejer oboje koriste ugrađeni XUL. Elixon WCMS/XUL Content management system koristi isključivo daljinski XUL, i tako prevazilazi neke od već pomenutih ograničenja daljinski neprivilegovanih XUL dokumenata. Programeri aplikacije Celtx medija koristili su u pred produkciji XUL. Flickr Uploader je razvijen pomoću XUL-a, izvorni kod je dostupan pod GPLv2 licencom.Getting your stuff onto Flickr Kiwix, offline Wikipedia pregledač

Sa pojavom Firefox verzije 4, podrška za udaljena XUL dokumenta je podrazumevano onemogućena iz sigurnosnih razloga. Učitavanje XUL stranice preko HTTP-a ne bi prijavilo grešku osim ako je domen dodat na sakrivenu belu listu.

Naziv Naziv "XUL" je referenca iz filma Ghostbusters (1984), u kom antičko Sumersko biće zvano Zuul obuzima Danu Barrett i izjavljuje, "Nema Dane, samo Zuul". Budući da XUL, kao i MXML, koristi XML da definiše interfejs a ne dokument, njegov razvojni tim osmislio je slogan: "Ne postoje podaci, postoji samo XUL". Odatle XML namespace URI na početku svakog XUL dokumenta:

http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul

Dokument iz linka prikazuje link velikim slovima na sredini ekrana.

"Keymaster" i "gatekeeper" su takodje reference iz filma Ghostbusters. (Druge reference na Ghostbusters takodje se pojavljuju u Mozillinim projektima: npr., komponenta JavaScript debugger-a se zove Venkman, po jednom od glavnih likova u filmu.)

Primer

Ovaj primer prikazuje tri dugmeta naslagana jedno na drugo u vertical box kontejneru:The Box Model - XUL | MDN . Developer.mozilla.org (2012-12-16). Retrieved on 2014-03-28. десно

<?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

<window id="vbox example" title="Example 3...." xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <vbox> <button id="yes1" label="Yes"/> <button id="no1" label="No"/> <button id="maybe1" label="Maybe"/> </vbox> </window>

Slični jezici Zasnovan na HTML-u, DHTML-u i JavaScript-u, Microsoft-ov HTML Application podseća na XUL i predstavlja zasebnu aplikaciju sa mogućnošću da pokreće aplikacije na Windows-u, van pregledača veba.

Microsoft Windows Presentation Foundation (WPF) definiše XAML, još jedan deklarativni jezik sa korisničkim interfejsom sličan XUL-u — on je na vrhu .NET Framework hijerarhije.

Vidi još

Jezici za označavanje Mozilla Firefox

Reference

Spoljašnje veze XUL documentation on developer.mozilla.org XUL Periodic Table — Visual demonstration of XUL capabilities (requires a Gecko (layout engine)|Gecko-based (XUL-enabled) browser such as Mozilla Firefox)

Категорија:Jezici za označavanje