Ten Favorite XForms Engines
Although XForms is largely described as an update to the decade old classic HTML formstechnology, 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.
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 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 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 of DENG inside Mozilla Firebird on OS X, editing XHTML through XForms. Novell XForms Technology PreviewAs 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).
Orbeon Open XML FrameworkOrbeon 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.
Oracle engineUnlike 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.
Ripcord Technology nFormsnForms 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.
University of Helsinki X-SmilesX-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.
x-port FormsPlayerFormsPlayer 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.
Honorable Mention: Microsoft InfoPathMicrosoft 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. |