Saturday, July 18, 2009

XForms status update

On the 4th June of 2009 the XForms working group requested the advancement of XForms 1.1 to W3C Proposed Recommendation. We have sufficient interoperable implementation experience according to our exit criteria. As you can see in the implementation report, there are XForms 1.1 implementations that run natively in the browser (Mozilla XForms), can be run in the browser by using JavaScript (Ubiquity and EMC XForms) or run on the server by using AJAX (Chiba). There is of course Orbeon another server side implementation that implements a lot of the new features from XForms 1.1. This gives you a lot of different possibilities, to use the power of XForms 1.1, when creating web applications in todays web browsers.

The XForms working group is also working hard on the future version(s) of the XForms recommendation. Some of the 'smaller' new features are a dialog control, a data driven switch, a case function (retrieve the selected case using an XPath function), Node 'create' XPath functions and passing event 'context' information to the dispatch and dispatch related actions. These features will increase the power and the ease of authoring even more.

One of the bigger new features is the optional support of XPath 2.0 as an expression language in XForms. As most of my colleagues know, I'm a big fan of XPath 2.0, so it isn't too surprising that this is one of my favorite new features for XForms.

Orbeon already supports XPath 2.0 for quite some time. I recently added support for XPath 2.0 to Chiba 3.0 . So there is already quite some experience about how XPath 2.0 could be added as an expression language in XForms. Nevertheless there is still quite some work to do. There are still some things that need further thinking and we need to come to an agreement about some other things too. You may expect updates on the progress of this feature from me on this blog. I'm also thinking about doing some posts about exciting things you can do with XPath 2.0 in XForms.

Another exciting new feature is 'reusable components'. This will allow the form author to create 'complex' components or sub-forms that may contain their own instance and/or model and can be (re-)used in forms, possibly in different places in the form.An XForms implementer, or even a form author, can create libraries of components that can be used by form authors across all different XForms implementations. Examples of components are a map component, a Social Security Number component, an address component, ... This feature still needs a lot of work, and the chance of it being ready for XForms 1.2 is quite small in my opinion. So this feature is probably a good candidate for XForms 2.0.

If you are interested in following what the XForms Working Group is doing, your can follow the public mailing list, our wiki (or more specific for possible XForms 1.2 features) or wait for our first Working drafts of XForms 1.2 and XForms 2.0.

These were just some examples of new features the XForms WG is working on. All the features are still 'work in progress' and there is no guarantee that they will be available in the next version of XForms or the version after that. The availability depends on the progress we make on the feature and how important the community, the Working Group and the implementers ranks the feature.