What are XForms?
XForms are an MVC-based declarative client-based technology for capture, validation, calculation and assessment of user data. In application they're a cross between a spreadsheet and XSLT.
XForms are defined by an open W3C standard that will become standard in XHTML 2.0, but their implementation is already available for all browsers via a tiny (77KB) GPLed javascript or tinier (60KB) Flash module.
Purpose
Thin client XForms can
Architecture
XForms architecture is based on a spreadsheet-like declarative calculation model that keeps track of computational dependencies so chained calculations properly resolve themselves in unison with changing input data. Calculation resolutions can include CRUD operations on the underlying XML model as well as all the usual arithmetic and logical calculations on all the usual datatypes.
XForms use XML to define model data, XPath to bind to XHTML user interface views, and XML Events to adorn this binding with GUI and programmatic controllers. This creates the classic MVC application pattern - any GUI gesture can be mapped to recalculation, revalidation, refresh, scrolling, filtering, or other behaviours of repeating line item tables, and to declare and execute embedded Editors, Unit Tests, and User Acceptance Tests for these mappings - directly in the XML without any procedural scripting.
Pub-sub logic is also fully realizable with XML Events, removing the need for a client-side procedural application backbone. This is not to say XForms is intended to replace all scripting - there will likely still be scripts for GUI special effects and exotic validations. But economical replacement of about 80% of procedural scripting is plausible. And this is just scratching the surface.
Interoperation
As a standard XForms are platform and device independent. As part of XHTML 2.0 they automatically integrate with
See also: XformsApplications