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>
anxml: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
andxs: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 attributexxforms: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 axxforms: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 thexxforms: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
- Orbeon joined the ObjectWeb consortium and the project is now hosted on the ObjectWeb Forge.
- The name of the product is now written Orbeon PresentationServer (in one word).
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
-
XUpdate removing attributes and namespace
declarations ― When using the
<xu:xupdate>
instruction to update the content of an element, the existing attributes and namespaces of the element were incorrectly removed. - XForms xhtml:onclick attribute ― The attribute xhtml:onclick on XForms submit control was ignored.
- Rendering issues of the documentation under Safari ― Those issues have been solved.
- Other bugs have been fixed relative to the URL generator, Request generator, HTTP serializer, and server-side forwards following a file upload.