Orbeon Forms User Guide

Changes in Version 2.8

1. XForms

  • It is now possible to have multiple <xforms:alert> in an XForms control. They will be all kept by the XForms engine and transformed into <f:alert>. The theme can then decide which one should be displayed. The default theme displays all the alerts.

    You can use multiple <xforms:alert> for internationalization by adding on each <xforms:alert> an xml:lang attribute (e.g. xml:lang="en", xml:lang="fr") and selecting in your theme the appropriate message to display for the current user based on his preferred language.

  • XForms schema validation can now be used to validate attributes in the XForms instance. Note that the xxforms:valid="false" attribute is still only added on invalid elements in the XForms instance. The XForms engine does not annotate the XForms instance for invalid attributes.

  • Instance nodes of type xs:date and xs:time bound to an XForms input control are rendered with an appropriate date or time widget. You set the type of an instance node with a <xforms:bind nodeset="/path/to/your/node" type="xs:date"/> in your XForms model.

  • As the XForms engine validates the XForms instance with a schema and evaluates the model item properties on the instance, it annotates the instance with attributes using the xxforms prefix. For instance, if an element is validated, an attribute xxforms:valid="true|false" is added on the element. In previous versions of OPS you could override the value set by the XForms engine in the MVC model or MVC view by modifying the value of those attributes in the instance. As the instance can be modified in the MVC model and view, the model item properties are reevaluated and the instance revalidated with the schema after the MVC view, in the epilogue. At that point, for example, if there is a xxforms:valid="false" attribute on a given element, but validation with the schema and model item properties returns "true", the XForms engine does not know if the content of the element was modified in the MVC model or view and the error corrected (in which case the element should be considered valid), or if the xxforms:valid="false" was added by the MVC model or view to tell the XForms engine that this element is invalid (in which case the element should be considered invalid).

    To solve this problem, starting with OPS 2.8, you cannot override the annotations added by the XForms engine on the instance. Those annotations should be considered read-only. Instead, to instruct the XForms engine that a given node is invalid, use the method described in the Custom Validation section of the XForms reference. The benefit of this method is that it does not require the use of proprietary XForms extensions and that it can be used on elements as well as attributes.

2. Move to ObjectWeb and Product Name

3. Performance Improvements

Memory usage has been improved, which leads to significant performance improvements under heavy load or when the JVM is running with a relatively small heap, as the JVM spends less time doing garbage collection. Our testing shows performance improvement that range from 5% to 20% over version 2.7.

4. Miscellaneous Bug Fixes