Developers Tutorial: XForms for Web Applications
The primary goal of XForms is to standardize the expression of more valuable XML data processing assets than what can be accomplished using only XML, namespaces and schema. The principal constraint on the design of XForms is to achieve its primary goal in a way that allows cultivated XForms capabilities as well as actual XForms assets to be shared in multiple contexts depending on highly disparate application, system and user requirements.
XForms satisfies its primary goal by allowing the creation of the core model-view-controller processing asset around XML data of a given schema, and it satifies the principal constraint by allowing for XForms assets to be extended into solutions by various host presentation languages. XForms includes many constructs that simplify the application design experience, such as a declarative business rules engine for automatic calculation of data values and other properties, input validation and dynamic constraints, data submission parameters, event-driven imperative action sequences, and intent-based user interface definition.
XForms is not simply a declarative language for describing relationships among nodes of data. The controller layer can perform an imperative sequence of actions such as setting a value of a node or inserting or deleting subtrees of data based on the occurrence of an event. A key driver of value in XForms assets is the principle that imperative commands capture high order semantics, so the sequences are short as they are implicitly tailored to the needs of the XML data schema by declarative constructs in the model and view layers. This also makes them more appropriate than scripting for archival and security applications since the results of commands are always placed into the XML data. Hence, this hybrid approach combines flexibility with stability to provide significantly more power than imperative-only or declarative-only languages.
This tutorial provides a comprehensive overview of the features of XForms in the context of real-world business application functionality. The tutorial is technical but not difficult for web developers.
Sponsor of The CIO Dinner