XBL or eXtensible Bindings Language is used to declare the behavior and look of XUL widgets and XML elements. In XUL one defines the user interface layout of an application, and then (applying styles) can customize the look of elements. The drawback is that XUL provides no means to change an element's function. For example, one might want to change how the pieces of a scroll bar work. This is where XBL comes in.
An XBL file contains bindings. Each of them describes the behavior of a XUL widget or XML element. For example, a binding might be attached to a scroll bar. The behavior describes the properties and methods of the scroll bar and describes the XUL elements defining the scroll bar.
The root element of an XBL file is the <bindings> element, which contains one or more <binding> elements. Each <binding> element declares one binding, which can be attached to any XUL element. It also may have an id attribute. A binding is assigned to an element by setting the CSS property -moz-binding to the URL of the bindings file