The Orbeon Forms XForms engine proposes out of the box a set of controls, including input fields, radio buttons, etc. Those are typically implemented natively within the XForms engine.
Beyond the basic set of controls, there is an obvious need for creating new reusable controls. It would be difficult to modify the XForms engine itself each time a new control is needed. Orbeon Forms therefore supports a complete framework inspired by the XBL 2 specification to address this need.
NOTE: The XBL 2 specification is no longer under development at W3C, but as of 2015 Web Components embody most of the ideas of XBL 2, including custom elements, the shadow DOM, and strong encapsulation.
You can use components to implement:
Controls for datatypes which have a native implementation, but where a custom appearance is required
Example: A custom control for entering a date with dropdown menus rather than a date picker
Controls for datatypes which do not have a native implementation
Example: A control to capture the xs:duration type