Top 10 XForms Engines
In my book XForms Essentials, I originally intended to include some information on running XForms engines. It turned out that progress on XForms technology was happening so rapidly anything in print would have been quickly outdated. An online approach seemed more sensible, leading to my first article on XForms engines.
Since then, the rate of change in the XForms implementation landscape has intensified. Of the ten engines previously listed, a healthy seven make a repeat appearance, having made significant improvements. IBM's XML Forms Package narrowly missed being on the list--only because it hasn't been refreshed in a while. Even so, IBM still makes an appearance here, through their joint work on XForms-in-Mozilla. That work is part of the latest buzz in the XForms world, along with the other the new entrants.
Other new entries in this year's list are an OpenOffice implementation, a second Novell engine as an IE plugin, an updated Oracle engine that now can run inside IE, and two new approaches to implementing XForms without plugins in modern browsers. (Because of double entries, there are actually more than ten engines in this top-ten list. Go figure.) With the availability of native browsers and plugins, server solutions, and even mobile devices, XForms has a wider reach than ever.
This list is by no means complete. As before, there are more XForms development efforts in play than what I can keep track of personally. Consider this article as a starting point for your research into the wide world of XForms. For each XForms engine, this article describes the software, system requirements, and other useful information as well as a screenshot.
As of this writing, Chiba is just shy of a 1.0 release and is finding its way into related projects. One is a blend of the Apache Cocoon framework with Chiba, nicknamed "Chicoon," pictured here. Additionally, the NetKernel engine makes use of Chiba to provide XForms support.
A Screenshot of Chicoon rendering a form for display in Mac Firefox.
Chiba is a server-based engine, written in Java. It's open source under an Artistic license and has great documentation. It works by dynamically transforming XForms markup into something that relatively modern browsers can digest.
Also, Chiba can now run on the client in a hidden Java applet, thanks to a new technology called "convex." Look for Chiba to continue to blur the line between client and server-side processing. This is a good thing.
If you've heard of DENG before, you might know it as a Flash-based engine that runs on any browser with a recent Flash runtime. The Flash version is still around, but current development takes it a step further.
Flash-based DENG 1.0 editing a FOAF file in Mac Safari.
A new ECMAscript module loader and deployment tool called UGO paves the way for a Flashless version 2.0 of DENG, as well as other technologies like DOM Level 3. Using only the significant XML capabilities of a recent vintage browser, DENG 2.0 interprets and renders XForms in-browser. So far, the project includes some impressive technology, like an XPath engine, ported from libxml2 to ECMAscript.
Flash-less UGO+DENG editing a RSS file.
The combination of UGO + DENG, while still under development, is one of the most innovative developments in the XForms space.
formsPlayer has long been one of the foundations of the XForms community. Now, the newer releases go beyond your basic forms engine, including enhanced SVG integration as well as a voice interface. As this screen shot demonstrates, formsPlayer can even be used to author custom browser toolbars and sidebars.
FormsPlayer in IE rendering a weather forcast form and an XForms sidebar.
More than any other engine, formsPlayer reminds us that XForms is capable of more than just forms. It is a free download, requiring IE 6 with Service Pack 1, and is also available in a commercial format.
The folks at IBM and Novell, while actively implementing XForms engines of their own, have realized that it's hard to beat the convenience of native browser code. Working through the Mozilla Foundation, they ponied up starting code and developer resources to implement XForms in a fully Mozilla-optimized way. Thus, XForms will be supported on all platforms that Mozilla runs on. At least initially, it is likely that some kind of additional installation step will be needed to get the XForms engine, even after it is released.
A developer's build of Mozilla on Windows XP.
This link includes a table that breaks down the implementation tasks to a fairly fine-grained level and provides links to the tracking system for even more detail. Mozilla and Firefox are open source under the Mozilla Public License and other licenses.
Novell continues to be a key player in the XForms space. As before, their Java-based engine makes the list.
Novell's Java XForms Engine, implementing a pocket calculator.
What's more, Novell now has released a separate engine, one that runs as a plugin for the popular IE browser. A key feature of this implementation is that it requires no special markup like processing instructions in order for the document to be recognized as having XForms content and processed accordingly. No other IE plugin engine that I know of does this.
Novell's IE-plugin Engine, along with generated XML
OpenOffice has long had some kind of forms functionality, though fairly well hidden. The most recent beta releases use XForms technology, including storing XForms markup in the OpenDocument format. The Writer application from OpenOffice, and by extension StarOffice, functions as both an XForms design environment and an XForms engine.
Sun StarOffice demonstrating comprehensive XForms support.
OpenOffice is available for free download as open source on Windows, OS X, and Linux, though the Mac version has tended to lag behind. StarOffice is commercially available from Sun Microsystems.
The Oracle engine demonstrating datatype-based validation.
The Oracle Application Server 10g Wireless Client is a gratis download.
Part of the Orbeon Integration Suite, Orbeon is described as a "transformation framework," part of a system to create web applications with minimal additional Java coding required. It uses XForms along with XSLT, XQuery, SQL, and web services interfaces as building blocks that together can compose an entire application.
Partial screenshot of a sample OXF document, showing a UBL purchase order.
The Orbeon suite was formerly a commercially licensed project but is now available under a LGPL open source license.
A number of implementers have independently realized that existing browsers are already more than capable of rendering XForms content. The only missing piece is a framework to tie things together. As the name 'xslt2xforms' might suggest, this engine focuses on an XSLT front-end and then uses script as the glue to hold everything together.
xslt2xforms rendering a smooth slider control.
According to the website, xslt2xforms is still in beta. The version as of this writing is 0.7.6 and is fully cross-browser across Firefox, Mozilla, and IE. The code is open source under the GPL.
X-Smiles, a complete browser written in Java, originated in 1998 as a university project. It has since taken on a life of its own, including support for XForms, XSLT, XSL formatting objects, SMIL, and SVG. The project supports a wide variety of Java versions, including small device and PDA configurations. X-Smiles is one of the three engines originally referenced in the XForms Implementation Report.
X-Smiles rendering a document used to create UBL documents.
X-Smiles is open source under a liberal license, similar to the BSD license.
What are XForms? on XML.com
An interactive XForms tutorial using the DENG Flash engine
The author's XForms Essentials page
XML.com Copyright © 1998-2006 O'Reilly Media, Inc.