XML.com 
 Published on XML.com http://www.xml.com/pub/a/2005/02/09/xforms.html
See this if you're having trouble printing code examples

 

Top 10 XForms Engines
By Micah Dubinko
February 09, 2005

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.

Chibacon Chiba

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 Chiba-rendered form displayed in OS X Firefox
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.

DENG by way of UGO

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 performing in-browser editing of a FOAF file, within Apple Safari
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.

100% ECMAscript UGO+DENG editing a RSS file in OS X Firefox, including a debug console
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.

x-port formsPlayer

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, showing XForms content in the main window and a sidebar
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.

Mozilla/Firefox

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 build of Mozilla on XP putting XForms through its paces
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.

A Pair of Novell Engines

Novell continues to be a key player in the XForms space. As before, their Java-based engine makes the list.

Novell's Java engine, implementing a pocket calculator
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 plugin engine, showing form controls and resulting XML side-by-side
Novell's IE-plugin Engine, along with generated XML

OpenOffice and StarOffice

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
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.

Oracle Engine

Unlike classic HTML forms, XForms are designed to be supported on a wide variety of devices that might not include a full JavaScript engine, including mobile phones. Oracle has produced an application that renders XForms documents within the confines of a smaller mobile displays. The previous edition of this article had a screenshot of a mobile phone emulator processing a form. Since then, Oracle has released a major new version as an IE extension, shown below.

The Oracle engine demonstrating datatype-based validation.
The Oracle engine demonstrating datatype-based validation.

The Oracle Application Server 10g Wireless Client is a gratis download.

Orbeon Presentation Server (OIS)

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
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.

Zen Interactif xslt2xforms

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
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.

University of Helsinki X-Smiles

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 rendering a document used to create UBL documents.

X-Smiles is open source under a liberal license, similar to the BSD license.

Honorable Mention: Ripcord Technology nForms

nForms didn't make the list this year, as the codebase is no longer being actively maintained. It is perhaps ironic that I share some personal responsibility for this situation. nForms is another browser-delivered technology, quite similar to xslt2xforms. When its author, the remarkable Ben Nolan, found he couldn't work on it any longer, I was able to convince him to to open source the code. So far, the GPL'd JavaScript and XSLT still sits on my hard drive and needs some attention before it can even produce a demo for a screen shot. If anyone is interested in working with this code, please speak up in the feedback section below.

Related Links

XML.com Copyright © 1998-2006 O'Reilly Media, Inc.