# XBL

XBL (XML Binding Language) é uma linguagem de marcação baseada em XML, usada para declarar o comportamento e aparência de widgets XUL e elementos XML.
XBL foi desenvolvido pelo projeto Mozilla para uso na suíte de aplicativos Mozilla, a linguagem não está descrita por qualquer padrão formal atualmente, e é, portanto, de propriedade da Mozilla, cuja única implementação atualmente é o Motor de layout Gecko. O XBL 2.0 é a nova versão do XBL, que está em via de ser padronizado pelo World Wide Web Consortium.

## Básico sobre XBL

Em XUL define-se a interface de usuário de um aplicativo, e em seguida, através da aplicação de "estilos" pode-se personalizar a aparência de vários elementos diferentes. A desvantagem é que o XUL não fornece meios para mudar a função de um elemento. Por exemplo, pode-se querer mudar a forma como as peças de uma barra de rolagem funciona. É onde entra o XBL.
Um arquivo XBL contém "ligações", cada uma das quais descreve o comportamento de um widget ou elemento XML XUL. Por exemplo, uma ligação pode ser anexada a uma barra de rolagem. O comportamento descreve as propriedades e o método da barra de rolagem e também descreve os elementos XUL definindo a barra de rolagem.
O elemento raiz de um arquivo XBL é o <bindings>, que contém um ou mais elementos <binding>. Cada <binding> declara um elemento de ligação, que pode ser anexado a qualquer elemento XUL. Ele também pode conter um atributo id. Uma ligação é atribuída a um elemento definindo a propriedade CSS -moz-binding para a URL do arquivo de ligação. Por exemplo:
Onde binding1 é a id da ligação.

## História e futuro

O XBL foi inicialmente desenvolvido e implementado como parte da plataforma 'Mozilla', juntamente com a linguagem XUL, por isso o XBL está disponível na maioria dos produtos baseados no Mozilla: Firefox, Thunderbird, SeaMonkey, etc Costumava haver um documento especificando o XBL 1.0 no sitio Mozilla.org, que foi apresentado como uma nota técnica W3C, mas a implementação real nunca se pareceu com a especificação.
Uma nova versão da especificação, chamada XBL 2.0, está em desenvolvimento para enfrentar os problemas do XBL 1.0 e permitir a implementação em uma ampla gama de navegadores.
Enquanto o corpo da presente versão da especificação ter sido criada pelo Projeto Mozilla, fora do World Wide Web Consortium, como foi o caso da versão 1.0, no caso da versão 2.0 o W3C Web Application Formats Working Group está orientando a especificação ao longo da trajetória de recomendação do W3C.
A recomendação de candidatura da especificação foi lançada pelo W3C em março de 2007. É especificado no documento que ela irá permanecer em fase de candidatura até duas implementações completas e interoperáveis existirem.

## Relacionamento com outras especificações

A especificação sXBL destina-se a fazer pelos documentos SVG o que o XBL fez para documentos XUL. O SVG é uma linguagem XML proposta pelo W3C suportando gráficos, animações e multimídia incorporada, programação orientada a eventos|eventos e comportamento roteirizado.
O XBL 2,0 substituirá o rascunho do sXBL, tal como consta no W3C Web Application Format Working Group site. Os capítulos da especificação do sXBL são um subconjunto dos do XBL 2.0.