Is XForms still a standard that is being implemented and developed, or is there an alternative in place or being developed? Is XForms still a standard that is being implemented and developed, or is there an alternative in place or being developed? xml xml

Is XForms still a standard that is being implemented and developed, or is there an alternative in place or being developed?


Background

I am writing as a former XForms Working Group member, and current XForms Community Group member (see below). The following is a personal opinion.

Status of XForms and XForms 2.0

A lot of information regarding XForms on the W3C site is obsolete, so I wouldn't take everything (if anything at all) you read there as gospel, but it is correct that W3C closed the XForms Working Group (and they did so with quite a bit of disrespect, I might add).

The group had been uncharted for a while, was hoping for a recharter, but that didn't happen. I should say that any XML activity at W3C is very low-priority for the organization at this point, even for the relatively more successful technologies like XSLT and XQuery.

However there is, as of 2016 2019, continued work on XForms 2.0 in the context of the XForms community group. This is a small group, which although hosted by W3C is not an official W3C Working Group. Anybody can join that group. We hold weekly calls and hope to complete the XForms 2.0 specification this year. You can find the current draft specification here:

Once the specification is done, if there is interest, a new Working Group might be recharted, but that is not a given. This would be a necessary path to make XForms 2.0 an official W3C Recommendation.

If that doesn't happen, then the XForms 2.0 draft will still be there for anybody to look at and implement. It doesn't have the force of a Recommendation but that force has always been very relative anyway.

What sets XForms apart?

The following is not complete but these are some of the top aspects which, I think, set XForms apart:

  • being a specification rather than an implementation
  • using XML for the data model and other XML-related specifications
  • focusing on forms (rather than full-fledged app development)
  • separating control appearance from implementation
  • providing a spreadsheet-like model of data dependencies
  • being in general very declarative in nature, including making hints, help, and alert native concepts

In addition, XPath 2.0/3.x makes for a surprisingly flexible language to bind properties, calculations, and controls to data models. I think that it is hard to beat at this point.

Current XForms implementations

There are a few current implementations of XForms out there, including XSLTForms and Orbeon Forms (which I work on).

While back in the early 2000s the avowed goal was for XForms to eventually replace HTML forms, and in this perspective browser plugins and the Firefox implementation were developed, that idea has not been current for a very long time.

For years now, XForms hasn't depended on native browser support at all. All of XForms can be implemented in pure JavaScript, or with a combination of client/server parts, or within native applications.

Alternatives to XForms

I am not aware of any close alternatives to XForms based on the points listed above.

The elephant in the room is that XForms is based on the XML stack of technologies, and there is evidence that XML is no longer taking the world by storm (that is an understatement). But XML is still widely used in many contexts, and that's something to keep in mind.

If you deal with XML data, or at least don't mind XML, XForms remains a modern solution in 2016 2019. You might look into existing implementations or into implementing your own (although that is not exactly trivial).

If you do not care about XML at all, or dislike it strongly, then XForms is not a great solution (at least until it provides support for additional data models and binding languages, like JSON / JavaScript). UPDATE: XForms 2.0 has some level of JSON support. Picking one of the current UI frameworks will be the way to go, but they still fall short in many ways.

There are lots of UI frameworks using various underlying technologies (JavaScript being probably number one here, but you can count also TypeScript, Elm, Scala, and more) which are in constant evolution. These can be considered alternatives in that they allow you to build user interfaces and complex forms. Some frameworks have really good support for things like dependencies, some focus on providing nice UI controls, some on the UI update model, etc.

But I have not yet found a framework which covers all the bases as nicely as XForms does, although there is nothing that prevents that from happening in the future.


The fact that work stops on development of a standard does not mean the standard is dead, it means it is stable. For example, there is no active work on developing XML itself, which basically means that there is consensus that the standard in its current form meets its requirements. Probably more standards would benefit if people recognized when it was time to stop adding bells and whistles.

XForms is one of those standards that has been very successfully deployed by an innovative minority of users but has, for some reason, never caught on with the masses. It is certainly not a dead standard. It's a shame that it's not natively supported by the browsers but there are good client-side and server-side implementations available, and many users who will attest to the productivity benefits it brings over hand-coding the same stuff in Javascript.


Writing as the long-time chair of the XForms groups, I don't need to add much more to what Erik has already said about the working group and the specification.

However it is worth saying a little about how it is being used, and some of the advantages, since when you are using a website, you can never tell that it is using XForms.

There is no way to tell when a company is using XForms, so the only ones I know about are when someone in the organisation mentions it to me.Some of the ones I have heard about are:

Several Dutch Government departments, several UK government departments, the USA Dept of Motor Vehicles, the British National Health Service, the BBC, the Dutch weather service, the Dutch land registry, the British insurance industry, EMC, NASA, CMC, US Navy, German shipbuilders, Xerox, Yahoo. The list is very long.

There are some nice stories too. A recent one is from the British National Health Service, which started a project for a health records system:

  • It involved 70 people
  • It cost £10M.
  • The hardware costs alone were £5 per patient.
  • It failed.

One single person then created a replacement system using XForms:

  • Hardware costs are 1p per patient
  • It runs on Raspberry Pi's
  • It is now running in 5 NHS hospitals.

There are many other examples of XForms saving huge sums of money.

There are many active implementations, including:

  • CM Pro (Netherlands),
  • Inventive Designers (Belgium),
  • BetterForm* (Germany),
  • XSLTForms* (France),
  • Jadu (UK),
  • Orbeon* (USA),
  • Enketo (USA).

XForms is also part of OpenOffice* and LibreOffice*

*=open source

We have a yearly XForms Day in Amsterdam. The next one will be in May. I will be publishing the details on my home page, which you can find by Googling my name.

Steven Pemberton