12 Conformance

12.1 Conformance Levels

The XForms specification is designed for implementation on hardware platforms of all sizes, from tiny hand-held devices to high-powered servers. For this reason, there are two conformance levels for XForms Processors, documents, and generators (such as authoring tools): XForms Full and XForms Basic.

12.1.1 XForms Full

This conformance level is suitable for more powerful forms processing, such as might be found on a standard desktop browser or a server. XForms Full implementations must return "full" from the property method (defined at 7.8.1 The property() Function ) called with the "conformance-level" parameter string.

12.1.2 XForms Basic

This conformance level is suitable for devices with limited computing power, such as mobile phones, hand-held computers, and appliances. This conformance level uses a subset of XML Schema and does not include any resource-intensive features. XForms Basic implementations must return "basic" from the property method (defined at 7.8.1 The property() Function ) called with the "conformance-level" parameter string.

12.2 Conformance Description

12.2.1 Conforming XForms Processors

All XForms Processors must conform to the following specifications, except as qualified below:

All XForms Processors must fully support the following XForms modules: Core; MustUnderstand; Form Controls; Group; Switch; Repeat; and Action.

All XForms Processors must also support: the XForms Processing Model and all events listed at 4 Processing Model; the http scheme for processing xsd:anyURI; all serialization methods defined at 11 Submit.

A host language may introduce additional conformance requirements.

XForms Full Processors must implement all required features defined in this specification.

XForms Basic Processors must implement all required features defined in this specification, with the following exceptions:

  • XForms Basic Processors have undefined processing for XML Schema structures, other than the processing of the attribute xsi:type on instance data for simpleTypes only

  • XForms Basic Processors support only the XML Schema datatypes identified as Basic in 5 Datatypes; processing of all other XML Schema built-in datatypes is undefined

  • XForms Basic Processors may trigger an exception (4.5.1 The xforms-binding-exception Event) upon the use of any dynamic dependency in a UI binding expression.

  • XForms Basic Processors have undefined processing for the following XPath axes: following, following-sibling, preceding, preceding-sibling

  • XForms Basic Processors need not support IEEE floating point (as defined by the XPath datatype number), but must provide the same results in all mathematical operations to 14 decimal places of accuracy

  • XForms Basic Processors may define an implementation-defined limit to the size of a node-set processed in XPath expressions

  • XForms Basic Processors have undefined behavior for the | (node-set union) operator in XPath

  • XForms Basic Processors need not implement the dispatch XForms Action

  • XForms Basic Processors may use only XML Events Basic ([XML Events])

Issue (xpath-predicate-conformance):

The Working Group reqests feedback on whether the 'no dynamic predicates' restriction sufficiently restricts XPath to make implementation feasable on limited devices.

Resolution:

None recorded.

12.2.2 Conforming XForms Documents

All XForms Containing Documents must conform to the following specifications, except as qualified below:

XForms elements are typically inserted into a containing document in multiple places. The root element for each individual fragment must be model, a form control, group, repeat, or switch. Individual XForms fragments must be schema-valid against the Schema for XForms (A Schema for XForms).

A host language may introduce additional conformance requirements.

All XForms Full conforming documents must conform to all required portions of this specification.

All XForms Basic conforming documents must conform to all required portions of this specification, with the following restrictions:

  • XForms Basic documents must not use any processing from XML Schema structures (other than xsi:type used with simpleTypes)

  • XForms Basic documents must not use any XML Schema datatypes not identified as Basic in 5 Datatypes (This restriction also applies to datatypes derived from unsupported datatypes)

  • XForms Basic documents must not use any dynamic dependency in UI binding expressions.

  • XForms Basic documents must not use any of the following XPath axes: following, following-sibling, preceding, preceding-sibling

  • XForms Basic documents must not use the | (node-set union) operator in XPath

  • XForms Basic documents must not use the dispatch XForms Action

  • XForms Basic documents must conform to XML Events Basic ([XML Events])

12.2.3 Conforming XForms Generators

XForms Full generators must generate conforming XForms Basic and XForms Full documents, depending on the author's choice.

XForms Basic generators must generate only conforming XForms Basic documents.