XForms: an Introduction

Steven Pemberton, CWI

XForms is a declarative language for applications, on the web and elsewhere.

Who uses it

The BBC Sports App is written in XFormsIt is a W3C standard, and in worldwide use, for instance by:

and many others.

Experience

Experience has shown that it greatly simplifies making applications.

Example: A company that makes big machines.

The user interface is very demanding — traditionally needed 5 years, and 30 people. With XForms this became: 1 year, 10 people. Do the sums. Assume one person costs 100k a year: then this has gone from a 15M cost to a 1M cost. They have saved 14 million! (And 4 years)

Example: Insurance Industry

Manager: I want you to come back to me in 2 days with estimates of how long it will take your teams to make the application.

(Two days later)

Programming person: I'll need 30 days to work out how long it will take to program it.

XForms person: I've already programmed it!

Example: NHS

The British National Health Service started a project for a distributed health records system.

One person in three years then created a system using XForms.

Learning it

If you want to start learning XForms, here are some steps:

Implementations

(Some) Implementations:

XForms is also part of OpenOffice* and LibreOffice*

*=open source

If you know of more, or want to be added to this list, let me know.

Papers about XForms

Banking with ixml and XForms

A Declarative Code Browser with ixml and XForms

Structural Invariants in XForms

How Suite it is: Declarative XForms Submission Testing

(Re)presentation in XForms

A Declarative Code Browser with ixml and XForms

XForms 2.0: What's New?

The XForms 2.0 Test Suite

Al-Awadai, Zahra, Anne Brüggemann-Klein, Christina Grubmüller and Philipp Ulrich. “Graphical user interfaces in the X stack.” In Proceedings of Balisage: The Markup Conference 2019. Balisage Series on Markup Technologies, vol. 23 (2019). https://doi.org/10.4242/BalisageVol23.Bruggemann-Klein01. [Paper] [Slides and materials]

Boyer, John M. “Multitasking algorithms in XForms: Coordination, progress, priority.” In Proceedings of Balisage: The Markup Conference 2019. Balisage Series on Markup Technologies, vol. 23 (2019). https://doi.org/10.4242/BalisageVol23.Boyer01. [Paper] [Slides and materials]

Brüggemann-Klein, Anne, Jose Tomas Robles Hahn and Marouane Sayih. “Leveraging XML Technology for Web Applications.” In Proceedings of Balisage: The Markup Conference 2012. Balisage Series on Markup Technologies, vol. 8 (2012). https://doi.org/10.4242/BalisageVol8.Bruggemann-Klein01. [Paper] [Slides and materials]

Cameron, Stephen, and William David Velásquez. “A Data-Driven Approach using XForms for Building a Web Forms Generation Framework.” In Proceedings of Balisage: The Markup Conference 2013. Balisage Series on Markup Technologies, vol. 10 (2013). https://doi.org/10.4242/BalisageVol10.Velasquez01. [Paper]

Chelsom, John J., and Jay H. Chelsom. “Scaling XML Using a Beowulf Cluster.” In Proceedings of Balisage: The Markup Conference 2018. Balisage Series on Markup Technologies, vol. 21 (2018). https://doi.org/10.4242/BalisageVol21.Chelsom01. [Abstract] [Slides and materials]

Davis, Cornelia. “Programming Application Logic for RESTful Services Using XML Technologies.” In Proceedings of Balisage: The Markup Conference 2011. Balisage Series on Markup Technologies, vol. 7 (2011). https://doi.org/10.4242/BalisageVol7.Davis01. [Paper]

Lubell, Joshua. “XForms User Interfaces for Small Arcane Nontrivial Datasets.” In Proceedings of Balisage: The Markup Conference 2014. Balisage Series on Markup Technologies, vol. 13 (2014). https://doi.org/10.4242/BalisageVol13.Lubell01. [Paper]

Lubell, Joshua. “Extending the Cybersecurity Digital Thread with XForms.” In Proceedings of Balisage: The Markup Conference 2015. Balisage Series on Markup Technologies, vol. 15 (2015). https://doi.org/10.4242/BalisageVol15.Lubell01. [Paper] [Slides and materials]

Maalej, Mustapha, and Anne Brüggemann-Klein. “Generating Schema-Aware XML Editors in XForms.” In Proceedings of the International Symposium on Native XML User Interfaces. Balisage Series on Markup Technologies, vol. 11 (2013). https://doi.org/10.4242/BalisageVol11.Bruggemann-Klein01. [Paper]

Nguyen, Quyen L., and Betty Harvey. “Agile Business Objects Management Application for Electronic Records Archive Transfer Process.” In Proceedings of Balisage: The Markup Conference 2009. Balisage Series on Markup Technologies, vol. 3 (2009). https://doi.org/10.4242/BalisageVol3.Harvey01. [Paper] [Slides and materials]

Niedl, Tobias, and Anne Brüggemann-Klein. “Processing XForms in HTML5-Enabled Browsers.” In Proceedings of Balisage: The Markup Conference 2013. Balisage Series on Markup Technologies, vol. 10 (2013). https://doi.org/10.4242/BalisageVol10.Niedl01. [Paper]

Nordström, Ari. “Implementing Version Handling in Yet Another CMS.” In Proceedings of Balisage: The Markup Conference 2025. Balisage Series on Markup Technologies, vol. 30 (2025). https://doi.org/10.4242/BalisageVol30.Nordstrom01. [Paper]

Pemberton, Steven. “Using XForms for interfaces to XML data.” Presented at International Symposium on Native XML User Interfaces, Montréal, Canada, August 5, 2013. In Proceedings of the International Symposium on Native XML User Interfaces. Balisage Series on Markup Technologies, vol. 11 (2013). https://doi.org/10.4242/BalisageVol11.Pemberton02. [Abstract]

Pemberton, Steven. “XForms 2.0: What’s new.” In Proceedings of Balisage: The Markup Conference 2018. Balisage Series on Markup Technologies, vol. 21 (2018). https://doi.org/10.4242/BalisageVol21.Pemberton02. [Paper] [Slides and materials]

Pemberton, Steven. “How Suite it is: Declarative XForms Submission Testing.” In Proceedings of Balisage: The Markup Conference 2020. Balisage Series on Markup Technologies, vol. 25 (2020). https://doi.org/10.4242/BalisageVol25.Pemberton01. [Paper]

Pemberton, Steven. “Structural Invariants in XForms.” In Proceedings of Balisage: The Markup Conference 2021. Balisage Series on Markup Technologies, vol. 26 (2021). https://doi.org/10.4242/BalisageVol26.Pemberton01. [Paper] [Slides and materials]

Sigaud, Éric, Romain Tailhurat, Franck Cotton and Éric van der Vlist. “XForms generation: a real world example.” In Proceedings of the International Symposium on Native XML User Interfaces. Balisage Series on Markup Technologies, vol. 11 (2013). https://doi.org/10.4242/BalisageVol11.Cotton01. [Paper]

Sperberg-McQueen, C. M. “An XML infrastructure: for spell checking with custom dictionaries.” In Proceedings of Balisage: The Markup Conference 2020. Balisage Series on Markup Technologies, vol. 25 (2020). https://doi.org/10.4242/BalisageVol25.Sperberg-McQueen01. [Paper]

Walsh, Norman, and C. M. Sperberg-McQueen. “Interactivity Three Ways.” In Proceedings of Balisage: The Markup Conference 2021. Balisage Series on Markup Technologies, vol. 26 (2021). https://doi.org/10.4242/BalisageVol26.Walsh01. [Paper]

Wiecha, Charlie, Rahul Akolkar and Andrew Spyker. “Where XForms Meets the Glass: Bridging Between Data and Interaction Design.” In Proceedings of Balisage: The Markup Conference 2010. Balisage Series on Markup Technologies, vol. 5 (2010). https://doi.org/10.4242/BalisageVol5.Wiecha01. [Paper]

van der Vlist, Eric. “XQuery Injection: Easy to exploit, easy to prevent....” In Proceedings of Balisage: The Markup Conference 2011. Balisage Series on Markup Technologies, vol. 7 (2011). https://doi.org/10.4242/BalisageVol7.Vlist02. [Paper]

Future

XForms version 2.0 is in preparation. If you want to get involved, join the group!

Steven Pemberton