XML Binding Language (XBL, a volte chiamato anche Extensible Bindings Language) è un linguaggio per descrivere i binding che possono essere associati ad elementi di altri documenti. L'elemento al quale il binding è associato, chiamato bound element, acquisisce il nuovo comportamento specificato dal binding.
I binding possono contenere gestori di eventi che sono registrati per il bound element, un'implementazione di nuovi metodi e proprietà che divengono accessibili dal bound element e del contenuto anonimo che viene inserito sotto il bound element.
La maggior parte dei widget XUL sono almeno parzialmente implementati utilizzando XBL. E' inoltre possibile costruire widget riutilizzabili partendo da XUL, HTML, SVG e altri linguaggi utilizzando XBL.
Specifiche
XBL 1.0 è specificato in XBL 1.0 Reference. Purtroppo, l'attuale implementazione in Mozilla è differente dalle specifiche e non vi è alcun documento conosciuto che descriva tali differenze. E' sperabile che la Reference venga aggiornata per descrivere l'implementazione di Mozilla.
XBL 1.0 è una tecnologia specifica di Mozilla e non uno standard W3C. Tuttavia, si sta lavorando su almeno due standard: sXBL e XBL 2.0.
- W3C sXBL (attualmente una bozza) sta per SVG's XML Binding Language. Includerà un sottoinsieme delle funzionalità di XBL 2.0 di cui si necessita per SVG. Nello stile è simile all'XBL di Mozilla, ma vi sono alcune differenze più o meno sottili. Per esempio, i nomi degli elementi sono diversi. Inoltre in sXBL manchino alcune funzionalità di XBL, come l'ereditarietà dei binding e la definizione di metodi e proprietà per i bound element.
- XBL 2.0 è in fase di sviluppo ed è stato pensato per risolvere i problemi trovati in XBL 1.0 e per permettere l'implementazione in un più vasto rango di web browser.
Alcune differenze tra sXBL e XBL2 sono elencate in un articolo di Anne van Kesteren (EN).