Copyright © 2006 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.
This document records known errors in the XForms 1.0 Recommendation. http://www.w3.org/TR/2003/REC-xforms-20031014/.
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
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)
Note:
All data relevant to the XPath data model must be preserved during processing and submission, including processing instructions, comment nodes and all whitespace.
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.
Required destination URI for submitting instance data.
Behavior of relative URIs in links is determined by the host language, although [XML Base] processing is strongly recommended.
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)
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.
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.
Dispatched by the containing document processor to bootstrap XForms Processor initialization.
Dispatched to each XForms model by the XForms processor.
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.
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)
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
.
The default action for this event results in the following:
All UI bindings should be reevaluated as necessary.
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.
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).
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.
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)
The default action for this event results in the following:
The default handling for this event must satisfy the following conditions:
All instance data nodes in all instance
elements in the model
are checked against any
specified XML Schema.
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).
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.
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.
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)
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.
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)
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.
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.
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.
Dispatched in response to: a change to an instance data node bound to a form control.
This event is dispatched during xforms-refresh if the bound instance data node has been marked for dispatching this event due to a change.
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
.
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).
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
.
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).
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 ...
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).
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 ...
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).
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 ...
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).
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 ...
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).
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 ...
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).
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 ...
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).
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...
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)
<itemset>
.Current specification wording:Target: item
or case
Target: item
or itemset
or case
Target: model
Target: submission
The xforms-submit-error is targeted at the submission
element.
, 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)
Sequence: Value Change with Focus Change
xforms-recalculate
xforms-revalidate
[n] xforms-valid/xforms-invalid; xforms-enabled/xforms-disabled; xforms-optional/xforms-required; xforms-readonly/xforms-readwrite
xforms-value-changed
DOMFocusOut
DOMFocusIn
xforms-refresh
Reevaluation of binding expressions must occur before step 3 above.
Sequence: Value Change
xforms-recalculate
xforms-revalidate
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
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)
Legal Values: Any xsd:QName
representing a datatype definition in an XML Schema.
Legal Values: Any xsd:QName
representing a datatype definition.
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.
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)
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.
<select1 ref="@attr" ... />
Changed specification wording:
<select1 ref="@attr" ... > <label>...</label> </select1>
See also:
6.7 E31b: labels are mandatory on input elements (section 9.3.1)
(using the "path" portion of XPath)
See also:
9.1 E67b: Allowing XPath expressions in bindings (section 13)
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).
If the parameter string matches none of the above strings, according to a case-insensitive comparison, the return value will be false
.
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
.
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
.
If the specified argument does not identify a repeat
, processing
stops with an exception (4.5.4 The xforms-compute-exception Event).
If the specified argument does not identify a repeat
it returns NaN
.
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
.
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)
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
.
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:
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
.
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
.
Optional attribute to define an appearance hint.
Optional attribute to define an appearance hint. If absent, the user agent may freely choose any suitable rendering.
An XPath expression to be evaluated. The result of the evaluation is rendered by the form control.
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.
<message level="modeless" ev:event="xforms-help" ev:propagate="stop>
<message level="modeless" ev:event="xforms-help" ev:propagate="stop">
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.
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)
This element contains one or more case elements, any one of which is rendered at a given time.
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)
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
.
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)
This action adjusts all selected
attributes on the affected cases
to reflect the new state, and then performs the following:
This action adjusts all selected states (not the attribute values) on the affected case
s 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)
Required reference to a case
section inside the conditional construct.
Required reference to a case
element.
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.
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)
<repeat nodeset="/cart/items/item"> <input ref="." ... /><html:br/> </repeat>
<repeat nodeset="/cart/items/item"> <input ref="." ...> <label>...</label> </input> <html:br/> </repeat>
<!-- 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)
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)
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.
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.
... cloning the final member of the homogeneous collection specified by the initialization instance data.
... 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)
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.
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)
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.
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)
nodeset
(section 9.3.5 and section 9.3.6)The homogeneous collection to be updated is determined by evaluating the
binding attribute nodeset
.
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.
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.
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:
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 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.
The indexes for inner nested repeat collections are re-initialized to 1.
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)
nodeset
(section 9.3.8)Attribute nodeset
is evaluated to locate the homogeneous collection to be operated on by this repeat.
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)
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)
3. The index for this repeating structure is initialized to the value of startindex
.
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)
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)
Action action
is used to group multiple actions.
This action causes its child actions to be invoked in the order that they are specified in the document.
When using element action
to group actions, care should be taken to
list the event on element action
, rather than on the contained actions.
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
.
Required IDREF of the model to be processed.
Required selection of instance data for reset, defined in 3.2.3 Single-Node Binding Attributes.
Optional XForms Model selector, as defined in 3.2.3 Single-Node Binding Attributes.
See also:
xforms-focus
(section 10.1.7)This action sets focus to the form control identified by attribute control
by dispatching an xforms-focus
event
This action dispatches an xforms-focus
event to the element
identified by attribute control
.
See also:
Optional link behavior specifier.
Optional link behavior specifier. If this attribute is missing, a default value of "replace" is assumed.
See also:
Optional XPath expression to evaluate, with the result stored in the selected instance data node.
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.
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.
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.
Under no circumstances may more than a single concurrent submit process be under way for a particular XForms Model.
Under no circumstances may more than a single concurrent submit process be under way for a particular XForms submission.
...
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
.
...
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
.
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...
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)
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.."
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).
Any invalid instance data stops submit processing...
Any selected instance data node that is required but empty or found to be invalid stops submission processing...
For a success response including a body of an XML media type...
For a success response including a body of an XML media type (as defined by the content type specifiers in [RFC 3023])...
For a success response including a body of a non-XML media type...
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])...
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--
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--
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.
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.
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.
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.
An [XPath 1.0] PathExpr used in a binding.
An [XPath 1.0] PathExpr used in a binding that declares a model item property.
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.
An [XPath 1.0] expression used in a binding.
An [XPath 1.0] expression used in a binding that declares a model item property.
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)
For attribute model definition in reset, rebuild, recalculate, revalidate and refresh elements:
<xsd:attribute name="model" type="xsd:IDREF" use="required">
<xsd:attribute name="model" type="xsd:IDREF" use="optional">
See also:
For load element attribute show definition:
<xsd:attribute name="show" use="optional">
<xsd:attribute name="show" use="optional" default="replace">
See also:
7.4 E22: <xforms:load show="replace"> is default value (section 10.1.8)
<xsd:attribute name="maxOccurs" type="xforms:XPathExpression" use="optional" default="INF"/> <xsd:attribute name="minOccurs" type="xforms:XPathExpression" use="optional" default="0"/>
For case element content definition:
<xsd:sequence maxOccurs="unbounded">
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:element name="payment"> <xsd:complexType name="payment"> <xsd:sequence minOccurs="0" maxOccurs="unbounded">
<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)
<xsd:simpleType name="cc"> <xsd:restriction base="xsd:string"> <xsd:pattern value="\s*((\d+)[-\s])+([\d]+)\s*" /> </xsd:restriction> </xsd:simpleType>
<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)