This page provides a non-exclusive, unordered list of XForms future features. The intent of this list is to provide starting points for parallel development of spec-ready text for these features.
The features you find here may or may not be adopted into XForms in the future, or similar features may be adopted that solve use cases.
Here is an automatic list of CategoryXFormsFutureFeatures.
Here is a manual list of Future Features.
Contents
XForms 1.2: Streamlined for Web Application Authors
XForms 1.2 Modularization
The XForms instance data module Charlie
The XPath Functions module
- Most of the XForms functions, except those listed as being added by other modules
The Actions module Nick
- The 'if' and 'while' attributes
- The 'action' element and deferred update
- The 'dispatch' action
- Import the events attributes
- The event() function
The "Binding Attributes Module" John
- Single Node Binding (SNB) group as @context and @ref only
- Node Set Binding (NSB) group as @context and @nodeset
- Evaluation context information
- The context() function
- The instance element, @src and @resource
- The setvalue, insert and delete element, which use SNB and NSB bindings
- The xforms-insert and xforms-delete events
- The instance() and id() functions
Model module (model element, functions attr, model events, add @model to SNB and NSB bindings) Uli
- Defines model element
- Define @functions, including its effect on XPath expression evaluation (see expr-lib-extension)
- The property() function
- Adds @ model to SNB and NSB groups
- The rebuild, recalculate, revalidate, refresh and reset actions
- The xforms-rebuild, xforms-recalculate, xforms-revalidate, xforms-refresh events
The bind Module Nick
- The bind element
- Change from nodeset attr to Node Set Binding attributes
- Add @bind to SNB and NSB bindings
The validation Module (constraint, required, type (for string only))
The Core XForms Typelib Module (adds the 'must' datatypes in xsd and xforms namespaces)
The XML Schema Validation Module Uli
- schema attr on model
- inline schema
- xsi:type
- full schema validation
- ability to refer to schema-defined datatypes in type
The relevant Module (relevant) Nick
The readonly Module (readonly) Nick
The calculate Module (calculate) John
The p3ptype Module (p3ptype) MarkB and Paul
The XForms submission module Uli and John
Includes Need event for submission result received event
- xforms-submit, xforms-submit-done, xforms-submit-error, xforms-submit-serialize
- submission element and attributes
- submission module attributes: Common, resource, action, mode, method, serialization, version, indent, mediatype, encoding, omit-xml-declaration, standalone, cdata-section-elements, separator, includenamespaceprefixes
- XForms driver module would define attributes ref, bind, validate, relevant, replace, target, instance
- submission module child elements: header, method, resource, Actions element group
- submission module: send action element, load action element
- Defines setfocus
The UI Binding module
- Extend from Single Node Binding to get behaviors of MIPs and eventing
- Would allow custom controls to use UI bindings
Input Form Controls module (input, textarea, select1, select, range, ...)
The Label module
Container Form Controls module
- group
- switch+toggle
The Repeat Module
- repeat element, setindex action, repeat attributes
- Augment definition of references and dependencies based on index changes
The XForms message module MarkB and Paul
- message, help, hint, alert
Mandatory
Make model optional (Strawman - Charlie and Mark)
Allow submission elements without model element (Strawman - Charlie and Mark)
Allow instance elements without model element (Strawman - Charlie and Mark)
Add model item properties to UI level (Strawman - Nick)
Unified evaluation context (Strawman - Nick)
Add support for default values without the need of an instance element (Strawman - Nick)
Put @context everywhere (Strawman - Uli)
Supercedes Put ref or context on action element
Better DOM interface to expose all actions (Strawman - Uli and Nick)
Duplicate: More IDL functions to integrate with AJAX
Supplementary
Model-based switching with switch (Strawman - John)
Supercedes Model-driven switch with case attr
Externally defined models with src attribute (Strawman - Charlie, Mark, John)
Custom XPath functions, e.g sumover(), from host language (Strawman - Erik and John)
Same model item property on the same node (e.g. multiple constraints) (Strawman - Nick and Leigh)
XForms 2.0: Refactoring
Componentization
Nested models for convenient grouping and composition (Strawman - Charlie and Mark)
Duplicate Form App modularization
XBL integration (Erik's note: I would use the more general term "Components" to describe the high-level feature. We may or may not use XBL to support components.)
Model
Generalized Constraints in Document
Includes A document() function
- Should include a here() function
View
Repeat pattern (Strawman - Steven)
Default trigger (Strawman - John)
- UI Controls that can manipulate XML subtrees, which includes
- Arbitrary Attachment Capabilities, consisting of
Multiple cases active for some kind of UI switch (like a switch-many)
Should supercede: Indicating whether something is wrong with non-selected cases and non-relevant groups
New UI events (added by Erik)
Context information for UI events (added by Erik)
Consider data formatting in UI controls
Supercedes "Let @value override single node binding on output"
Controller
Create Node (Strawman - Nick)
Dynamic add and delete of form controls, binds, bindings instances, schema
Create a construct for actions that iterates over a nodeset (convenience for @while)
XForms Timer (capability available in 1.1 using delay on dispatch)
Submission
Need binary data support for submission data and submission result
Submission some kind of better filtering than relevance that affects only submission and not the UI
Foundations
Need ability to conditionally cancel events (integrate XML Events 2.0)
XForms 2.0 Modularization
This includes new modules and refinement of some existing modules from XForms 1.2. New modules include the XML Signatures Module and the SCXML module. Refinements include updates to the Model module to allow pluggable schema engines and updates to the Instance module to allow pluggable reference engines and possibly data formats.
The XForms message module MarkB and Steven
- message, help, hint, alert
The XForms instance data module Charlie, Uli and John
- Include insert/delete/setvalue and "get (string) value"
- Parse, serialize
- Pluggable reference engine
Includes Add support for multiple expression languages
Supercedes Alignment with XPath 2.0
- May include pluggable data format, e.g. JSON data
Data Properties module Uli and John
- MIP values/inheritance, overall validity, user-defined
Model module (understands bind module, deferred updates, etc.)
Bind Module (constraint, type, calculate, relevance, readonly, p3ptype, user-defined)
Validation Module (includes pluggable schema engines)
May include Schema attr on instance
May include Validation attr on instance to control strict/lax/skip
XForms actions module (include user-defined actions, deferred update)
User Interface module (combines Container and Atomic form control modules)
Container Form Controls module (group, switch, repeat, user-defined)
Input Form Controls module (input, textarea, select1, ..., user-defined)
- May include or rely on user-defined actions
Unassigned (post 2.0, or possibly not version-specific)
Multiple step undo (e.g. undo to last state)
multiple schemas targeting same namespace (e.g. allow inline schema to augment external schema; similar to having the internal one import the external one).
Wiki Markup for XForms (Creation of interactive content)