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

 

Ten Favorite XForms Engines
By Micah Dubinko
September 10, 2003

In my book XForms Essentials I originally intended to include some information on 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.

Although XForms is largely described as an update to the decade old classic HTML forms technology, XForms is also finding a home in many fresh areas where standards are increasingly vital, like content management and workflow systems. As a result, there are a large number of XForms engines currently under development by companies large and small.

According to reports, at the time of publication as Proposed Recommendation, W3C XForms was the most widely implemented W3C specification, ever. This presents a challenge to those thinking about trying out XForms.

This article offers a good starting point for XForms research. For each XForms engine, this article describes the software, system requirements, and other useful information as well as a screenshot. Keep in mind, too, there are even more XForms engines (in various stages of development) than presented here.

Chibacon Chiba

This long-running open source project has made great strides lately in XForms support and is nearing a 1.0 release. It's a server-based implementation, running on any Java 1.2/Servlet 2.2 compatible server. It includes some great documentation.

Screen shot.
Partial screenshot of Chiba, showing a tabbed entry form.

Sidebar: Client vs. Server XForms

Classic HTML and XHTML forms are firmly established as a client-side browser technology, so many are unaccustomed to a server-side forms engine. XForms, in contrast, is designed in a way that separates data definition from user interface definition, and thus lends itself well to more flexible implementation strategies.

The line between client and server XForms implementation can be drawn in any number of places, ranging from a "dumb terminal" client capable of little more than relaying data, to an advanced client with full validation and calculation capabilities.

IBM XML Forms Package

IBM has been a major supporter of the XForms standardization effort since the beginning, supplying two of the editors for work on the specification. In April of 2003, IBM unveiled two separate XForms engines on its alphaWorks Web site. The first is an XForms control that runs inside Internet Explorer, using browser extension techniques to listen for and render incoming XForms documents.

The other IBM engine is a Java XForms compiler, which takes an XForms document as input and produces a mass of JavaScript and HTML that works with Internet Explorer 5.5+, Netscape 7+, and Mozilla 1.0+.

The XML Forms Package includes additional technology, including an API for interacting with the XForms Model

Screen shot.
Screen shot of Internet Explorer showing a repeating set of input controls compiled by the IBM engine.

MobiForm SVGViewPlus

SVGViewPlus is a .NET user control primarily designed for rendering SVG images, but it also shows a key benefit of XForms: it can be used within a variety of XML vocabularies, including SVG.

Screen shot.
Screen shot of MobiForm's browser application, showing XForms and SVG side-by-side.

Mozquito DENG

As this article demonstrates, much of the innovation in this field is currently happening with smaller companies, and Mozquito is no exception. Answering the common question "when will browsers support XForms?" they have implemented, using the widespread Flash platform, not only extensive XForms support, but also SVG, XHTML, and CSS Level 3, all in an incredible footprint of only 60Kb. DENG runs in any Flash-enabled browser.

Screen shot.
Screen shot of DENG inside Mozilla Firebird on OS X, editing XHTML through XForms.

Novell XForms Technology Preview

As part of the Novell exteNd suite (formerly SilverStream software), XForms is playing a major role in their software to interact with web services, relational databases, and other data sources. Their first released XForms engine is a Java application that runs as a browser, one of the three main engines recorded in the XForms Implementation Report used to advance XForms to Proposed Recommendation (see the Related Links section below for more).

Screen shot.
The Novell engine rendering a the scriptless equivalent of a pocket calculator.

Orbeon Open XML Framework

Orbeon describes OXF as a "transformation framework", part of a system to create J2EE 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.

Screen shot.
Screen shot of a sample OXF document, showing the form controls next to the resulting XML.

Oracle engine

Unlike classic HTML forms, XForms are designed to be supported on a wide variety of devices that might not be able to support a full JavaScript engine, including mobile phones. Oracle has produced an (unreleased) application that renders XForms documents within the confines of a small monochrome display. The following screen show shows the application running in a desktop phone emulator and is reproduced here with permission.

Screen shot.
Screen shot of a phone emulator displaying an XForms trigger control

Ripcord Technology nForms

nForms is a browser-delivered technology that enables XForms processing on the client (currently IE6-only). The site includes a number of illustrative examples that show the system in operation.

Screen shot.
Screen shot of a sample nForms document, showing a simple form next to the resulting XML.

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 referenced in the XForms Implementation Report.

Screen shot.
Screen shot of X-Smiles rendering a document used to create UBL documents.

x-port FormsPlayer

FormsPlayer has its roots in a travel-based application x-port was developing for a client. In due course, the developers realized that what they needed was already provided by the then in-progress XForms specification, so they shifted their efforts to producing a general-purpose XForms plugin for IE6. FormsPlayer has an active mailing list where frequent updates are announced, rapidly converging on the final XForms specification. FormsPlayer is the third engine referred to by the XForms Implementation Report.

Screen shot.
FormsPlayer rendering a form that links together two Web Services.

Honorable Mention: Microsoft InfoPath

Microsoft InfoPath, part of the Office 2003 System, offers similar functionality to many of the applications listed here. Microsoft's application sports a fantastic user interface for end users, despite an insistence on providing layout through nested tables. The internal format InfoPath uses, however, is an XSLT-generated modified version of XHTML, not XForms.

A future article will provide a more in-depth comparison between InfoPath and XForms engines.

Related Links

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