The Orbeon Forms Blog

This is the Orbeon Forms blog. Stay up to date with the latest releases and new features of Orbeon Forms!

Calling REST or Web Services from Form Builder

Sample data returned by a service, displayed in a form For the longest time, you could within Form Builder setup services to be called, without having to write one single line of code. For instance: You want to call a service every time the form is loaded; the service returns data, which... More

Styling required fields with a star

Form fields can be valid or invalid. They can be invalid because they were marked as required, and no value was entered, because the value doesn’t match the expected type—say, a number is expected—or for some other reason. For the longest time, the following styling logic has applied to invalid... More

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