[February 26, 2000] "The current Mozilla infrastructure contains a number of recent feature additions, specifically intended to facilitate the design of user interface elements and the processing of events and operations on those elements. To date, this has been undertaken on a sort of "ad hoc" basis, with features being invented, augmented and redesigned only as needed. These features include anonymous content, the command dispatcher, the controller system, and the configurable key binding system. The above features have emerged as critical requirements for the Mozilla application. Unfortunately the design of these features has been haphazard at best. The design has also been particularly difficult because it necessarily involves non-standard extensions to CSS, the DOM, and HTML. The purpose of this document is to provide a concrete proposal for a redesign of the current system in order to enable the full range of functionality we need for the Mozilla application. In the following sections, I will tie together these different features into a new language, XBL, that can exist apart from XUL and that can be used with either XUL or HTML. The Structure of an XBL Document: An XBL file is a well-formed XML file. The root element of the file is a <bindings> tag. The namespace of XBL is http://www.mozilla.org/xbl. An XBL file consists of zero or more bindings, each declared as a child of the root element with a <binding> tag..."