Changes in Version 3.7.1 (Developer Release)
- 1. Introduction
- 2. Changes in Version 3.7.1 (Developer Release)
- 3. Compatibility Notes
- 3.1. Legacy Classic XForms Engine
- 3.2. <xforms:delete> Action
- 3.3. Binds Evaluation
- 3.4. The index() Function
- 3.5. Image Triggers
- 3.6. Default HTML DOCTYPE
- 3.7. Date Picker Using YUI Widget
- 3.8. Deprecation and removal of Java classes
1. Introduction
Orbeon Forms 3.7.1 (Developer Release) features over 400 improvements since Orbeon Forms 3.6, including the new Form Builder authoring tool, the new Form Runner environment, and enhancements in the areas of performance, core XForms engine features, schema validation, session handling, caching, and application server support.
This document describes changes made between Orbeon Forms 3.6 and Orbeon Forms 3.7.1.
Please also make sure to check all releases on the downloads page.
2. Changes in Version 3.7.1 (Developer Release)
2.1. Noteworthy Changes
-
New version numbering scheme. Starting with Orbeon Forms 3.7.1, Orbeon Forms adopts a new numbering scheme:
-
Even-numbered releases (3.6, 3.8, etc.) are considered "stable" releases
-
Odd-numbered releases (3.7, 3.9, etc.) are considered "developer" releases
This scheme follows the practice of a number of other open source projects.
-
-
Form Builder editor. Orbeon Form Builder is a visual form designer which allows you to build and deploy forms in minutes right from your web browser.
For more information see the Form Builder product page.
Try Form Builder right from this Orbeon Forms installation!
-
Form Runner environment. Orbeon Form Runner is the Orbeon Forms runtime environment. Form Runner manages form definitions and form data, handles search, validation, and takes care of the plumbing necessary to capture, save, import and export form data. Features include:
-
Customizable, extensible persistence layer (eXist and Oracle support out of the box)
-
Summary page with built-in search
-
Standard page layout and look and feel
-
As-you-type validation with error summary
-
Customizable submission process
-
Printable HTML output
-
PDF output
-
Send form data, PDF and attachments by email
-
Fully internationalized UI
-
Built-in accessible "noscript" mode
Form Runner is built on top of core Orbeon Forms technologies, including the XForms and XPL engines.
For an example running on top of Form Runner, see the Bookshelf form.
-
-
Noscript mode. The "noscript mode" in Orbeon Forms allows you to use a single XHTML+XForms description of a page and to target browser that have JavaScript disabled. This is integrated into Form Runner, which means you don???t need JavaScript on the client to fill-out forms created by Form Builder. This is also the basis for the accessibility features we are working on (including WCAG AA compliance).
More documentation is available in the Noscript (Accessible) Mode Guide.
-
Firefox 3 support. Orbeon Forms version 3.6 had a known bug with Firefox 3. This issue is now resolved.
-
Performance improvements.
-
Session heartbeat feature for XForms pages. Orbeon Forms now enables by default the Session Heartbeat feature. This allows sessions associated with live pages in a user's browser to stay active, therefore preventing situations where the user gets back to a form and gets session expiration errors.
See also Session Heartbeat.
This feature is kindly sponsored by Teleflex.
-
Versioned resources. Orbeon Forms now supports versioning of resources such as CSS, JavaScript, and images. This allows more aggressive client-side caching, thereby reducing page loading times as well as server load.
See Versioned Resources for the full documentation.
This feature is kindly sponsored by Teleflex.
-
-
Enhanced user interface controls.
-
Reusable user interface components. Orbeon Forms now implements a complete system of reusable components, based on the XBL 2 specification. This allows you to define and reuse UI components in your forms. There is no limit to the types of components you can build: examples include special date selectors, color pickers, reusable address blocks, etc.
-
Improved date and time controls. You can now type in dates, and the date picker is by default the YUI date picker. We have also added controls for
xs:time
andxs:dateTime
types. The date picker is localized in English, French and Spanish. -
New YUI controls. Orbeon Forms now use the YUI date picker as well as the YUI Rich Text Editor (RTE). The older JSCalendar and FCKeditor implementations are still available through properties.
-
Modal triggers. Usually, activating a trigger on the client doesn't prevent further actions in the user interface. Sometimes, it is however useful to block such further actions until some processing is complete, for example calling a submission that saves a document.
See Modal Trigger Behavior for documentation.
This feature is kindly sponsored by Teleflex.
-
Improved handling of alerts. In XForms the behavior of
xforms:alert
is not built-in. Instead, the behavior was initially planned to be controlled through CSS. Previous versions of Orbeon Forms displayed an alert icon and message (if provided) only if the value associated with the control was invalid. Orbeon Forms now by default shows the control in alert state when the value is invalid, but also when it is required but empty.
-
-
Enhanced XForms 1.1 support. In particular:
-
Much improved repeat handling, especially in conjunction with
<xforms:insert>
,<xforms:delete>
, index updates, and event dispatching. -
Preliminary Support for Asynchronous Handling of
<xforms:submission>
. -
Preliminary Support for delay Attribute on
<xforms:dispatch>
Action. -
New XForms 1.1 Types, in particular the very useful
xforms:email
type. -
New XForms 1.1 Functions.
-
-
Core XForms support improvements.
-
Inline XML Schema support with XForms. XForms supports using XML Schemas which are embedded within the
<xforms:model>
element. Orbeon Forms now supports this feature. This is particularly useful when you create a new schema which is just used within an XForms document, or to define a series of simple types used for validation.<xforms:model><!-- A simple inline XML Schema --><xs:schema elementFormDefault="qualified" attributeFormDefault="unqualified"><xs:simpleType name="link"><xs:restriction base="xs:string"><xs:pattern value="(https?\://([^/?#]+)/([^?#]*)(\?([^?#]+))?(#(.*))?)?"/></xs:restriction></xs:simpleType></xs:schema><!-- More XForms model constructs below -->...</xforms:model>The XML Schema definitions are directly available to the model, in particular to binds:
<xforms:bind nodeset="my-link" type="link"/> -
Event handling improvements. The XML Events
ev:observer
attribute used to be only supported within a model to refer to a nested instance. It is now globally supported. Support for the more rarely neededev:target
attribute has been added as well.
-
-
XPath functions additions and improvements.
-
Access request and session directly from XForms. In the past, accessing request and session information from XForms required using the page flow controller or possibly a page model written in XPL. Now, you can use XPath functions to do so.
-
More utility XPath functions. Additional utility functions have been added, notably
xxforms:element()
,xxforms:attribute()
,xxforms:bind()
,xxforms:case()
,xxforms:property()
, and enhancements to the standardproperty()
function.See also XPath functions for more information.
-
-
More freedom with XForms constructs.
-
Free positioning of label, help, hint and alert elements.
-
XForms models can be positioned in more places, including within dialogs.
-
Support for AVTs on XHTML elements outside HTML body. This in particular allows dynamically setting, from XForms, a document's language, with the
lang
and/orxml:lang
attributes on the<html>
element. -
Support for
<xforms:output>
within<xhtml:title>
. This allows dynamically controlling, from XForms, the title of the page. For example, the title can be updated to report the current number of errors on a form. -
Attribute Value Templates (AVTs) on XHTML elements. AVTs were already supported on some XForms elements. You can now use AVTs on XHTML elements as well. This allows you to use XForms to influence aspects of XHTML such as
class
,style
orcolspan
attributes.See AVTs on XHTML Elements for documentation.
This feature is kindly sponsored by Teleflex.
-
-
Other extensions to XForms constructs.
-
Variables within controls, models and actions. You can now declare variables usable from any XPath expression in an XForms document, using the
xxforms:variable
(orexforms:variable
) element. Variables are extremely useful, for example to avoid repeating long XPath expressions, or to give an XPath expression unambiguous access to data computed in enclosing<xforms:group>
or<xforms:repeat>
elements.See Variables for documentation.
-
Generalized
context
attribute on XForms elements. XForms 1.1 introduces thecontext
attribute on<xforms:insert>
and<xforms:delete>
. Orbeon Forms now supports this convenient attribute on all elements changing the XPath evaluation context, including controls, actions, binds, and submissions. Further versions of XForms are likely to extend support this way.See Generalized
context
attribute for the documentation. -
ev:event
,ev:observer
andev:target
all support multiple space-separated event names and identifiers. This is an extension to XML Events 1, which is planned for XML Events 2.See also Multiple Event Names, Observers and Targets on Event Handlers.
-
Custom Model Item Properties. You can place user-defined Model Item Properties on the
<xforms:bind>
element.See also Custom Model Item Properties.
-
exforms:iterate
attribute on actions. In particular, these additions make it much easier to iterate over nodes within actions.See Iteration of XForms Actions over Sequences for documentation and a complete example.
-
Declarative dynamic default instance values.
See Extension Model Item Property to Specify default instance values.
-
Dataypes to validate XML and XPath 2 expressions.
See Extension Types.
-
Outputting server log messages with
xforms:message
.xforms:message
supports new level values:xxforms:log-debug
,xxforms:log-info
,xxforms:log-warn
andxxforms:log-error
. These cause the message to be logged on the server using the levels "debug", "info", "warn" and "error" as per the log4j terminology. Messages output with these levels appear in the Orbeon Forms logs depending on the configuration oflog4j.xml
. For example:<xforms:submission>...<xforms:message ev:event="xforms-submit-error" level="xxforms:log-error">A submission error occurred:<xforms:output value="event('error-type')"/></xforms:message></xforms:submission>See also Displaying Messages with the
xforms:message
Action.
-
-
Local configuration properties. You can create a local property file,
config/properties-local.xml
, for your own Orbeon Forms configuration properties. These add to and override existing properties. This new mechanism facilitates upgrades of Orbeon Forms, as property files no longer have to be merged.See also Properties File.
-
Upgrades to core libraries.
-
New Yahoo User Interface library. Orbeon Forms now uses YUI 2.6.0.
-
New eXist database. Orbeon Forms now uses eXist 1.2.4.
-
-
XML pipelines improvements.
-
Inline transformations in XPL. Often, processor configurations must be determined dynamicaly. XSLT is typically used for that purpose, but this can lead to heavier code. Inline transformations simplify the syntax by allowing transformations directly embedded within processor inputs:
<p:processor name="oxf:url-generator"><p:input name="config" transform="oxf:xslt" href="#instance"><!-- This is an inline transformation --><config xsl:version="2.0"><url>http://www.example.org/</url><mode><xsl:value-of select="/instance/mode"/></mode></config></p:input><p:output name="data" id="example-document"/></p:processor>See also Embedding Transformations within Inputs.
-
Temporary files in the file serializer. The file serializer can now automatically create temporary files and write to those temporary files. It will also delete temporary files, based on a "scope" parameter you specify in the configuration. As with the Scope generator and Scope serializer, you can set the scope to either "request", "session", or "application".
-
Epilogue pipeline configurable with properties. These properties in particular allow you to pick the theme stylesheet, enable XHTML output, etc.
-
Chart Processor enhancements. The chart processor now support two new types of chart: XY charts and time series. For charts that show a lot of data points, you can also limit the number of labels shown in the categories axis with the new
max-number-of-labels
option. -
Zip and unzip processors.
-
-
Orbeon Forms version. You can know the exact version number of the Orbeon Forms you are running by running
java -jar orbeon-cli.jar -v
from the command line. The FAQ has more on how to know which version of Orbeon Forms you are running.
2.2. Complete List of Issues Addressed in this Release
Orbeon Forms 3.7.1 addresses the following bugs and features:
- #313787: RFE: Implement xbl:handler
- #313786: RFE: Implement xforms:dispatch/@targetid
- #313783: Hint for trigger does not update when the server sends a new value
- #313770: Cell content remains hidden on IE ??? Inner tables
- #313779: RFE: Implement new xxforms:instance() scoping rules
- #313772: Uploading a schema does not inline the schema
- #313777: FB: Regression: After clicking on last grid cell, it is no longer possible to insert a new control
- #313776: FB: Inserting HTML text doesn't insert the right template
- #313628: Id clash when using xxforms:index() function in XBL component
- #313773: XBL: Changing repeat index through user interaction updates non-related indexes
- #313769: Insert of new node affecting repeat within XBL yields wrong repeat id
- #313732: Regression: instance inspector causes exception on To-Do Lists example
- #313549: Namespaces are not properly copied when using xxbl:transform
- #313722: RFE: support mindate and maxdate for calendar widget
- #313749: Separate deployment: filter not to forward content Orbeon Forms if the content is empty, and implement sendsendRedirect
- #313748: RFE: support "european" date format in date picker
- #313747: RFE: support for navigator in YUI calendar
- #313711: FB: Test form asks for confirmation when closing
- #313647: Regression: xforms:range throws JS error in XForms Controls example
- #313746: RFE: Ability from XBL to dispatch event to bound node using xforms:dispatch
- #313709: IE 6/7: Selecting file in upload control no longer dispatches xforms-select event from client
- #313702: Map component: support getting a Google Maps API key from a property
- #313698: Incorrect checkbox selection when both itemset and value are updated
- #313700: Issue with selection of input type="boolean"
- #313697: FR: Summary page: navigate to second page of results and search causes incorrect paging situation
- #313642: FR: make changes, press Close, then Cancel browser confirmation: loading indicator remains stuck
- #313653: Autocomplete: suggestion list shows below other form controls on IE
- #313696: RFE: Support ev:event="#all" extension to match on all events
- #313695: RFE: Instance replacement with shared="application" must support XInclude configuration
- #313691: xbl:content does not properly copy namespaces of source element
- #313689: IE6/7: Content not showing when non-relevant section becomes relevant
- #313685: Autocomplete: no xforms-value-changed event is dispatched if a value is selected from the list with the mouse
- #313648: Enabling XForms Inspector in FR summary page leads to NPE
- #313650: XBL: IDs in XHTML elements are not prefixed
- #313683: Client-side unit-tests hanging on test-error-ajax on IE6
- #313668: Static context lost in exforms:sort
- #313682: Input type="boolean" creating ghost on IE6 when has focus
- #313674: RFE: Support xxforms:encrypt-item-values attribute on selection controls
- #313672: IE hang using 100% CPU when autosize text area is disabled
- #313671: Versioned resources: a/@href is rewritten as resource URL instead of render URL in Ajax response
- #313664: Date field: convert 2-digit year to 4-digit year taking the closest century
- #313663: Regression: disabled content is hidden but still takes the space on the page it would take if not disabled
- #313659: XForms dynamic state deserialization restores repeat indexes too late
- #313643: FB: Itemset editor's last value may not be set if the dialog is closed too fast
- #313583: Incremental autocomplete field replaces data with data coming from server
- #313641: Controls are empty when recreating items in a repeat for the second time
- #313637: oxf:sql might not properly extract namespaces when creating document with odt:xmlFragment type
- #313634: Regression: HTML editor: "String index out of range" exception when the control becomes empty
- #313613: RFE: Pass information about the error to listeners on ORBEON.xforms.Events.orbeonLoadedEvent
- #313609: Incremental input is broken
- #313612: RFE: Add HTML area control to Form Builder
- #313611: RFE: HTML Area: remove titlebar
- #313600: Exception when using AVT in XBL component: Missing mandatory id for element: xxforms:attribute
- #313605: RFE: New property to disable default error dialog
- #313604: RFE: Support custom event event in case of error intecepted by JavaScript code
- #313603: RFE: HTML Area: clean-up pasted HTML and prevent injections
- #313591: XForms tutorial is referencing xforms-bookcast instead of my-bookcast
- #313560: Versioned resources: dynamic images don't update in XForms Controls example
- #313582: Versioned resources: incorrect rewriting of URLs returned in Ajax response
- #313578: XForms Sandbox "Run XForms" buttons are always grayed out in noscript mode
- #313576: RFE: Map XBL: don't set lat/long based on address unless marker is moved
- #311396: Issue registering nested event handlers without ev:observer
- #313567: Setting RTE value to blank sometimes does not update on Firefox
- #313561: RFE: Custom MIPs must update classes on client on Ajax response
- #313545: Resources versioned: when app version number set to empty string, Orbeon fails to load app resources
- #313430: RFE: Support for xxforms:target="..." attribute on <xforms:output appearance="xxforms:download">
- #313551: #313548 is breaking existing applications
- #313550: With YUI RTE under IE 6, sometimes a new value is not set
- #313548: RFE: Add support to exf:sort() for literal sort expression
- #313541: Regression: when versioned resources enabled, calling XForms Server with path including version
- #313538: Creating of boolean inputs in repeats yields to JavaScript error (shown in dialog to the user)
- #313523: Namespaces are not properly copied when using xxbl:transform
- #313525: FR: Sending text/* attachments by email produces junk
- #313520: When recreating multiple series of radio buttons they are incorectly all made part of the same group
- #313519: FR: Noscript: Encoding issue with accented characters
- #313518: FR: XSLT error in i18n service when properties override resources more than once
- #313517: RFE: Add xxbl:transform attribute on xbl:template to support more elaborate transformations
- #313516: Error in form run by XForms Sandbox doesn't show regular error page
- #313515: With IE 6, YUI RTE may not detect value changes when focus changes
- #313505: XBL: namespace visibility issue
- #313504: XBL: dispatching events to targets inside XBL component fails
- #313474: RFE: Move Form Runner and Form Builder to separate JARs to facilitate upgrade/deployment
- #313464: JavaScript error on browser back when page has static readonly selection controls
- #313232: Regression: one test in build causes a StackOverflowError
- #313440: Regression: replacing a read-only instance does not cause UI to refresh properly
- #313427: Regression: dateTime field is always invalid when "p.m." is entered
- #313410: Exception when using oxf:xforms-submission with global property oxf.xforms.noscript set to true
- #311463: Read-only date field allows changing date with calendar with IE 7
- #313369: Output appearance download: when iteration is recreated, label is not reset and link is invisible
- #313352: On IE, click on read-only input field bound to xs:date node: shows date picker
- #313332: Typing enter in text area can cause content to be replaced by old value from server
- #313258: RFE: Support grouping of multiple radio buttons
- #313127: Regression: NPE when running example in sandbox
- #313059: Style attribute not copied on <xforms:input>
- #313184: FR: When using components as section templates, fields do not populate with existing data
- #311054: XBL components: NPE when calling a component from within another component
- #313143: Cursor in text area is moved at the end of the field while typing
- #313101: XBL components with local models/instances don't work in repeats
- #313099: RFE: Unzip processor to provide size and date-time for the files
- #313037: RFE: submission with multipart/form-data must set file name and mediatype if available
- #312972: IE hung when going to the source code viewer in the examples
- #312923: Trigger modal: sometimes progress panel is shown, then hidden immediately before the Ajax response arrives
- #312927: Ajax events inefficiency: focus and activate events sent in separate requests
- #312926: DOMFocusOut sent twice
- #312105: Non-intuitive autocompletion of time fields when incorrect data is entered
- #312893: RFE: Implement support for multipart/form-data submission serialization
- #312864: Ajax portlet: when including form with Dojo, on IE a request for initial event is sent to server upon page load
- #311112: Portlets: Unable to navigate between pages in Liferay portlet (Orbeon Forms 3.6/3.7beta1)
- #312834: Bookcast example leads to JavaScript error when clicking on Load Sample Data
- #312796: Regression: URL generator not passing headers when there is no request in external context
- #309693: xforms:message called upon initialization doesn't show
- #312725: RFE: Copy on container created by RTE classes on the textarea
- #312610: Support for dynamic change of the type of an <xforms:input>, and support for <xforms:input> type="xs:boolean" in repeat
- #312630: RFE: Ability to filter events sent by client to server
- #312629: RFE: Ability to limit the number of Ajax requests
- #312533: Noscript: upload control doesn't update instance
- #312522: xforms:load upon initialization fails when the URL passed is not an absolute URL
- #312519: RFE: Upgrade web.xml to reference Servlet 2.4 schema
- #312507: When using the US format, it is more usual to show noon as 12 pm rather than 0 pm
- #312495: RFE: FR summary page and eXist persistence API to support forms that work on instances using namespaces
- #312492: Noscript: non-relevant group around table row is not hidden
- #312482: RFE: Support optimized submission using servlet includes
- #312480: RFE: Optimized local submission must support reaching another servlet context
- #312479: Repeat in dialog: click on white space does not select current iteration
- #311072: FB: When changing control name to name which is already used, no warning is given
- #312448: FB: Control Details dialog: quickly typing control name then pressing "enter" loses characters
- #312447: RTE in dialog on IE6: when dialog opened the second time, RTE is only partially displayed
- #307370: RFE: Integrate the YUI rich text editor (RTE)
- #312406: Initial build of controls may use out of date binds
- #312393: Noscript: date, time and dateTime input contros don't work properly
- #312366: RFE: Support AVTs for xforms:input/@xxforms:* attributes
- #312209: Server was not sending current application version to client
- #312126: Regression: display issues on IE with xforms:switch/xforms:case
- #310442: Regression: HTML area does not send value change events anymore with IE
- #311540: Regression: When a node is set as required, type=xs:date has no effect
- #311554: Regression: XForms Controls example: autocomplete list no longer display country flag
- #311719: Regression: Alert doesn't update properly within repeat
- #311622: FR: Summary page for a form shows the Orbeon logo instead of the selected logo for the form
- #312094: RFE: Upgrade to eXist 1.2.4
- #311608: Date field canot be blanked in XForms Controls example
- #312080: Removing the last iteration of a repeat does not dispatch xforms-disabled events
- #312026: RFE: XPath extension function to read a binary file as Base64
- #312025: RFE: XPath extension functions to encode/decode ISO 9075-14:2003
- #311971: NPE if xforms:insert is passed origin node which is a document node without a root element
- #311909: RFE: Must be able to do xforms:load during initialization (xforms-ready/xforms-model-construct-done)
- #311927: RFE: Implement xxforms:invalid-bind() function to return ids of binds causing invalidity
- #311169: RFE: xxforms:dialog[@appearance = 'minimal'] should support level="modal"
- #311314: RFE: Offline: Improve performance of "save to Gears" on IE
- #310455: Exception upon startup with Java 6 on OS X
- #311878: RFE: Support extension MIP to specify dynamic initial values
- #311870: Support XForms 1.1 xforms:dayTimeDuration, xforms:yearMonthDuration, xforms:email, xforms:card-number
- #310392: Minimized JS files appear under WEB-INF/resources/ops/javascript
- #311842: September is spelled Septembre on the calendar widget
- #311822: RFE: Make sure we always have a class yui-skin-sam on body, even when the body is not generated by Orbeon Forms
- #311799: Form Builder: JS exception when adding section template
- #311792: RFE: Upgrade YUI from 2.5.2 to 2.6.0
- #311786: RFE: 2 additional attributes: xxforms:show-progress and xxforms:progress-message on xforms:dispatch with delay specified.
- #311766: RFE: Offline support: allow for taking form online to be canceled
- #311756: RFE: Allow processor to run outside of servlet context
- #309149: Cookie forwarding may behave incorrectly in submissions
- #311726: Email: XML attachments do not have proper encoding
- #311721: Spaces are added in encoded values for select(1) controls when the value length exceeds a certain limit
- #311697: xforms:output with image mediatype or xhtml:img/@src may return blank value to client causing load of current page
- #311055: XBL components: binding a component to foo:select1 doesn't work
- #311347: Entering 2/28/2008 in date field changes to 3/28/2008
- #311554: Regression: XForms Controls example: autocomplete list no longer display country flag
- #311540: Regression: When a node is set as required, type=xs:date has no effect
- #311605: xforms:upload doesn't support xforms:anyURI and xforms:base64Binary types
- #311507: Regression: repeats not working on IE
- #311487: AVT on img/@src does not get properly rewritten in Ajax response
- #311468: RFE: @lang attribute on HTML element to control date format should support e.g. fr_FR format
- #311346: RFE: Support for xforms:dispatch/@delay
- #306628: RFE: Support xforms:input bound to xs:boolean value
- #311416: Ajax submission: client incorrectly believing that the server already has some values
- #311404: Regression: repeat iterations no longer send relevance information to client
- #311395: Offline: click on Save twice when offline creates invalid events
- #311394: Exception thrown when attempting to insert attribute next to element content
- #311388: RFE: Email processor should support comma-separated list of addresses on to, cc, bcc
- #311359: RFE: FR: Support for getting initial instance from service
- #311330: Regression: boolean input no longer send value change events
- #311316: RFE: FR: Provide way to override existing Form Runner resources
- #311314: RFE: Offline: Improve performance of "save to Gears" on IE
- #311305: RFE: Support for proxy configuration
- #311276: RFE: Offline: display loading indicator when offline, when saving data
- #311273: FR: Oracle persistence layer: total count of document incorrect in summary page
- #311272: YUI Calendar: switching to English keeps calendar in language it was set to previously
- #311139: FR: RFE: Make Summary paging size a property
- #311073: FB: Click on Test from the summary page opens a page with an error
- #311101: FR: persistence REST API is not called when attaching a file
- #308952: Regression: ClassCastException: org.orbeon.oxf.xforms.control.controls.XFormsInputControl
- #311179: Properties must reload if XIncluded file changes
- #311177: RFE: Modularize properties.xml
- #311169: RFE: xxforms:dialog[@appearance = 'minimal'] should support level="modal"
- #311121: Versioned resources: error page doesn't use right URLs
- #311120: Versioned resources: AVT on HTML element within repeat fails
- #311142: Date on the 31st sometimes displayed as the 1st of the month
- #311074: FB: MIPs for controls are not saved
- #311094: FR: values missing in print and PDF view
- #311080: Likely bug with variable scoping and actions
- #311044: Form Runner home page: Message: newItemDelimiter is null
- #308698: New dialog shows below existing dialog
- #308913: RFE: Allow specifying of the order of label, control, help, alert, and hint
- #311079: Regression: loading instances through @src does not forward HTTP headers
- #311078: xxforms:variable does not support @context and @model
- #311065: RFE: FR: support for audit-level versioning in Oracle
- #311063: RFE: new XForms function: xxforms:get-remote-user()
- #311064: RFE: new XForms function: xxforms:is-user-in-role()
- #311062: XForms 1.1 xforms:header element: handle node-set binding and @value attribute
- #311028: ClassCastException with iterate on atomic values
- #310988: xforms:input doesn't format date, time and dateTime in static read-only mode
- #310987: RFE: xxforms:variable/@select should be optional
- #310975: RFE: Implement XPath function returning the currently selected case id for a given switch
- #310974: RFE: Provide new zip and unzip processors
- #310963: Regression: listener using oxf:url-generator now throws an exception
- #309859: Regression: source viewer no longer switches files
- #310956: Upload control does not contain unselectable="on" anymore after being cleared
- #309922: Regression: JS error when adding items to nested repeats which have no nesting in the HTML
- #308324: Date picker stops working after insert/change/delete/insert sequence
- #308076: xforms:delete causes unnecessary xforms-value-change events
- #306670: xforms:delete: remove all the nodes pointed by nodeset
- #309840: RFE: Review xforms:delete index update strategy
- #310927: Implement XForms 1.1 index update logic for xforms:insert and xforms:delete
- #310868: Regression: in XForms Controls example, slider sends NaN to server
- #310939: In repeat, when adding iteration help icon shows for item in new iteration even if help is empty
- #306575: XForms error: repeatChildren and newNodeset have different sizes
- #310908: Namespace not correctly in submissions with ref="instance('gaga')/foo"
- #310869: Regression: In XForms Controls example, instance inspector's "Evaluate XPath" causes JS error
- #309637: Regression: Flickr Resize example no longer sets images' style attribute with Firefox and Safari
- #310855: Regression: To-Do Lists example: add new list and get a JS exception
- #310908: Namespace not correctly in submissions with ref="instance('gaga')/foo"
- #310894: RFE: Implement minimal support for asynchronous submissions
- #308781: Check excludes in build.xml and remove obsolete source files
- #310856: xforms:group does not use xxforms:order property
- #310831: Regression: HTML area (FCKeditor) fails within a YUI dialog
- #304973: Hints are ignored with triggers
- #305672: RFE: Investigate using YUI to implement tooltips
- #306172: RFE: Improve date selector
- #306385: Calendar widget should allow the date to be removed
- #304558: Empty date field with mapped xs:date type only displays calendar icon
- #306952: RFE: Need widgets for xs:time and xs:dateTime
- #310569: RFE: xforms:input should not generate span and img for date for non-date fields
- #310826: Regression: oxf:url-generator may not recognize modes based on content-type anymore
- #310825: RFE: Make portlet theme configurable through properties
- #310778: Namespace prefix not in space for QName: xml:lang
- #310779: Prefix xbl has not been declared
- #310797: RFE: Provide XForms extension type to validate XPath 2.0 expressions
- #310795: ORBEON.xforms.Globals.requestForm has no properties
- #310764: RFE: Add ability to natively handle hierarchical properties in properties.xml
- #308408: Upgrade to YUI 2.5.2 or later
- #310675: Log4j configurations still being clobbered...
- #310674: RFE: oxf:url-generator should support forward-headers property like xforms:submission
- #308758: RFE: Support for AVT in HTML in xforms:label (i18n issue)
- #310640: RFE: Support for xforms:output within xhtml:title
- #310616: RFE: Support xforms:model outside xhtml:head, especially within xxforms:dialog
- #310611: RFE: Ability to use AVTs on XHTML elements outside HTML body
- #310550: Regression: xforms:input bound to xs:boolean stores encrypted value instead of decrypted value
- #310557: Reserved HTML characters like opening bracket and quotes don't work in trigger label
- #310544: RFE: property() function should support XForms engine properties
- #310542: RFE: xforms-server-submit URLs are ugly
- #310541: xforms:upload control does not display mediatype after a file is uploaded
- #310457: Regression: Form Builder: Clicking on a label just after page load no longer works
- #310496: RFE: Present noscript content in JavaScript-enabled mode then the client has JavaScript disabled
- #310456: Selecting a non-existing file for upload causes a JS exception with IE
- #310442: Regression: HTML area does not send value change events anymore with IE
- #310439: RFE: Configurable automatic header forwarding for xforms:submission
- #310429: xxforms:attribute element shows in resulting HTML page
- #310428: XForms server incorrectly caches its output based on its input
- #310274: select1 full (radio list) in repeat cause JS error on insert
- #309390: New PNG images for XForms don't look nice with IE 6
- #310170: Regression: static itemset shows as blank when adding a new repeat iteration
- #310383: RFE: Support for category-label-angle in charts of type time-series
- #310352: RFE: Closed selection controls must encrypt the values sent to the client
- #309369: Regression: Govt Forms example: DMV-14 form no longer shows license number upon loading
- #310034: ORBEON.xforms.Document.getValue() fails with static readonly input
- #309733: Regression: rewrite issue with XForms filter
- #309865: Regression: help icon for control not hidden or shown when relevance is changing
- #309860: Support XForms 1.1 serialization attribute and related behavior
- #306595: RFE: Support AVTs on more xforms:submission attributes
- #309736: doc-available() thowing exception instead of returning false
- #309518: xforms:toggle throw an exception if a non-existing case is provided
- #309481: RFE: Ability to limit the number labels on the X axis
- #309482: RFE: New type of chart: XY and time series
- #309475: Setting log4j.configuration property in Orbeon Forms causes other applications using log4j to fail
- #305992: Create a "minimal" version of xforms.js
- #306741: Some YUI tree widget JS files don't have min versions
- #309389: Changing the index in a repeat should do a recalculate
- #309404: RFE: Dispatch events when an instance becomes valid/invalid
- #309366: RFE: Need a built-in schema type to validate well-formed XML
- #309348: RFE: Implement way of enabling button based on instance validity
- #309341: Click on xforms:output dispaches DOMActivate but not DOMFocusIn
- #309290: RFE: Implement XForms 1.1 replace="text" for submissions
- #309265: Bug with preceding-sibling after insertion
- #309210: As per XForms 1.1, do not apply the @type MIP to instance nodes that contain child elements
- #308956: Regression: To-Do Lists example is broken
- #309165: xforms:submission throws an NPE when submissing content not located in an instance
- #309163: Implement support for event('response-headers') as per XForms 1.1
- #309164: Implement event('response-status-code') on xforms-submit-done as per XForms 1.1
- #309162: RFE: Optimization for IE, to avoid registering events for focus and blur on every form control
- #308915: Occasional dom4j serialization error when restoring static state
- #309090: RFE: Support xxforms:xinclude on xforms:submission
- #309003: RFE: Custom event attributes should use xxforms prefix
- #309021: NPE upon deleting row containing xforms-valid event handler
- #306367: Text missing in PDF Documentation
- #304697: Source Code Viewer: issue downloading .txt, .java, and .xsd
- #308995: RFE: Support relevance in itemsets
- #308994: RFE: Upgrade commons-fileupload to version 1.2.1
- #308993: RFE: Support item-value property in xforms-selected event
- #308825: RFE: Set media="all" on external CSS stylesheet
- #308936: exf:sort(): namespaces not supported in second argument
- #308954: RFE: Documentation on how to setup a data source on JBoss
- #308952: Regression: ClassCastException: org.orbeon.oxf.xforms.control.controls.XFormsInputControl
- #306602: Implement URL rewriting in Ajax responses
- #308380: xforms:trigger/xforms:output don't rewrite URLs in the same way
- #308953: Non-fatal FileNotFound exceptions on JBoss
- #308944: RFE: Allow inline transformations within processor inputs
- #308946: RFE: Binary and text formats must support embedded last-modified to facilitate serialization
- #308945: oxf:to-xml-converter must support validation and XInclude configuration
- #306168: Issue with ancestor-or-self:: axis when using XSLT view
- #308937: Date picker for input field of type date is shown
- #308921: RFE: xxforms:bind() function to access a bind nodeset within another expression
- #308897: RFE: XPath functions to access request and session attributes directly from XForms
- #308896: Support xforms-select and xforms-deselect on selection controls upon user interaction
- #308893: RFE: Support AVTs on xxforms:show and xxforms:hide attributes
- #308895: RFE: Support AVTs on all attributes of xforms:dispatch
- #308894: RFE: Support AVTs on all attributes of xxforms:load
- #308846: PFC must not serve files if HTTP method is not GET
- #308864: RFE: Support xforms:output[@mediatype = 'image/*'] and xs:base64Binary datatype
- #308878: Document xforms-model-construct-done vs. xforms-ready
- #308618: RFE: XPath functions to access request parameters directly from XForms
- #308877: RFE: Allow oxf:url-generator to always produce output in binary mode
- #308863: RFE: Support xforms:output[@mediatype = 'image/*'] and xs:anyURI datatype
- #308850: xforms:upload initiallly containing data does not display properly
- #308846: PFC must not serve files if HTTP method is not GET
- #307714: Submission with @ref does not always validate properly
- #308844: Click on newly added control after dialog was displayed causes JS error on IE
- #303986: XML Schema validation: xsi:type not supported in XForms instances
- #308833: RFE: Submission to allow PUT and POST of binary content
- #308832: xforms:load misbehaves when the resource resolves to an anchor
- #308817: RFE: Support passing context information to custom events
- #308803: RFE: xforms:alert message should be displayed if the value is required but empty
- #308683: Regression: XPath expressions with local variable (for $i in ...) sometimes do not return correct results
- #308780: RFE: Support XML Events extension to allows for lists of event names, observers, and targets
- #308771: RFE: Dispatch xforms-deselect on xforms:upload when user clears file in the UI
- #308770: RFE: Performance: page can't be used until all the images and CSS are loaded
- #308710: RFE: Click on iteration should send DOMFocusIn
- #308768: Support inline XML Schema within xforms:model
- #308261: NPE after deploying war file in Liferay
- #308759: RFE: Support more than one observer per event handler
- #308672: RFE: Implement exforms:variable and xxforms:variable in actions
- #308747: CSS: Too much space taken by alert on all browsers except Firefox 2
- #308621: Rename ops.log to orbeon.log in config/log4j.xml
- #308227: RFE: Support versioned resources to improve caching
- #308087: RFE: Implement session heartbeat feature to keep open pages alive
- #305753: Document xxforms:script's support for this and event
- #306666: Add documentation for dialog actions and events
- #308708: RFE: Upgrade to eXist 1.2
- #308462: Tooltips on mouse over only show only show the second and subsequent times the mouse goes over the icon or control
- #308694: xxforms:show/@neighbor doesn't work
- #308695: xxforms:show/@neighbor doesn't work correctly when the neighbor is within a repeat
- #306407: Needs ability to show dialog when page loads
- #308039: Upgrade setvalue and related to the XForms 1.1 semantics
- #308447: Dialogs are no longer draggable
- #308674: RFE: Implement exforms:variable and xxforms:variable in models
- #305571: RFE: Implement exforms:variable and xxforms:variable in controls
- #306972: RFE: Generalized support for @context attribute on controls, actions and bindings
- #308660: RFE: Extension functions to create elements and attributes by name (xxforms:element() and xxforms:attribute())
- #307876: xforms:group without nested xforms:label element may generate xhtml:label element in output
- #303954: XML Events: support ev:observer and ev:target attributes
- #308634: RFE: Support DOMActivate on xforms:output
- #308608: RFE: New modal trigger
- #308569: RFE: Use indentation for XForms event and action logging
- #308544: Default log file is orbeon.log instead of ops.log
- #308545: Can't deploy Orbeon Forms in Liferay 4.3.3 because of descriptors incompatibility
- #308546: RFE: Reorganize WEB-INF descriptors
- #308527: RFE: Add more context information to DOM* events
- #308525: RFE: Implement XForms 1.1 context() function
- #308526: RFE: Implement eXorms @exforms:iterate attribute on actions
- #308524: XForms schema: allow "style" attribute on xforms:output
- #308494: Handle reference to nested xforms:bind from xforms:repeat as per XForms 1.1
- #308486: RFE: xforms:toggle/@case should support AVTs
- #308391: RFE: Support xforms-help event
- #308461: RFE: Help displayed as a tooltip
- #308419: JavaScript error in IE when clicking around in the tab with the slider in the XForms controls example
- #308446: RFE: Action to output log messages
- #308444: Integrate patch for error-type context information on xforms-submit-error
- #308443: URL generator's <url> element shouldn't be forced to appear first in the configuration
- #308410: When the session expires on IE, a JavaScript exception occurs
- #308406: oxf:scope-generator produces incorrect null document
- #308404: Increase default session duration
- #308403: Document oxf:sql processor's sql:param/@null attribute
- #308392: RFE: XForms upload control: show unit next to file size
- #308390: RFE: Show tooltip with text "Delete file" for the "x" image displayed for the upload control
- #308389: oxf:xml-converter does not output correct SAX events for namespace declarations
- #308387: Also display summary error message in error page
- #307705: Upgrade to YUI 2.3.1
- #308347: Cache-Control header with must-revalidate="true" causes IE to lose form values
- #308308: RFE: Implement of setfocus action: always select first checked radio button or check box, if any
- #308335: Exception when xforms:item is within unbound xforms:select1 control
- #308325: Error "The processor output must be connected" when "data" output is not connected
- #308323: Avoid repeated use of form.elements.length when iterating over elements
- #308292: RFE: Support p:property() XPath function accessible from XPL
- #308291: RFE: Support xxforms:property() XPath function accessible from XForms
- #308287: Separate deployment: conditional get produces <null> XML document in the browser
- #308277: Span with class xforms-loading-none is taking some space on top of the form with IE
- #308266: Exception when deploying on JBoss 4.2
- #308240: xforms:setfocus has no effect on xforms:select1[@appearance = 'full']
- #308223: RFE: XForms extension action to remove all shared instances from the cache
- #308218: RFE: Support -v option to just display the Orbeon Forms version from the command line
- #308217: xxforms:refresh-items="false" is broken
- #308215: Potential deadlock on XFormsServerSharedInstancesCache
- #308192: Pre-Check and Post-Check headers in epilogue are likely useless
- #308204: oxf:xforms-submission does not work with xxforms:shared="application" attribute
- #308193: RFE: Option to reload XForms page on back/forward
- #307813: Can get a "state not found error" when clicking while HTML submission is in progress and then doing a browser back
- #307867: Activating an HTML link containing an xforms:output may cause later browser back to fail
- #307874: Orbeon Forms example apps have many issues with Firefox 3.0b1 and 3.0b2
- #308086: RFE: Improve XForms properties to be configurable in properties.xml and overridable in individual pages
- #308080: Upgrade embedded eXist to post-1.1.1 version
- #308078: Getting "Unable to retrieve XForms engine state" error when combining submission and xxforms:script
- #308023: HTTP session is not available when submitting upon xforms-ready in separate deployment mode
- #308051: Provide a way to disable hint shown as a tooltip
- #308050: Support XForms 1.1 serialization="none" instead of serialize="false" on xforms:submission
- #308049: Support models without instances
- #308040: Allow displaying inline HTML hints with CSS
- #307776: RFE: When session expires on Ajax requests, display different error dialog title
3. Compatibility Notes
3.1. Legacy Classic XForms Engine
The legacy Classic XForms engine has been deprecated for several releases now, and should not be expected to work in Orbeon 3.7.1 and later.
This is particularly appropriate now that the XForms engine support the noscript mode, an accessible, JavaScript-free rendering mode.
3.2. <xforms:delete> Action
The <xforms:delete>
action, when omitting the at
attribute, now
deletes all the nodes referred to by the nodeset
attribute. This is as per the XForms 1.1 specification. Previously, this
would only delete the first node of the node-set.
You may have to modify your code if you relied on the older behavior. You can easily delete only the first node by writing:
Previous workarounds still work, but they are no longer needed:
3.3. Binds Evaluation
With Orbeon Forms 3.6 and earlier, <xforms:bind>
node-sets were re-evaluated
everytime an XForms recalculation or revalidation was performed. In this version, this is no longer
the case: <xforms:bind>
node-sets are re-evaluated during the XForms rebuild
operation only, as per the XForms specification. This is meant to improve performance, but it also
has a side-effect: in certain circumstances, an explicit <xforms:rebuild>
action may
be necessary.
3.4. The index() Function
Due to the way repeat processing was implemented in Orbeon Forms 3.6 and earlier, the
index()
function could be reliably used in more places than in the current version.
XForms 1.1 does not explicitly limit in what type of XPath expressions index()
can be used. However, in Orbeon Forms, it is strongly advised at the moment to only use
index()
within actions, and to avoid using it in control bindings and binds, as
doing so may yield unpredictable results.
We hope to remove this limitation in the future.
3.5. Image Triggers
Orbeon Forms 3.6 and earlier allowed using images within xforms:trigger
and
xforms:submit
using a special appearance, xxforms:image
, and a nested element,
xxforms:img
. This has long been deprecated and is now no longer supported. Use instead the
minimal
appearance. For example, replace the following:
with:
Notice how the image is now in the XHTML namespace, and placed within the label of the trigger.
3.6. Default HTML DOCTYPE
The default HTML DOCTYPE produced by the epilogue has changed from -//W3C//DTD HTML 4.01
Transitional//EN
(HTML 4.01 transitional) to -//W3C//DTD HTML 4.01//EN
(HTML
4.01 strict). This may have an impact on how your web browser interpets CSS rules.
3.7. Date Picker Using YUI Widget
Input fields bound to node of type xs:date
are now using the YUI date picker widget
instead of the jscalendar widget. If your code depends on the jscalendar (or you prefer the
jscalendar for whatever reason), you can instruct Orbeon Forms to use the jscalendar by setting the
oxf.xforms.datepicker
property to jscalendar
.
Note that there is a chance that the jscalendar widget might be deprecated in the future, so you should try to use or switch to the YUI when possible.
3.8. Deprecation and removal of Java classes
The following classes, usually referenced from web.xml
and portlet.xml
,
are still available but deprecated:
-
OPSServlet
andOPSServletDelegate
: useOrbeonServlet
andOrbeonServletDelegate
instead. -
OPSPortlet
andOPSPortletDelegate
: useOrbeonPortlet
andOrbeonPortletDelegate
instead. -
OPSXFormsFilter
andOPSServletFilterDelegate
: useOrbeonXFormsFilter
andOrbeonServletFilterDelegate
instead. -
OPSServletFilter
andOPSServletFilterDelegate
: useOrbeonServletFilter
andServletFilterDelegate
instead.
The following classes have been deprecated for a long time and are now removed:
-
ProcessorServlet
: useOrbeonServlet
instead. -
ProcessorFilter
: useOrbeonServletFilter
instead. -
ProcessorServletContextListener
: useOrbeonServletContextListener
instead.