Key Goals of XForms
The following list describes the key purposes of XForms, as listed by W3C.
Support for handheld, television, and desktop browsers, plus printers and scanners. The complex nature of the user interfaces, and the consequent intent-based authoring of the user interface, make it possible to re-purpose the user interaction to different devices.
Richer user interface to meet the needs of business, consumer and device control applications. Here the XForms user interface provides a standard set of visual controls that are targeted toward replacing today's XHTML form controls. These form controls are directly usable inside XHTML and other XML documents, like SVG. Other groups, such as the Voice Browser Working Group, may also independently develop user interface components for XForms.
Decoupled data, logic and presentation. To achieve a separation of data, logic, and presentation; submitted data is strongly typed and can be checked using off-the-shelf tools. User interface controls encapsulate all relevant metadata such as labels, thereby enhancing accessibility of the application when using different modalities.
Improved internationalization. Using XML 1.0 ensures that the submitted data is internationalized.
Support for structured form data. With the ability to annotate an external schema associated with form data, this enables the XForms author to go beyond the basic set of constraints available from the back end. Providing such additional constraints as part of the XForms model enhances the overall usability of the resulting web application.
Advanced forms logic. XForms has a more complex sense of state for the form processing. For each state the form can be in, there is a suite of defined pre-conditions and post-conditions. A form has three states: initialization, user interaction, and submission. Each of these phases is further subdivided.
The data inputted to the server would be in XML format, obviating the need for custom server-side logic to marshal the submitted data to the application back end. The received XML instance document can be directly validated and processed by the application back end.
Multiple forms per page, and pages per form. XForms provides a framework for having multiple forms within a document, with multiple model elements that bind to various instance data.
Suspend and Resume support. For some applications, the process of filling out the form will be interleaved with searching for relevant information. This motivates the development of the means to suspend a form and to later resume filling it out, perhaps a considerable time later. This could occur explicitly at the user's requestfor instance, when filling out a complex formor automatically when moving from one page to another on a shopping cart web site. Many web sites develop complex issues with users of the browser clicking the Back button while in the middle of a complex form that has multiple pages of input.
Seamless integration with other XML tag sets. With the UI components being associated with being strongly typed, submitted data can be checked using off-the-shelf tools. Type validation rules help client-side validation.