XBL o eXtensible Bindings Language es un lenguaje de marcas que se emplea para definir el comportamiento y la apariencia de aplicaciones XUL y elementos XML. El lenguaje XUL define la disposición de la interfaz de usuario de una aplicación, que puede adoptar diferentes aspectos dependiendo del estilo definido. Sin embargo resulta imposible definir cómo funciona cada elemento, como por ejemplo, la forma en que funcionan una barra de progreso. Es aquí donde entra en juego el lenguaje XBL.
Un archivo XBL contiene asociaciones (bindings). El elemento raíz de todo documento XBL es <bindings>
, que contiene a su vez uno o varios elementos <binding>
. Cada uno de estos últimos declara un binding que puede asignarse a cualquier elemento XUL. La forma de realizar esta asignación es a través de las hojas de estilo: la propiedad -moz-binding
del elemento XUL debe indicar la URL del documento XBL. Por ejemplo:
scrollbar {
-moz-binding: url('somefile.xml#binding1');
}
La especificación 1.0 del lenguaje XBL fue desarrollada por David Hyatt para el navegador Netscape. Posteriormente, toda la familia de aplicaciones Mozilla (Firefox, Thunderbird...) adoptaron una variante de esta especificación, junto con las tecnologías XUL y XML.
La versión 1.0 de este lenguaje presentaba ciertas carencias, por lo que está en desarrollo la versión 2.0. Se pretende resolver estos problemas y generalizar el uso del XBL en todos los navegadores. La especificación la está desarrollando el World Wide Web Consortium, junto con el desarrollador original, entre otros.
Otro de los objetivos de la nueva especificación de XBL es que pretende englobar el lenguaje SVG's XML Binding Language. El sXBL fue diseñado para añadir al Scalable Vector Graphics las funcionalidades que el XBL añade al XUL. El SVG es un lenguaje XML que codifica gráficos, animaciones, multimedios incrustados, eventos y personalización mediante scripts. Con la nueva versión, los documentos sXBL serán a su vez documentos XBL válidos.