The XForms standard arose from the desire of many people to use the web for more than just linking documents. The original design of the world wide web standard introduced many innovative concepts including the URL, the HTML markup language and the HTTP protocol.
But innovation aside, elegant form processing was not one of the design goals of the initial HTML language. In fact, many of the advanced input fields were added to the HTML specification after it became popular.
One thing is clear: the introduction of clean MVC concepts were never part of the original HTML specification. Many attempts were made to introduce better controls into browsers and the HTML language, but most of these additions fell short for four reasons:
- They were either browser or vendor specific solutions to a specific problem
- They did not integrate mainstream developments in XML Schema, XPath and CSS
- They did not take into account the need for clear separation-of-concerns
- They did not meet the rigorous needs of application architects that understood the benefits of MVC architectures
As a result, many of these point-solutions have been discarded or have seen only niche use by some vendors.
Around 1997 the W3C started to address the concerns of these users and studied how web forms could be processed in a better way. They realized that validating data elements was a large concern and that re-inventing the validation tools already present in XML Schema would only duplicate efforts.
The first XForms draft specification was published on April 6, 2000. Since then it has been revised with the most recent version (1.1) appearing in March of 2006.
Today the XForms standard addresses several web forms development issues:
- Model-View-Binding architecture
- Advanced functionality
- Precise specification for all browsers to integrate
- Built-in assumptions about how form elements get updated
The Dependency Graph
One of the most important papers about how XForms is designed come from the following paper:
For the current working draft of the XForms specification you can go to the w3 web site:Last modified on 16 December 2010, at 19:46