W3C

XForms 1.0 Recommendation Errata 1.0

03 March 2006

This version:
http://www.w3.org/2003/10/REC-xforms-10-20031014-errata.html
Editors:
John Boyer, IBM
David Landwehr, Novell INC.
Daniel Vogelheim, Sun Microsystems

Abstract

These errata have been applied to the XForms 1.0 Recommendation to produce XForms 1.0 Second Edition.

Status of this Document

This document records known errors in the XForms 1.0 Recommendation. http://www.w3.org/TR/2003/REC-xforms-20031014/.

Table of Contents

1 Section 3
    1.1 E69a: Instance replacement (section 3.3)
    1.2 E15: Preserve XPath data model in instances (section 3.3.2)
    1.3 E33: What happens when an inline instance is not a valid XML document (section 3.3.2)
    1.4 E3: XML base processing for submission URLs (section 3.3.3)
    1.5 E69b: Instance replacement (section 3.3.3)
2 Section 4
    2.1 E2: XForms processor bootstrap (section 4.2, 4.2.1)
    2.2 E8b: Setting focus to a repeating structure sets the focus to the repeat item represented by the repeat index (section 4.3.2)
    2.3 E70a: Recalculate, revalidate, refresh and user interface events (xforms-refresh section 4.3.4)
    2.4 E70b: Recalculate, revalidate, refresh and user interface events (xforms-revalidate section 4.3.5)
    2.5 E70c: Recalculate, revalidate, refresh and user interface events (xforms-recalculate section 4.3.6)
    2.6 E23: evaluation context for compute recalculation (section 4.3.6)
    2.7 E70d: Recalculate, revalidate, refresh and user interface events (section 4.4)
    2.8 E28: The xforms-select and xforms-deselect Events (section 4.4.3)
    2.9 E10: xforms-submit-error is targeted at <xforms:submission> (section 4.4.19)
    2.10 E69c: Instance replacement (section 4.5.1)
    2.11 E70e: Recalculate, revalidate, refresh and user interface events (section 4.6.7)
3 Section 6
    3.1 E64: Predefined datatypes (section 6.1.1)
    3.2 E66a: Applicability of MIPs to group and switch (section 6.1.4)
    3.3 E60: p3ptype example (section 6.1.7)
4 Section 7
    4.1 E72: Script changes to live instance DOM are cached for recalculation (section 7.3.3)
    4.2 E31a: labels are mandatory on input elements (section 7.4)
    4.3 E67a: Allowing XPath expressions in bindings (section 7.4)
    4.4 E19: boolean-from-string() does not throw exception (section 7.7.1)
    4.5 E55: Erratum for avg() (section 7.8.1)
    4.6 E63: index() does not throw an exception (section 7.8.5)
    4.7 E30a: The days-from-date() Function (section 7.10.2)
    4.8 E30b: The seconds-from-dateTime() Function (section 7.10.3)
    4.9 E14: No time zone in the seconds() function (section 7.10.4)
5 Section 8
    5.1 E44: @appearance is optional but has no default value (section 8.1)
    5.2 E0: Evaluation context for <output> element (section 8.1.5)
    5.3 E38: [editorial] missing double quote in example (section 8.3.4)
6 Section 9
    6.1 E66b: Applicability of MIPs to group and switch (section 9.1.1)
    6.2 E66c: Applicability of MIPs to group and switch (section 9.2.1)
    6.3 E25b: The case element: change states instead of attributes (section 9.2.2)
    6.4 E25a: The toggle element: change states instead of attributes (section 9.2.3)
    6.5 E51: case attribute content in toggle action (section 9.2.3)
    6.6 E66d: Applicability of MIPs to group and switch (section 9.3.1)
    6.7 E31b: labels are mandatory on input elements (section 9.3.1)
    6.8 E66e: Applicability of MIPs to group and switch (section 9.3.2)
    6.9 E27: The insert Element: use first node in node-set (section 9.3.5)
    6.10 E49a: Remove prototypical insert data (section 9.3.5)
    6.11 E49b: Remove prototypical insert data (section 9.3.5)
    6.12 E35c: startindex is used for inner repeats (section 9.3.5)
    6.13 E65a: Node Set Binding not nodeset(section 9.3.5 and section 9.3.6)
    6.14 E61: The setindex Element (section 9.3.7)
    6.15 E35d: startindex is used for inner repeats (section 9.3.7)
    6.16 E65b: Node Set Binding not nodeset(section 9.3.8)
    6.17 E49c: Remove prototypical insert data (section 9.3.8)
    6.18 E35a: startindex is used for inner repeats (section 9.3.8)
    6.19 E35b: startindex is used for inner repeats (section 9.3.9)
7 Section 10
    7.1 E68: Nested actions (section 10.1.1)
    7.2 E4: model attribute is optional on reset, rebuild, recalculate, revalidate, and refresh actions (sections 10.1.11 and 10.1.3 to 10.1.6)
    7.3 E8a: Host languages controls can get focus from xforms-focus (section 10.1.7)
    7.4 E22: <xforms:load show="replace"> is default value (section 10.1.8)
    7.5 E7: Evaluation Context for <setvalue> (section 10.1.9)
8 Section 11
    8.1 E16: xforms-submit event (section 11.1)
    8.2 E37: multiple concurrent submission for single submit not allowed (section 11.1)
    8.3 E45: Submission processing (section 11.1)
    8.4 E69d: Instance replacement (section 11.1)
    8.5 E50: Submission revalidation (section 11.1)
    8.6 E52: XML Media Type means having a content type defined in RFC 3023 (section 11.1)
    8.7 E39: Content-Type MAY be included instead of MUST (section 11.5)
    8.8 E62: Separator and application/x-www-form-urlencoded (section 11.6)
9 Section 13
    9.1 E67b: Allowing XPath expressions in bindings (section 13)
10 Appendix A
    10.1 E4b: model attribute is optional on reset, rebuild, recalculate, revalidate, and refresh actions (in XForms schema normatively referenced in Appendix A)
    10.2 E22b: <xforms:load show="replace"> is default value (in XForms schema normatively referenced in Appendix A)
    10.3 E54: Remove xf:minOccurs and xf:maxOccurs (in XForms schema normatively referenced in Appendix A)
    10.4 E71: The case element of a switch can be empty (in XForms schema normatively referenced in Appendix A)
11 Appendix G
    11.1 E26a: complexType does not have a name in example payschema.xsd (appendix G.1)
    11.2 E26b: Credit card datatype should be digits (appendix G.1)
12 References
    12.1 Normative References


1 Section 3

1.1 E69a: Instance replacement (section 3.3)

Add instance to the list of attributes for submission.

The intended use of instance replacement is typically not achievable in practice because the results always replace the submission data. For example, follow-up queries are not feasible.

In table of attributes and minimal content models of XForms core module elements, add ", instance (xsd:IDREF)" (after the definition of the replace attribute).

See also:

1.5 E69b: Instance replacement (section 3.3.3)
2.10 E69c: Instance replacement (section 4.5.1)
8.4 E69d: Instance replacement (section 11.1)

1.2 E15: Preserve XPath data model in instances (section 3.3.2)

Clarify that all data items relevant to the XPath data models are relevant for XForms instances. Add wording:

Note:

All data relevant to the XPath data model must be preserved during processing and submission, including processing instructions, comment nodes and all whitespace.

1.3 E33: What happens when an inline instance is not a valid XML document (section 3.3.2)

Added specification wording (before the note):

If creation of the detached copy of the inline instance data fails due to an XML error, then processing should halt with an xforms-link-exception. This could happen, for example, if the inline content had two element nodes, which would imply creating an XML document with two document elements.

Note:

In XForms 1.1, a new exception event will be issued.

1.4 E3: XML base processing for submission URLs (section 3.3.3)

Current specification wording:

action

Required destination URI for submitting instance data.

Add wording (from section 3.2.2, Linking Attributes):

Behavior of relative URIs in links is determined by the host language, although [XML Base] processing is strongly recommended.

1.5 E69b: Instance replacement (section 3.3.3)

Add to the list of special attributes for submission (immediately after replace):

instance

Optional attribute specifying the instance to replace when the replace attribute value is "instance". When the attribute is absent, then the default is the instance that contains the submission data. An xforms-binding-exception occurs if this attribute does not indicate an instance in the same model as the submission.

See also:

1.1 E69a: Instance replacement (section 3.3)
2.10 E69c: Instance replacement (section 4.5.1)
8.4 E69d: Instance replacement (section 11.1)

2 Section 4

2.1 E2: XForms processor bootstrap (section 4.2, 4.2.1)

Current specification wording, section 4.2:

This section defines the various stages of the initialization phase. The processor begins initialization by dispatching an event xforms-model-construct to each XForms Model in the containing document.

Changed specification wording, section 4.2:

This section defines the various stages of the initialization phase. The processor begins initialization by dispatching an event xforms-model-construct to each XForms Model in the containing document. How the XForms Processor itself is requested to initialize is implementation dependent.

Current specification wording, section 4.2.1:

Dispatched by the containing document processor to bootstrap XForms Processor initialization.

Changed specification wording, section 4.2.1:

Dispatched to each XForms model by the XForms processor.

2.2 E8b: Setting focus to a repeating structure sets the focus to the repeat item represented by the repeat index (section 4.3.2)

Current specification wording:

The default action for these events results in the following:

focus is given to the target form control if the form control is able to accept focus.

Changed specification wording:

The default action for these events results in the following:

Focus is given to the target form control if the form control is able to accept focus. Setting focus to a repeating structure sets the focus to the repeat item represented by the repeat index.

See also:

7.3 E8a: Host languages controls can get focus from xforms-focus (section 10.1.7)

2.3 E70a: Recalculate, revalidate, refresh and user interface events (xforms-refresh section 4.3.4)

Current specification wording:

The default action for this event results in the following: The user interface reflects the state of the model, which means that all forms controls reflect for their corresponding bound instance data:

  • its current value

  • its validity

  • whether it is required, readonly or relevant.

Changed specification wording:

The default action for this event results in the following:

  1. All UI bindings should be reevaluated as necessary.

  2. A node can be changed by confirmed user input to a form control, by xforms-recalculate (section 4.3.6) or by the setvalue (section 10.1.9) action. If the value of an instance data node was changed, then the node must be marked for dispatching the xforms-value-changed event.

  3. If the xforms-value-changed event is marked for dispatching, then all of the appropriate model item property notification events must also be marked for dispatching (xforms-optional or xforms-required, xforms-readwrite or xforms-readonly, and xforms-enabled or xforms-disabled).

  4. For each form control, each notification event that is marked for dispatching on the bound node must be dispatched (xforms-value-changed, xforms-valid, xforms-invalid, xforms-optional, xforms-required, xforms-readwrite, xforms-readonly, and xforms-enabled, xforms-disabled). The notification events xforms-out-of-range or xforms-in-range must also be dispatched as appropriate. This specification does not specify an ordering for the events.

  5. The user interface reflects the state of the model, which means that all forms controls reflect for their corresponding bound instance data:

    • its current value

    • its validity

    • whether it is required, readonly or relevant.

See also:

2.4 E70b: Recalculate, revalidate, refresh and user interface events (xforms-revalidate section 4.3.5)
2.5 E70c: Recalculate, revalidate, refresh and user interface events (xforms-recalculate section 4.3.6)
2.7 E70d: Recalculate, revalidate, refresh and user interface events (section 4.4)
2.11 E70e: Recalculate, revalidate, refresh and user interface events (section 4.6.7)

2.4 E70b: Recalculate, revalidate, refresh and user interface events (xforms-revalidate section 4.3.5)

Current specification wording:

The default action for this event results in the following:

The default handling for this event must satisfy the following conditions:

  1. All instance data nodes in all instance elements in the model are checked against any specified XML Schema.

  2. All instance data nodes in all instance elements in the model are checked against any bound model item properties which define constraints on the value, i.e. required, constraint ( 6 Model Item Properties).

  3. The appropriate notification events (xforms-valid, xforms-invalid, xforms-readonly, xforms-readwrite, xforms-required, xforms-optional, xforms-enabled, xforms-disabled) are dispatched to form controls where the matching model item property evaluates to a different value than at the start of the processing of this event.

Note:

Prior to the dispatching of the xforms-ready event handler, there are no form controls bound to instance data, so xforms-valid and other notification events are not dispatched.

Changed specification wording:

An instance node is valid if and only if the following conditions hold:

  • the constraint model item property is true

  • the node satisfies any applicable XML schema definitions (including those associated by the type model item property)

Note:

A node that satifies the above conditions is valid even if it is required but empty.

The default action for this event results in the following:

All instance data nodes in all instance elements in the model are checked for validity according to the above definition. If the validity of a node changes, then the node is marked for dispatching the appropriate notification event (xforms-valid or xforms-invalid) to bound form controls during xforms-refresh as follows:

  • If the node changes from invalid to valid, then the node is marked for dispatching the xforms-valid event.

  • If the node changes from valid to invalid, then the node is marked for dispatching the xforms-invalid event.

Remove specification wording:

Note:

Prior to the dispatching of the xforms-ready event handler, there are no form controls bound to instance data, so xforms-valid and other notification events are not dispatched.

See also:

2.3 E70a: Recalculate, revalidate, refresh and user interface events (xforms-refresh section 4.3.4)
2.5 E70c: Recalculate, revalidate, refresh and user interface events (xforms-recalculate section 4.3.6)
2.7 E70d: Recalculate, revalidate, refresh and user interface events (section 4.4)
2.11 E70e: Recalculate, revalidate, refresh and user interface events (section 4.6.7)

2.5 E70c: Recalculate, revalidate, refresh and user interface events (xforms-recalculate section 4.3.6)

Current specification wording:

The values of all instance data items match their associated 'calculate' constraints, if any. All model item properties that can contain computed expressions are resolved.

Changed specification wording:

The values of all instance data items match their associated 'calculate' constraints, if any. All model item properties that can contain computed expressions are resolved. In addition to contributing further node value changes that will cause xforms-value-changed notifications in xforms-refresh, the model item properties that change are marked to help xforms-revalidate and xforms-refresh to determine the notification events to dispatch.

  • If the required model item property changes, then either the xforms-required event must be marked for dispatch if required is true or the xforms-optional event must be marked for dispatch if required is false.

  • If the readonly model item property changes, then either the xforms-readonly event must be marked for dispatch if readonly is true or the xforms-readwrite event must be marked for dispatch if readonly is false.

  • If the relevant model item property changes, then either the xforms-enabled event must be marked for dispatch if relevant is true or the xforms-disabled event must be marked for dispatch if relevant is false.

See also:

2.3 E70a: Recalculate, revalidate, refresh and user interface events (xforms-refresh section 4.3.4)
2.4 E70b: Recalculate, revalidate, refresh and user interface events (xforms-revalidate section 4.3.5)
2.7 E70d: Recalculate, revalidate, refresh and user interface events (section 4.4)
2.11 E70e: Recalculate, revalidate, refresh and user interface events (section 4.6.7)

2.6 E23: evaluation context for compute recalculation (section 4.3.6)

Current specification wording:

When it is time to recalculate a compute, the XPath expression is evaluated in the context of the instance node whose value or model item property is associated with the compute.

Changed specification wording:

When it is time to recalculate a model item property, the XPath expression is evaluated. The evaluation context is determined from the model binding expression that applied the model item property, as defined for computed expressions in 7.4 Evaluation Context.

2.7 E70d: Recalculate, revalidate, refresh and user interface events (section 4.4)

Current specification wording:

In section 4.4.2 (xforms-value-changed): Dispatched in response to: a confirmed change to an instance data node bound to a form control, such as when the user navigates away from the form control.

Change specification wording:

Dispatched in response to: a change to an instance data node bound to a form control.

Add specification wording:

This event is dispatched during xforms-refresh if the bound instance data node has been marked for dispatching this event due to a change.

Current specification wording:

In section 4.4.6 (xforms-valid): This event is dispatched whenever the value of the bound instance data node changes, additionally whenever the bound instance data node becomes valid indirectly, through the constraint model item property evaluating to true.

Change specification wording:

This event is dispatched during xforms-refresh if the bound instance data node has been marked for dispatching this event in xforms-revalidate (section 4.3.5).

Current specification wording:

In section 4.4.7 (xforms-invalid): This event is dispatched whenever the value of the bound instance data node changes, additionally whenever the bound instance data node becomes invalid indirectly, through the constraint model item property evaluating to false.

Change specification wording:

This event is dispatched during xforms-refresh if the bound instance data node has been marked for dispatching this event in xforms-revalidate (section 4.3.5).

Current specification wording:

In section 4.4.10 (xforms-readonly): This event is dispatched whenever the value of the bound instance data node changes, additionally whenever the bound instance data node becomes ...

Change specification wording:

This event is dispatched during xforms-refresh if the bound instance data node has been marked for dispatching this event in xforms-recalculate (section 4.3.6) or xforms-refresh (section 4.3.4).

Current specification wording:

In section 4.4.11 (xforms-readwrite): This event is dispatched whenever the value of the bound instance data node changes, additionally whenever the bound instance data node becomes ...

Change specification wording:

This event is dispatched during xforms-refresh if the bound instance data node has been marked for dispatching this event in xforms-recalculate (section 4.3.6) or xforms-refresh (section 4.3.4).

Current specification wording:

In section 4.4.12 (xforms-required): This event is dispatched whenever the value of the bound instance data node changes, additionally whenever the bound instance data node becomes ...

Change specification wording:

This event is dispatched during xforms-refresh if the bound instance data node has been marked for dispatching this event in xforms-recalculate (section 4.3.6) or xforms-refresh (section 4.3.4).

Current specification wording:

In section 4.4.13 (xforms-optional): This event is dispatched whenever the value of the bound instance data node changes, additionally whenever the bound instance data node becomes ...

Change specification wording:

This event is dispatched during xforms-refresh if the bound instance data node has been marked for dispatching this event in xforms-recalculate (section 4.3.6) or xforms-refresh (section 4.3.4).

Current specification wording:

In section 4.4.14 (xforms-enabled): This event is dispatched whenever the value of the bound instance data node changes, additionally whenever the bound instance data node becomes ...

Change specification wording:

This event is dispatched during xforms-refresh if the bound instance data node has been marked for dispatching this event in xforms-recalculate (section 4.3.6) or xforms-refresh (section 4.3.4).

Current specification wording:

In section 4.4.15 (xforms-disabled): This event is dispatched whenever the value of the bound instance data node changes, additionally whenever the bound instance data node becomes ...

Change specification wording:

This event is dispatched during xforms-refresh if the bound instance data node has been marked for dispatching this event in xforms-recalculate (section 4.3.6) or xforms-refresh (section 4.3.4).

Current specification wording:

In each of : section 4.4.6 (xforms-valid) section 4.4.7 (xforms-invalid) section 4.4.10 (xforms-readonly) section 4.4.11 (xforms-readwrite) section 4.4.12 (xforms-required) section 4.4.13 (xforms-optional) section 4.4.14 (xforms-enabled) section 4.4.15 (xforms-disabled):

Dispatched in response to: an instance data node becoming...

Change specification wording:

Dispatched in response to: an instance data node either changing and being or becoming ...

See also:

2.3 E70a: Recalculate, revalidate, refresh and user interface events (xforms-refresh section 4.3.4)
2.4 E70b: Recalculate, revalidate, refresh and user interface events (xforms-revalidate section 4.3.5)
2.5 E70c: Recalculate, revalidate, refresh and user interface events (xforms-recalculate section 4.3.6)
2.11 E70e: Recalculate, revalidate, refresh and user interface events (section 4.6.7)

2.8 E28: The xforms-select and xforms-deselect Events (section 4.4.3)

Target of events should include <itemset>.Current specification wording:

Target: item or case

Changed specification wording:

Target: item or itemset or case

2.9 E10: xforms-submit-error is targeted at <xforms:submission> (section 4.4.19)

Current specification wording:

Target: model

Changed specification wording:

Target: submission

Correction to the event overview 4.1.1

The xforms-submit-error is targeted at the submission element.

2.10 E69c: Instance replacement (section 4.5.1)

Add to the list of causes of an xforms-binding-exception:

, or an instance attribute on the submission element that fails to point to an instance element in the same model element as the submission.

See also:

1.1 E69a: Instance replacement (section 3.3)
1.5 E69b: Instance replacement (section 3.3.3)
8.4 E69d: Instance replacement (section 11.1)

2.11 E70e: Recalculate, revalidate, refresh and user interface events (section 4.6.7)

Current specification wording:

Sequence: Value Change with Focus Change

  1. xforms-recalculate

  2. xforms-revalidate

  3. [n] xforms-valid/xforms-invalid; xforms-enabled/xforms-disabled; xforms-optional/xforms-required; xforms-readonly/xforms-readwrite

  4. xforms-value-changed

  5. DOMFocusOut

  6. DOMFocusIn

  7. xforms-refresh

Reevaluation of binding expressions must occur before step 3 above.

Changed specification wording:

Sequence: Value Change

  1. xforms-recalculate

  2. xforms-revalidate

  3. xforms-refresh performs reevaluation of UI binding expressions then dispatches these events according to value changes, model item property changes and validity changes:

    • [n] xforms-value-changed

    • [n] xforms-valid or xforms-invalid

    • [n] xforms-enabled or xforms-disabled

    • [n] xforms-optional or xforms-required

    • [n] xforms-readonly or xforms-readwrite

    • [n] xforms-out-of-range or xforms-in-range

    (The order in which these events are dispatched is not defined).

  4. Perform further deferred updates as necessary

See also:

2.3 E70a: Recalculate, revalidate, refresh and user interface events (xforms-refresh section 4.3.4)
2.4 E70b: Recalculate, revalidate, refresh and user interface events (xforms-revalidate section 4.3.5)
2.5 E70c: Recalculate, revalidate, refresh and user interface events (xforms-recalculate section 4.3.6)
2.7 E70d: Recalculate, revalidate, refresh and user interface events (section 4.4)

3 Section 6

3.1 E64: Predefined datatypes (section 6.1.1)

Current specification wording:

Legal Values: Any xsd:QName representing a datatype definition in an XML Schema.

Changed specification wording:

Legal Values: Any xsd:QName representing a datatype definition.

3.2 E66a: Applicability of MIPs to group and switch (section 6.1.4)

Current specification wording:

The relevant model item property provides hints to the XForms user interface regarding visibility, focus, and navigation order. In general, when true, associated form controls should be made visible. When false, associated form controls should be made unavailable, removed from the navigation order, and not allowed focus.

Changed specification wording:

The relevant model item property provides hints to the XForms user interface regarding visibility, focus, and navigation order. In general, when true, associated form controls should be made visible. When false, associated form controls (and any children) and group and switch elements (including content) should be made unavailable, removed from the navigation order, and not allowed focus.

Note:

A form control, group or switch must express a single node binding in order to be associated with an instance node.

See also:

6.1 E66b: Applicability of MIPs to group and switch (section 9.1.1)
6.2 E66c: Applicability of MIPs to group and switch (section 9.2.1)
6.6 E66d: Applicability of MIPs to group and switch (section 9.3.1)
6.8 E66e: Applicability of MIPs to group and switch (section 9.3.2)

3.3 E60: p3ptype example (section 6.1.7)

Current specification wording:

Example: Attaching a type constraint using Binding
 ...
  <bind type="my:nonEmptyString" nodeset="my:first-name"
      p3ptype="user.personname.given"/>

Changed specification wording:

Example: Attaching a type constraint using Binding
 ...
  <bind type="my:nonEmptyString" nodeset="my:first-name"
      p3ptype="user.name.given"/>

4 Section 7

4.1 E72: Script changes to live instance DOM are cached for recalculation (section 7.3.3)

Remove the following:

Note:

Script invocation of recalculate() is not necessarily equivalent to performing the recalculate action handler. Though the script is assumed to have modified instance data prior to invoking recalculate(), the DOM mutations are not cached. Thus, a full recalculation is necessary to ensure the proper changes are effected throughout the XForms Model.

4.2 E31a: labels are mandatory on input elements (section 7.4)

Current specification wording:
<select1 ref="@attr" ... />
Correction

Changed specification wording:

<select1 ref="@attr" ... >
  <label>...</label>
</select1>

See also:

6.7 E31b: labels are mandatory on input elements (section 9.3.1)

4.3 E67a: Allowing XPath expressions in bindings (section 7.4)

Remove the following sentence:

(using the "path" portion of XPath)

See also:

9.1 E67b: Allowing XPath expressions in bindings (section 13)

4.4 E19: boolean-from-string() does not throw exception (section 7.7.1)

Current specification wording:

If the parameter string matches none of the above strings, according to a case-insensitive comparison, processing stops with an exception (4.5.4 The xforms-compute-exception Event).

Changed specification wording:

If the parameter string matches none of the above strings, according to a case-insensitive comparison, the return value will be false.

4.5 E55: Erratum for avg() (section 7.8.1)

Current specification wording:

Function avg returns the arithmetic average of the result of converting the string-values of each node in the argument node-set to a number. The sum is computed with sum(), and divided with div by the value computed with count(). If the parameter is an empty node-set, the return value is NaN.

Changed specification wording:

Function avg returns the arithmetic average of the result of converting the string-values of each node in the argument node-set to a number. The sum is computed with sum(), and divided with div by the value computed with count(). If the parameter is an empty node-set, or if any of the nodes evaluate to NaN, the return value is NaN.

4.6 E63: index() does not throw an exception (section 7.8.5)

Current specification wording:

If the specified argument does not identify a repeat, processing stops with an exception (4.5.4 The xforms-compute-exception Event).

Changed specification wording:

If the specified argument does not identify a repeat it returns NaN.

4.7 E30a: The days-from-date() Function (section 7.10.2)

Current specification wording:

If the string parameter represents a legal lexical xsd:date or xsd:dateTime, the return value is equal to the number of days difference between the specified date or dateTime and 1970-01-01. Hour, minute, and second components are ignored after normalization. Any other input parameter causes a return value of NaN.

Changed specification wording:

If the string parameter represents a legal lexical xsd:date or xsd:dateTime, the return value is equal to the number of days difference between the specified date or dateTime (normalized to UTC) and 1970-01-01. Hour, minute, and second components are ignored after normalization. Any other input parameter causes a return value of NaN.

See also:

4.8 E30b: The seconds-from-dateTime() Function (section 7.10.3)

4.8 E30b: The seconds-from-dateTime() Function (section 7.10.3)

Current specification wording:

If the string parameter represents a legal lexical xsd:dateTime, the return value is equal to the number of seconds difference between the specified dateTime and 1970-01-01T00:00:00Z. If no time zone is specified, an implementation default is used. Any other input string parameter causes a return value of NaN.

Changed specification wording:

If the string parameter represents a legal lexical xsd:dateTime, the return value is equal to the number of seconds difference between the specified dateTime (normalized to UTC) and 1970-01-01T00:00:00Z. If no time zone is specified UTC is assumed. Any other input string parameter causes a return value of NaN.

See also:

4.7 E30a: The days-from-date() Function (section 7.10.2)

4.9 E14: No time zone in the seconds() function (section 7.10.4)

Current specification wording:

The sign of the result will match the sign of the duration. If no time zone is specified, an implementation default is used. Year and month components, if present, are ignored. Any other input parameter causes a return value of NaN.

Changed specification wording:

The sign of the result will match the sign of the duration. Year and month components, if present, are ignored. Any other input parameter causes a return value of NaN.

5 Section 8

5.1 E44: @appearance is optional but has no default value (section 8.1)

Current specification wording:

appearance

Optional attribute to define an appearance hint.

Changed specification wording:

appearance

Optional attribute to define an appearance hint. If absent, the user agent may freely choose any suitable rendering.

5.2 E0: Evaluation context for <output> element (section 8.1.5)

Current specification wording:

value

An XPath expression to be evaluated. The result of the evaluation is rendered by the form control.

Changed specification wording:

value

An XPath expression to be evaluated. The string result of the evaluation is rendered by the form control. If binding attributes are present to select a node, this attribute has no effect. The evaluation context is the same as would be applied to the evaluation of the single node binding. This XPath expression is re-evaluated whenever there is a change in any node to which the expression refers.

5.3 E38: [editorial] missing double quote in example (section 8.3.4)

Current specification wording:
  <message level="modeless" ev:event="xforms-help" ev:propagate="stop>
Changed specification wording:
  <message level="modeless" ev:event="xforms-help" ev:propagate="stop">

6 Section 9

6.1 E66b: Applicability of MIPs to group and switch (section 9.1.1)

Current specification wording:

The group element is used as a container for defining a hierarchy of form controls. Groups can be nested to create complex hierarchies. Model item properties that apply to form controls apply equally to group, and take precedence over model item properties applied to individual members of the group.

Common Attributes: Common, UI Common, Single Node Binding (optional)

Note:

When no model item properties apply to the binding expression on group, it can be considered as an authoring convenience for relative XPath expressions used by form controls appearing within the group.

When model item properties do apply, they apply to all form controls within the group. This means, for instance, that if a group is bound to an instance data node that is non-relevant, all child form controls will also be treated as non-relevant.

Changed specification wording:

The group element is used as a container for defining a hierarchy of form controls. Groups can be nested to create complex hierarchies. A group is considered to be non-relevant if and only if the single node binding resolves to an empty nodeset or a non-relevant node.

Common Attributes: Common, UI Common, Single Node Binding (optional)

Note:

If a group is non-relevant, then the rendering approach used to signify non-relevance is applied to the entire content of the group.

See also:

3.2 E66a: Applicability of MIPs to group and switch (section 6.1.4)
6.2 E66c: Applicability of MIPs to group and switch (section 9.2.1)
6.6 E66d: Applicability of MIPs to group and switch (section 9.3.1)
6.8 E66e: Applicability of MIPs to group and switch (section 9.3.2)

6.2 E66c: Applicability of MIPs to group and switch (section 9.2.1)

Current specification wording:

This element contains one or more case elements, any one of which is rendered at a given time.

Changed specification wording:

This element contains one or more case elements, any one of which is rendered at a given time. The non-relevance of a switch is determined in the same way as it is for group and similarly applies to the entire content.

See also:

3.2 E66a: Applicability of MIPs to group and switch (section 6.1.4)
6.1 E66b: Applicability of MIPs to group and switch (section 9.1.1)
6.6 E66d: Applicability of MIPs to group and switch (section 9.3.1)
6.8 E66e: Applicability of MIPs to group and switch (section 9.3.2)

6.3 E25b: The case element: change states instead of attributes (section 9.2.2)

Current specification wording:

This element encloses markup to be conditionally rendered. The attribute selected determines the selected state and can be manipulated programmatically via the DOM, or declaratively via XForms Action toggle.

Changed specification wording:

This element encloses markup to be conditionally rendered. The attribute selected determines the initial selected state.

See also:

6.4 E25a: The toggle element: change states instead of attributes (section 9.2.3)

6.4 E25a: The toggle element: change states instead of attributes (section 9.2.3)

Current specification wording:

This action adjusts all selected attributes on the affected cases to reflect the new state, and then performs the following:

Changed specification wording:

This action adjusts all selected states (not the attribute values) on the affected cases to reflect the new state of the switch containing the identified case

See also:

6.3 E25b: The case element: change states instead of attributes (section 9.2.2)

6.5 E51: case attribute content in toggle action (section 9.2.3)

Current specification wording:

Required reference to a case section inside the conditional construct.

Changed specification wording:

Required reference to a case element.

6.6 E66d: Applicability of MIPs to group and switch (section 9.3.1)

Current specification wording:

This element operates over a homogeneous collection by binding the encapsulated user interface controls to each element of the collection. Attributes on this element specify how many members of the collection are presented to the user at any given time.

Changed specification wording:

This element operates over a homogeneous collection by binding the encapsulated user interface controls to each element of the collection. If an element of the collection is non-relevant, then the rendering approach used to signify non-relevance is applied to the associated user interface controls. Attributes on this element specify how many members of the collection are presented to the user at any given time.

See also:

3.2 E66a: Applicability of MIPs to group and switch (section 6.1.4)
6.1 E66b: Applicability of MIPs to group and switch (section 9.1.1)
6.2 E66c: Applicability of MIPs to group and switch (section 9.2.1)
6.8 E66e: Applicability of MIPs to group and switch (section 9.3.2)

6.7 E31b: labels are mandatory on input elements (section 9.3.1)

Current specification wording:
<repeat nodeset="/cart/items/item">
  <input ref="." ... /><html:br/>
</repeat>
Changed specification wording:
<repeat nodeset="/cart/items/item">
  <input ref="." ...>
     <label>...</label>
  </input>
  <html:br/>
</repeat>
Current specification wording:
Example: Repeat Unrolled
<!-- unrolled repeat -->
  <input ref="/cart/items/item[1]" .../><html:br/>
  <input ref="/cart/items/item[2]" .../><html:br/>
  <input ref="/cart/items/item[3]" .../><html:br/>
  <input ref="/cart/items/item[4]" .../><html:br/>
Changed specification wording:
Example: Repeat Unrolled
<!-- unrolled repeat -->
  <input ref="/cart/items/item[1]"...><label>...</label></input><html:br/>
  <input ref="/cart/items/item[2]"...><label>...</label></input><html:br/>
  <input ref="/cart/items/item[3]"...><label>...</label></input><html:br/>
  <input ref="/cart/items/item[4]"...><label>...</label></input><html:br/>

See also:

4.2 E31a: labels are mandatory on input elements (section 7.4)

6.8 E66e: Applicability of MIPs to group and switch (section 9.3.2)

Remove specification wording:

This should be thought purely as a syntactic transformation, i.e., there is no change to repeat processing semantics. Further, for purposes of understanding the above as a pure syntactic transformation, element repeat can be viewed as containing an anonymous group that wraps the contents of element repeat. Thus, consider the following:

<repeat ...>
  ...
</repeat>

is equivalent to

<repeat ...>
  <group>...</group>
</repeat>

Which is equivalent to

<group repeat-...>
  ...
</group>

See also:

3.2 E66a: Applicability of MIPs to group and switch (section 6.1.4)
6.1 E66b: Applicability of MIPs to group and switch (section 9.1.1)
6.2 E66c: Applicability of MIPs to group and switch (section 9.2.1)
6.6 E66d: Applicability of MIPs to group and switch (section 9.3.1)

6.9 E27: The insert Element: use first node in node-set (section 9.3.5)

Current specification wording:

Attribute at is evaluated to determine the insertion index – a numerical value that is the index into the node-set. Attribute position specifies whether the new node is inserted before or after this index.

Changed specification wording:

Attribute at is evaluated to determine the insertion index – a numerical value that is the index into the node-set. The attribute at is evaluated with the first node in document order from the node set binding as the context node, the size of the node set binding as the context size and 1 as the context position. Attribute position specifies whether the new node is inserted before or after this index.

6.10 E49a: Remove prototypical insert data (section 9.3.5)

Current specification wording:

... cloning the final member of the homogeneous collection specified by the initialization instance data.

Changed specification wording:

... cloning the final member of the homogeneous collection.

See also:

6.11 E49b: Remove prototypical insert data (section 9.3.5)
6.17 E49c: Remove prototypical insert data (section 9.3.8)

6.11 E49b: Remove prototypical insert data (section 9.3.5)

Current specification wording:

The corresponding node-set of the initial instance data is located to determine the prototypical member of the collection. The final member of this collection is cloned to produce the node that will be inserted.

Changed specification wording:

The node-set binding identifies a homogeneous collection in the instance data. The final member of this collection is cloned to produce the node that will be inserted.

See also:

6.10 E49a: Remove prototypical insert data (section 9.3.5)
6.17 E49c: Remove prototypical insert data (section 9.3.8)

6.12 E35c: startindex is used for inner repeats (section 9.3.5)

Current specification wording:

3. The index for any repeating sequence that is bound to the homogeneous collection where the node was added is updated to point to the newly added node. The indexes for inner nested repeat collections are re-initialized to 1.

Changed specification wording:

3. The index for any repeating sequence that is bound to the homogeneous collection where the node was added is updated to point to the newly added node. The indexes for inner nested repeat collections are re-initialized to startindex.

See also:

6.18 E35a: startindex is used for inner repeats (section 9.3.8)
6.19 E35b: startindex is used for inner repeats (section 9.3.9)
6.15 E35d: startindex is used for inner repeats (section 9.3.7)

6.13 E65a: Node Set Binding not nodeset(section 9.3.5 and section 9.3.6)

Current specification wording (9.3.5):

The homogeneous collection to be updated is determined by evaluating the binding attribute nodeset.

Changed specification wording (9.3.5):

The homogeneous collection to be updated is determined by evaluating the Node Set Binding. If the collection is empty, the insert action has no effect.

Current specification wording (9.3.6):

The homogeneous collection to be updated is determined by evaluating the binding attribute nodeset. If the collection is empty, the delete action has no effect.

Changed specification wording (9.3.6):

The homogeneous collection to be updated is determined by evaluating the Node Set Binding. If the collection is empty, the delete action has no effect.

See also:

6.16 E65b: Node Set Binding not nodeset(section 9.3.8)

6.14 E61: The setindex Element (section 9.3.7)

Current specification wording:
  1. If the selected index is 0 or less, an xforms-scroll-first event is dispatched and the index is set to 1. If the selected index is greater than the index of the last repeat item, an xforms-scroll-last event is dispatched and the index is set to that of the last item.

Changed specification wording:
  1. If the selected index is 0 or less, an xforms-scroll-first event is dispatched and the index is set to 1. If the selected index is greater than the index of the last repeat item, an xforms-scroll-last event is dispatched and the index is set to that of the last item. If the index evaluates to NaN the action has no effect.

6.15 E35d: startindex is used for inner repeats (section 9.3.7)

Current specification wording:

The indexes for inner nested repeat collections are re-initialized to 1.

Changed specification wording:

The indexes for inner nested repeat collections are re-initialized to startindex.

See also:

6.18 E35a: startindex is used for inner repeats (section 9.3.8)
6.19 E35b: startindex is used for inner repeats (section 9.3.9)
6.12 E35c: startindex is used for inner repeats (section 9.3.5)

6.16 E65b: Node Set Binding not nodeset(section 9.3.8)

Current specification wording:

Attribute nodeset is evaluated to locate the homogeneous collection to be operated on by this repeat.

Changed specification wording:

The Node Set Binding is evaluated to locate the homogeneous collection to be operated on by this repeat.

See also:

6.13 E65a: Node Set Binding not nodeset(section 9.3.5 and section 9.3.6)

6.17 E49c: Remove prototypical insert data (section 9.3.8)

Removed the following sections:

The corresponding nodes in element instance in the source document are located-these nodes provide initial values and also serve as a prototypical instance for constructing members of the repeating collection.

The user interface template specified within element repeat is bound to this prototypical instance. If there is a type mismatch between the prototypical instance and the binding restrictions for the user interface controls, an error is signaled and processing stops.

The initial instance data supplies the prototypical member of the homogeneous collection, and this is used during UI initialization-4.2.2 The xforms-model-construct-done Event-to construct the members of the homogeneous collection. This prototypical instance is also used by action insert when creating new members of the collection. To create homogeneous collections, the initial instance data must specify at least one member of the collection; this requirement is similar to requiring instance data in addition to a schema, and the same justification applies.

See also:

6.10 E49a: Remove prototypical insert data (section 9.3.5)
6.11 E49b: Remove prototypical insert data (section 9.3.5)

6.18 E35a: startindex is used for inner repeats (section 9.3.8)

Current specification wording:

3. The index for this repeating structure is initialized to the value of startindex.

Changed specification wording:

3. The index for this repeating structure is initialized to the value of startindex. If the initial startindex is less than 1 it defaults to 1. If the index is greater than the initial node-set then it defaults to the size of the node-set.

See also:

6.19 E35b: startindex is used for inner repeats (section 9.3.9)
6.12 E35c: startindex is used for inner repeats (section 9.3.5)
6.15 E35d: startindex is used for inner repeats (section 9.3.7)

6.19 E35b: startindex is used for inner repeats (section 9.3.9)

Remove the specification wording:

Notice that an inner repeat's index always starts from 1.

See also:

6.18 E35a: startindex is used for inner repeats (section 9.3.8)
6.12 E35c: startindex is used for inner repeats (section 9.3.5)
6.15 E35d: startindex is used for inner repeats (section 9.3.7)

7 Section 10

7.1 E68: Nested actions (section 10.1.1)

Current specification wording:

Action action is used to group multiple actions.

Changed specification wording:

This action causes its child actions to be invoked in the order that they are specified in the document.

Remove specification wording:

When using element action to group actions, care should be taken to list the event on element action, rather than on the contained actions.

Remove specification wording:

Notice that in the above example, ev:event="DOMActivate" occurs on element action. Placing ev:event="DOMActivate" on either or both of the contained actions will have no effect. This is because the above example relies on the defaulting of [XML Events] attributes observer and handler. As defined in the XML Events specification, if both observer and handler attributes are omitted, then the parent is the observer. Placing ev:event="DOMActivateD" on the children of element action therefore causes element action to become the observer for the individual events. Consequently, these actions will never be triggered since events arrive at element trigger, not element action.

7.2 E4: model attribute is optional on reset, rebuild, recalculate, revalidate, and refresh actions (sections 10.1.11 and 10.1.3 to 10.1.6)

Current specification wording (in all the above sections except 10.1.11):

model

Required IDREF of the model to be processed.

Current specification wording, section 10.1.11 (The reset Element):

model

Required selection of instance data for reset, defined in 3.2.3 Single-Node Binding Attributes.

Changed specification wording:

model

Optional XForms Model selector, as defined in 3.2.3 Single-Node Binding Attributes.

See also:

10.1 E4b: model attribute is optional on reset, rebuild, recalculate, revalidate, and refresh actions (in XForms schema normatively referenced in Appendix A)

7.3 E8a: Host languages controls can get focus from xforms-focus (section 10.1.7)

Current specification wording:

This action sets focus to the form control identified by attribute control by dispatching an xforms-focus event

Changed specification wording:

This action dispatches an xforms-focus event to the element identified by attribute control.

See also:

2.2 E8b: Setting focus to a repeating structure sets the focus to the repeat item represented by the repeat index (section 4.3.2)

7.4 E22: <xforms:load show="replace"> is default value (section 10.1.8)

Current specification wording:

show

Optional link behavior specifier.

Changed specification wording:

show

Optional link behavior specifier. If this attribute is missing, a default value of "replace" is assumed.

See also:

10.2 E22b: <xforms:load show="replace"> is default value (in XForms schema normatively referenced in Appendix A)

7.5 E7: Evaluation Context for <setvalue> (section 10.1.9)

Current specification wording:

value

Optional XPath expression to evaluate, with the result stored in the selected instance data node.

Changed specification wording:

value

Optional XPath expression to evaluate, with the result stored in the selected instance data node. The evaluation context for this XPath expression is the result from the Single Node Binding.

8 Section 11

8.1 E16: xforms-submit event (section 11.1)

Current specification wording:

A node from the instance data is selected, based on attributes on the submission element. The indicated node and all nodes for which it is an ancestor are considered for the remainder of the submit process.

Changed specification wording:

A node from the instance data is selected, based on attributes on the submission element. The indicated node and all nodes for which it is an ancestor are considered for the remainder of the submit process. Any node which is considered not relevant as defined in 6.1.4 is removed.

8.2 E37: multiple concurrent submission for single submit not allowed (section 11.1)

Current specification wording:

Under no circumstances may more than a single concurrent submit process be under way for a particular XForms Model.

Changed specification wording:

Under no circumstances may more than a single concurrent submit process be under way for a particular XForms submission.

8.3 E45: Submission processing (section 11.1)

Current specification wording:

...

  • For a success response including a body of an XML media type... when the value of the replace attribute on element submission is "instance", the response is parsed as XML... and all of the internal instance data ... is replaced with the result, using the same processing as remote instance data retrieved through src, and the xforms-model-construct event is dispatched to element model. Submit processing then concludes after dispatching xforms-submit-done.

...

Changed specification wording:

...

  • For a success response including a body of an XML media type... when the value of the replace attribute on element submission is "instance", the response is parsed as XML. An xforms-link-exception occurs if the parse fails. If the parse succeeds, then all of the internal instance data ... is replaced with the result. Once the XML instance data has been replaced, the rebuild, recalculate, revalidate and refresh operations are performed on the model, without dispatching events to invoke those four operations. Submit processing then concludes after dispatching xforms-submit-done.

...

8.4 E69d: Instance replacement (section 11.1)

Current specification wording:

For a success response including a body of an XML media type... when the value of the replace attribute on element submission is "instance", the response is parsed as XML... and all of the internal instance data corresponding to the submitted instance is replaced...

Changed specification wording:

For a success response including a body of an XML media type... when the value of the replace attribute on element submission is "instance", the response is parsed as XML... and all of the internal instance data of the instance indicated by the instance attribute setting is replaced...

See also:

1.1 E69a: Instance replacement (section 3.3)
1.5 E69b: Instance replacement (section 3.3.3)
2.10 E69c: Instance replacement (section 4.5.1)

8.5 E50: Submission revalidation (section 11.1)

Remove specification wording:

Section 11.1 point 2 says that submission revalidates selected instance data "taking into account only namespace nodes considered for serialization as described at 3.3.3 The submission Element.."

Add specification wording:

All selected instance data nodes are checked for validity according to the definition in 4.3.5 The xforms-revalidate Event (no notification events are marked for dispatching due to this operation).

Current specification wording:

Any invalid instance data stops submit processing...

Change specification wording:

Any selected instance data node that is required but empty or found to be invalid stops submission processing...

8.6 E52: XML Media Type means having a content type defined in RFC 3023 (section 11.1)

Current specification wording:

For a success response including a body of an XML media type...

Changed specification wording:

For a success response including a body of an XML media type (as defined by the content type specifiers in [RFC 3023])...

Current specification wording:

For a success response including a body of a non-XML media type...

Changed specification wording:

For a success response including a body of a non-XML media type (i.e. with a content type not matching any of the specifiers in [RFC 3023])...

8.7 E39: Content-Type MAY be included instead of MUST (section 11.5)

Current specification wording:

Example: multipart/form-data
Content-Type: multipart/form-data; boundary=AaB03x
Content-Length: xxx
        
--AaB03x
Content-Disposition: form-data; name="document"; filename="b.txt"
Content-Type: text/plain; charset=iso-8859-1
This is a file.
It has two lines.
--AaB03x
Content-Disposition: form-data; name="title"
Content-Type: text/plain; charset=iso-8859-1
A File
--AaB03x
Content-Disposition: form-data; name="summary"
Content-Type: text/plain; charset=iso-8859-1
This is my file
file test
--AaB03x--

Changed specification wording:

Example: multipart/form-data
Content-Type: multipart/form-data; boundary=AaB03x
Content-Length: xxx
        
--AaB03x
Content-Disposition: form-data; name="document"; filename="b.txt"
Content-Type: text/plain; charset=iso-8859-1
This is a file.
It has two lines.
--AaB03x
Content-Disposition: form-data; name="title"
A File
--AaB03x
Content-Disposition: form-data; name="summary"
This is my file
file test
--AaB03x--

8.8 E62: Separator and application/x-www-form-urlencoded (section 11.6)

Current specification wording:

Element nodes selected for inclusion are encoded as EltName=value{sep}, where = is a literal character, {sep} is the separator character from the separator attribute on submission, EltName represents the element local name, and value represents the contents of the text node. Note that contextual path information is not preserved, nor are namespaces or namespace prefixes. As a result, different elements might serialize to the same name.

Example: application/x-www-form-urlencoded
GivenName=Ren%C3%A9;

This format consists of simple name-value pairs.

<PersonName title="Mr"> 
  <GivenName>René</GivenName> 
</PersonName>

Here is the instance data for the above example. Note that very little of the data is preserved. Authors desiring greater data integrity should select a different serialization format.

Changed specification wording:

Element nodes selected for inclusion are encoded as EltName=value, where = is a literal character, {sep} is the separator character from the separator attribute on submission, EltName represents the element local name, and value represents the contents of the text node. The separator character {sep} from the separator attribute on submission is used between pairs of encoded name/value pairs, e.g. EltName1=value1{sep}EltName2=value2{sep}EltName3=value3. Note that contextual path information is not preserved, nor are namespaces or namespace prefixes. As a result, different elements might serialize to the same name.

Example: application/x-www-form-urlencoded
GivenName=Ren%C3%A9;

This format consists of simple name-value pairs.

<PersonName title="Mr"> 
  <GivenName>René</GivenName> 
</PersonName>

Here is the instance data for the above example. Note that very little of the data is preserved. Authors desiring greater data integrity should select a different serialization format.

9 Section 13

9.1 E67b: Allowing XPath expressions in bindings (section 13)

Current specification wording:

Binding expression

An [XPath 1.0] PathExpr used in a binding.

Model Binding expression

An [XPath 1.0] PathExpr used in a binding that declares a model item property.

UI or Action Binding expression

An [XPath 1.0] PathExpr used in binding a form control to the instance, or to specify the node or node-set for operation by an action.

Changed specification wording:

Binding expression

An [XPath 1.0] expression used in a binding.

Model Binding expression

An [XPath 1.0] expression used in a binding that declares a model item property.

UI or Action Binding expression

An [XPath 1.0] expression used in binding a form control to the instance, or to specify the node or node-set for operation by an action.

See also:

4.3 E67a: Allowing XPath expressions in bindings (section 7.4)

10 Appendix A

10.1 E4b: model attribute is optional on reset, rebuild, recalculate, revalidate, and refresh actions (in XForms schema normatively referenced in Appendix A)

Current specification wording:

For attribute model definition in reset, rebuild, recalculate, revalidate and refresh elements:

<xsd:attribute name="model" type="xsd:IDREF" use="required">

Changed specification wording:

<xsd:attribute name="model" type="xsd:IDREF" use="optional">

See also:

7.2 E4: model attribute is optional on reset, rebuild, recalculate, revalidate, and refresh actions (sections 10.1.11 and 10.1.3 to 10.1.6)

10.2 E22b: <xforms:load show="replace"> is default value (in XForms schema normatively referenced in Appendix A)

Current specification wording:

For load element attribute show definition:

<xsd:attribute name="show" use="optional">

Changed specification wording:

<xsd:attribute name="show" use="optional" default="replace">

See also:

7.4 E22: <xforms:load show="replace"> is default value (section 10.1.8)

10.3 E54: Remove xf:minOccurs and xf:maxOccurs (in XForms schema normatively referenced in Appendix A)

Remove attributes minOccurs and maxOccurs from bind element definition:
<xsd:attribute name="maxOccurs" type="xforms:XPathExpression" use="optional" default="INF"/>
<xsd:attribute name="minOccurs" type="xforms:XPathExpression" use="optional" default="0"/> 

10.4 E71: The case element of a switch can be empty (in XForms schema normatively referenced in Appendix A)

Current specification wording:

For case element content definition:

<xsd:sequence maxOccurs="unbounded">

Changed specification wording:

<xsd:sequence minOccurs="0" maxOccurs="unbounded">

11 Appendix G

11.1 E26a: complexType does not have a name in example payschema.xsd (appendix G.1)

Current specification wording:
  <xsd:element name="payment">
    <xsd:complexType name="payment">
      <xsd:sequence minOccurs="0" maxOccurs="unbounded">
Changed specification wording:
  <xsd:element name="payment">
    <xsd:complexType>
      <xsd:sequence minOccurs="0" maxOccurs="unbounded">

See also:

11.2 E26b: Credit card datatype should be digits (appendix G.1)

11.2 E26b: Credit card datatype should be digits (appendix G.1)

Current specification wording:
  <xsd:simpleType name="cc">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="\s*((\d+)[-\s])+([\d]+)\s*" />
    </xsd:restriction>
  </xsd:simpleType>
Changed specification wording:
  <xsd:simpleType name="cc"> 
     <xsd:restriction base="xsd:string"> 
       <xsd:minLength value="12"/> 
       <xsd:maxLength value="19"/> 
       <xsd:pattern value="[0-9]+"/> 
     </xsd:restriction> 
  </xsd:simpleType>

See also:

11.1 E26a: complexType does not have a name in example payschema.xsd (appendix G.1)

12 References

12.1 Normative References

XML Base
XML Base, Jonathan Marsh, 2001. W3C Recommendation available at: http://www.w3.org/TR/xmlbase/.
RFC 3023
RFC 3023: XML Media Types, M Murata, S. St. Laurent, D. Kohn, 2001. Available at: http://www.ietf.org/rfc/rfc3023.txt.