Opentopia Directory Encyclopedia Tools

XForms

Encyclopedia : X : XF : XFO : XForms


XForms is an XML format for the specification of a data processing model for XML data and user interface(s) for the XML data, such as web forms. XForms was designed to be the next generation of HTML / XHTML forms, but is generic enough that it can also be used in a standalone manner or with presentation languages other than XHTML to describe a user interface and a set of common data manipulation tasks.

XForms, much like XHTML 2.0 which is currently under development as of June 2006 and within which XForms will be embedded, differs from previous versions of XHTML. Because of this there is a learning curve for developers, but because XForms in general provides a large time savings for the development of enterprise quality web forms, it can be an attractive alternative for many uses.

XForms 1.0 (Second Edition) has been made an official W3C Recommendation on 14th March 2006. An indispensable list of errata to the 1.0 specification is available, fully incorporated into the main specification as of the [Second Edition]. XForms 1.1, which introduces a number of improvements, is in progress as a W3C Working Draft as of July 2006.

Differences from HTML forms

Unlike the original HTML forms, the creators of XForms have used a Model-View-Controller approach. The "model" consists of one or more XForms models describing form data, constraints upon that data, and submissions. The "view" describes what controls appear in the form, how they are grouped together, and what data they are bound to. CSS can be used to describe a form's appearance.

An XForms document can be as simple as an HTML form (by only specifying the submission element in the model section, and placing the controls in the body), but XForms includes many advanced features. For example, new data can be requested and used to update the form while it is running, much like using XmlHttpRequest/AJAX except without scripting. The form author can validate user data against XML schema data types, require certain data, disable input controls or change sections of the form depending on circumstances, enforce particular relationships between data, input variable length arrays of data, output calculated values derived from form data, prefill entries using an XML document, respond to actions in real time (versus at submission time), and modify the style of each control depending on the device they are displayed on (browser versus mobile versus text only, etc.). There is often no need for any scripting with languages such as JavaScript.

Like legacy forms, XForms can use various non-XML submission protocols (multipart/form-data, multipart/x-www-url-form-encoded), but a new feature is that XForms can send data to a server in XML format. XML documents can also be used to prefill data in the form. Because XML is a standard, many tools exist that can chop and modify data upon submission, unlike the case with legacy forms where in general the data needs to be parsed and manipulated on a case by case manner. XForms is itself an XML dialect, and therefore can create and be created from other XML documents using XSLT. Using transformations, XForms can be automatically created from XML Schemas, and XForms can be converted to legacy XHTML forms: this is basically how server side XForms work today.

Software support

At the time of this writing, no widely used web browser supports XForms natively. However, various browser plugins and client-side extensions exist. The following lists some client-side implementations:

The following implementations are pure client-side implementations that do not reside in a web browser:

XForms can also be used today through various server-side technologies which convert XForms to legacy HTML forms or other widgets on the fly and transparently to users. Implementations include:

The following implementations provide a server-side compiler that produces HTML and JavaScript from XHTML/XForms documents:

Both Chiba and Orbeon PresentationServer (OPS) are based on Ajax technology. The advantage of open source server-side technologies is that the resulting output works in theory with almost any browser existing today (the end user will not necessarily notice that they are viewing an XForms page). This solves the question of the deployment of XForms, which is otherwise hampered by the question of browser upgrades or plugin installations.

Plugins and other client-side technology can have some benefits as well: because they integrate themselves into the browser, they will work with existing server architectures, can be more responsive, require fewer server fetches. They can also present themselves in more user-friendly ways (i.e. controls that do not already exist in the browser, like sliding scales, can be added to a page), although the advent of JavaScript widgets is currently offsetting that benefit.

The trade-off on both sides is that new software is needed; either each client must install the required plug-in, or the server architecture must change to accommodate a UI proxy. It is in theory possible to mix both of these solutions, for instance testing the browser for a client-side XForms implementation and serving native XForms in that case, and defaulting to a server solution in other cases.

XForms for Mobile Devices

Benefits

XForms provides specific benefits when used on mobile devices:

Mobile Implementations

Despite the benefits of XForms for mobile devices, XForms on mobile devices is still an emerging technology at best. Jon S. von Tetzchner, CEO of Opera, producers of the leading browser for mobile devices, says his company is currently considering support for XForms but that in his mind Webforms 2.0 makes more sense on the client side. So far, IBM, Oracle and FormFaces have produced significant initiatives:

References

External links

 


From Wikipedia, the Free Encyclopedia. Original article here. Support Wikipedia by contributing or donating.
All text is available under the terms of the GNU Free Documentation License See Wikipedia Copyrights for details.

Search Titles
0123456789
ABCDEFGHIJ
KLMNOPQRST
UVWXYZ?

E-mail this article to:

Personal Message: