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.

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

Orbeon Forms 3.9.0 Release Candidate 1

We are happy to announce a release candidate build of Orbeon Forms 3.9! Orbeon Forms 3.9 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,... More

How writing in the cloud has improved the Orbeon Forms documentation

We have recently finished moving all our documentation to the Orbeon wiki, powered by Google Sites. All the way back to 2003 (maybe 2002) the documentation of the Orbeon platform was written in a text editor with an XML syntax. Nicely structured markup has benefits, such as the ability to process files... More