XForms 1.1 First Edition Errata

This document provides a group editable area for preparing the technical content of the errata for XForms 1.1 First Edition. Eventually, this content will be used to prepare an updated version of the XForms 1.1 Errata.

This document is intended to contain errata that the W3C Forms Working Group has resolved to add.

Erratum 1: The xsd:duration and xforms:duration datatypes are supported

The specification states that xsd:duration is not supported in XForms. However, this is not true in practice since an XForms processor inherits the capability from the XML Schema engine, and any capability available from the xsi:type attribute is also available to the XForms type model item property. Moreover, the intention of the xforms:* datatypes is to provide a consistent authoring alternative guaranteed to allow empty string as valid content. This erratum fixes these problems with amendments allowing both xsd:duration and xforms:duration datatypes in XForms processors.

The built-in datatype xsd:duration does not support a total ordering. Form authors are encouraged to use xforms:dayTimeDuration or xforms:yearMonthDuration instead.

Section 5.2.1

Built-in primitive types (in the XForms namespace):

dateTime
time
date duration
gYearMonth
...

Erratum 2: The UI Common elements can appear before and after List UI Common elements

The specification does not reflect the natural tendency to place UI Common elements such as help, hint, alert and XForms actions immediately after the label and before List UI Common content. Due to support in known XForms processors, the specification and the XForms 1.1 Schema are amended to reflect this common authoring practice.

Specification Changes

Section 8.1

In the XForms Core Forms Controls Module table, amend the Minimal Content Model column for the rows for the select and select1 controls as follows:

Erratum 7: Statement of Conformance to Informative Schema

The specification states that fragments of XForms must conform to the Schema for XForms, but the schema is non-normative, so the sentence is amended to indicate that the fragments are expected to be valid according to the schema.

Specification Changes

Section 12.1

Individual XForms fragments are expected to be schema-valid according to the Schema for XForms...

Erratum 8: Disambiguation of case Element

Since both the switch element and the toggle element have a child case element, a community member requested a forward reference from the switchcase to the toggle element for disambiguation.

Specification Changes

Section 9.2.2

... The attribute selected determines the initial selected state. The selected case can be changed with the toggle action, which uses a case attribute or a case child element to make an ID reference to the case of the switch to select.

Erratum 9: Items with empty/spaces values selectable in select1

The select element does not select an item having an empty or a spaces-only value because space separation is used for multiple item selection. Although the same rule is stated for select1, it is inconvenient and implementations do not support it due to the need in forms to allow a single selection item that restores an empty data value. The select element has no similar need since an empty value can be restored by deselecting all items. Therefore, the difference in behavior between select and select1 is warranted to allow both elements to achieve the same effect.

Specification Changes

Section 8.1.11

For both closed and open selections, any selection item with a storage value which is empty or which contains only white space characters must remain deselectedis deemed to be selected if the bound data node value exactly matches the storage value of the selection item. Furthermore, selecting a selection item with a storage value which is empty or which contains only white space characters places the storage value into the bound data node value.

Erratum 10: Typo in load action description

The load element can have a resource child element, not a name child element. The subsection link is correct on the word name, but it should say resource.

Specification Changes

Section 10.14

The URI specifying the link to traverse may be pointed to by the Single Node Binding attributes, if given, or by the resource attribute or the resource child element.

The function adjust-dateTime-to-timezone() adjusts a given dateTime to the end-user's local timezone. This includes application of a daylight savings time adjustment. It is reasonably clear that the normative examples are expected to produce the return results at all times, not just when the end-user uses the form in the summer. This erratum further clarifies that the daylight savings time adjustment is not according to the current date and time for the end-user but rather whether daylight savings time is locally in effect at the date and time of the input parameter.

Specification Changes

Section 7.9.8 function description

This function adjusts a legal lexical xsd:dateTime received as the parameter to the local time zone for the user of the implementation, and returns the result. The application of daylight savings time is dependent on whether daylight savings time is in effect for the local time zone at the given date and time. "Local" or untimezoned times are presumed to be the time in the local time zone. If the implementation does not have access to time zone information, UTC is used. The result is empty string if the string argument is the empty sequence or not a legal lexical xsd:dateTime.

Section 7.9.8 first example

returns 2007-10-07T02:22:00-07:00 in the Pacific time zone since daylight savings time applies to the date 2007-10-02 in the Pacific time zone.

Section 7.9.8 second example

returns 2007-10-02T14:26:43-07:00 in the Pacific time zone since daylight savings time applies to the date 2007-10-02 in the Pacific time zone.

Section 7.9.8 third example

Computes two hours from now, returning the result in the local time zone. For example, if now() returns 2007-10-02T21:26:43Z and the local date and time is 2007-10-02T14:26:43-07:00 in the Pacific time zone, then the above expression returns 2007-10-02T16:26:43-07:00

Returns 2007-12-02T13:26:43-08:00, which is the date and time two months (61 days) from the date 2007-10-02T14:26:43-07:00 in the Pacific timezone, adjusting the result for the fact that daylight savings time no longer applies to the resultant date in the Pacific timezone. Note that the hour component is 13, not 14 and the timezone offset is -08:00, not -07:00.

Erratum 14: Dynamic dependencies and computed expressions

The definition of dependency is changed for computed expressions to reflect the current common practice of implementing the recalculation dependency graph algorithm. When the definition of a 'reference' was added to XForms 1.1, it was recognized that a future version of XForms may require a stricter definition for recalculation purposes. It has since been found that a slightly stricter definition is needed to avoid excessive circular dependencies.

Specification Changes

Section 7.3 implement stricter definition for computed expressions

If an XPath expression other than a computed expression references an instance node, then the expression result is dependent on the instance node. If a computed expression references an instance node and uses its character content (rather than just referencing for navigation), then the computed expression is dependent on the instance node. A dependency list for an instance node is the list of XPath expressions of a given category that are dependent upon the instance node. For example, in Section 4.3.2 The xforms-recalculate Event, the dependency list of computed expressions for each instance node helps establish the recalculation order for the computed expressions when the values of instance data nodes are changed.

Section 7.3 remove note

Note:

Defining a reference in terms of matching a NodeTest ... Moreover, the excess references created by the definition may cause some recalculation constructs to cease operation due to circular references that would not be created with a stricter definition of a reference. A future version of XForms may use a stricter version of referencing for recalculation and a less strict definition of referencing for the purpose of detecting and performing automatic rebuild operations.