XForms 1.1 Implementations
On the implementation front, the news is mixed. XForms has a higher profile than it did a few years ago, and a number of XForms projects are now showing up in everything from government-based sites to commercial applications. However, to date, the only major vendor to produce a commercial XForms 1.1 solution is EMC/Documentum, which developed the Formula XForms Engine
for use in their XML tools. Formula is based on the Google Web Toolkit, and has both fast and robust support for 1.1, though it does require that XForms documents be recompiled between changes (typically as part of a pipeline path).
On the other hand, an increasing number of open source projects are producing XForms 1.1 implementations, many of which are proving to be surprisingly effective in their space after a couple of years of foundering.
Orbeon undeniably has the closest thing to a lock on the XForms server market: solutions for scenarios where the XForms implementation is effectively hosted on the server with enough hooks on the client to implement event handling. Because of its Java-based environment, it works well with Java-based XML databases, including those from Oracle and the eXist-db database.
It is very likely that once Ubiquity reaches a 1.0 version, it will also become the defacto XForms implementation used in conjunction with the IBM db2 PureXML database server. IBM also has Lotus Forms, which incorporates an XForms layer within a broader markup package for forms, though I'm not sure whether it supports the XForms 1.1 functionality yet.
Something of a stealth player in the effort to create an effective XForms 1.1 implementation is XSLTForms by <agenceXML> (run by Alain Couthures) out of Bordeaux, France. The concept behind XSLTForms is inspired: use the XSLT capability that's now native on most web browsers to generate the code and bindings necessary to support an XForms implementation. This concept enables creating solutions that can work effectively on nearly all browsers (I've had some problems with Konqueror, but that's almost a given). XSLTForms has become the de facto XForms engine for Mark Logic's current offerings, and it is also being supported as a solution for use with eXist-db.
Chiba Web, another open source project, similarly has made the shift to a pure AJAX background, in this case Dojo (Ubiquity is YUI based, while XSLTForms is largely self-rolled). Chiba has recently released their 3.0 version, including support for XForms 1.1 (with a claim of 86% compliance). Like Orbeon (and to a certain extent XSLTForms), this latest version includes both a client and a server component (in this case, built around Saxon 9 as the underlying engine in order to get the XPath 2.0 functionality). It also works with eXist and is Java-based on the back end.
Picoforms, which targeted mobile devices rather than desktop web browsers, made an initial splash before fading. They recently posted a new splash web page promoting PicoWidgets, though it's an obvious placeholder. There may be something there (XForms in mobile makes a lot of sense), but at this point it could just be a case of a company trying to hold on by their fingernails.
A Solution at the Right Time
XForms 1.0 failed to catch on for a number of reasons: a lack of viable commercial, or even decent open source projects, a rapidly shifting browser landscape, the nadir period of XML in general, and a standard that wasn't quite
viable enough to support the concepts involved. XForms 1.1, on the other hand, is debuting at a time when interest in XML technologies for handling larger-scale projects is rising dramatically. People are beginning to realize that the AJAX revolution by itself is not sufficient to support larger-scale enterprise data-entry solutions, and XForms has been improved considerably in key areas: from more solid support for varying mime-types, to extensibility, to the ability to work with templates and non-XML data. It's the foundation of the new XRX architecture
. The combination of XForms on the front end, XQuery on the back end, and REST in the middle makes for a remarkably compelling story that solves many of the issues associated with complex web application design.
While it may be too early to declare XForms 1.1 a success, it may very well manage to carve a major niche for itself in the next few years, especially as the wide variety of solutions all reach a stage of maturity.