The Orbeon Forms Blog

Orbeon Forms allows you to manage your web forms' entire lifecycle, and run your forms on-premises or in the cloud, with a focus on security and compliance.

Dealing with nested sections in Form Builder

We have been working on the ability to nest sections and other containers in Form Builder for a while, as it is an often-requested feature. Tree in OmniFocus But what should the user interface for this look like? How do you specify where a new section goes, and how do you... More

Improved Autocomplete

We recently made a couple of major improvements to the autocomplete control that comes with Orbeon Forms. First, we wanted the autocomplete to be simpler for end-users. For the longest time, the autocomplete had the ability to display a show all button to the right of the text field. When... More

Dynamic XForms and a new grid editor for Form Builder "next"

Until now, the Form Builder grid worked as an “interpreter” of XForms documents. In each grid cell, Form Builder had a big “switch” containing all of the built-in XForms controls, only one of which would be enabled at a time. For example, if you placed an xforms:input field into a... More

Orbeon Forms 3.9: aggregating CSS and JavaScript resources

Orbeon Forms has had the ability to automatically combine (aggregate) together CSS AND JavaScript resources for years. The idea is simple: serving many files to the browser is not optimal due to the latency introduced by each request from the client, so you should try to server fewer files to the client.... More

Orbeon Forms 3.9.0 final

We are happy to announce Orbeon Forms 3.9.0 final! Orbeon Forms 3.9.0 features over 300 improvements since Orbeon Forms 3.8. Major improvements include: Performance and reliability (including the new XPath dependency analysis engine) Liferay support A new implementation of the upload control Updates to Form Runner, custom components, accessibility, the... More

Auto-fixing Windows/Unicode Character Encoding Issues

Nowadays, we use Unicode for almost everything, and Unicode supports a (very!) large number of characters. Unicode assigns a code (number) to each character, and in most cases this code is represented in 2 bytes when in memory (e.g. in Java and by Windows since NT), and a variable number... More

New XPath functions to get a control's current label, help, hint, or alert

In XForms 1.1, a control’s label, help, hint, or alert (or LHHA as we call them at Orbeon) can read its value from data, in particular using the ref attribute. But the converse is not possible: for example if a control has a given label, you cannot figure out the... More

The beauty of Scala's Option/Some/None

Here is a simple feature of Scala that is worth gold. Take this Java method: Foo computeFoo() { … } The implementor of this method may well return an actual object of type Foo, but may also return null. Usually returning null tells the caller, “well I know I am supposed to... More

From Java to Scala

Believe it or not, there was a time when Java was cool! But obviously this is no longer the case. Language features and syntax matter, and while Java still rocks because of its rich ecosystem of libraries and its VM, the Java language itself has stalled (Java 7 adds a few... More

Switching to CoffeeScript

JavaScript feels like Stink Spirit, the character in Miyazaki’s Spirited Away, who one day arrives at a bathhouse, loaded with all the filth it accumulated through the years. In the movie, Chihiro’s, through her courage and generosity, helps Stink Spirit cleanse, and while its essence is unchanged, it comes out... More