...
The custom class is required to implement the same interface that the standard element implements, in order to keep the functional code clean (without references to the custom components).
For example, if I declare the following definition:
...
Since the XUL textbox element renders an implementation of the XulTextbox interface, then the class that my "variabletextbox" name maps to must also implement the XulTextbox interface. For an understanding of what interfaces are implemented for which elements, download the source and inspect the implementations of the XulLoader interface. The xulLoader XulLoader impl classes hold the references to the handler mappings (element to implementing renderer Java class name).