XForms Specification Section |
Comment |
Conformance |
2. Introduction to XForms |
2.1 An Example |
|
Fully supported |
2.2 Providing XML Instance Data |
|
Fully supported |
2.3 Constraining Values |
Data entered by the end-user can be validated with a schema referenced from the the XForms
model, or with model item properties
(relevant, constraint, or type) defined in the
XForms model. However, it is not yet possible to have
an inline schema in the XForms model. It is also not possible to reference a type declared in a
schema from the type model item property.
[RFE 1076200]
[RFE 1076207]
|
Partially supported |
2.4 Multiple Forms per Document |
You can have multiple forms in a given page; however you can only have one
XForms model per page. If you have multiple forms on the same page, all the
controls on the page will be bound to the nodes in the same XForms instance.
[RFE 1076212]
[RFE 1076217]
|
Partially supported |
3. Document Structure |
3.1 The XForms Namespace |
|
Fully supported |
3.2 XForms Core Attribute Collections |
3.2.1 Common Attributes |
|
Fully supported |
3.2.2 Linking Attributes |
[RFE 1076243]
|
Not supported yet |
3.2.3 Single-Node Binding Attributes |
The ref and bind attributes are supported.
The model attribute is not supported.
[RFE 1076212]
|
Partially supported |
3.2.4 Node-Set Binding Attributes |
The nodeset and bind attributes are supported.
The model attribute is not supported.
[RFE 1076212]
|
Partially supported |
3.2.5 Model Item Property Attributes |
Model item properties are supported on the <xforms:bind>
elements but not on XForms controls. For details on support for individual
model item properties, see section 6.1.
[RFE 1076359]
|
Partially supported |
3.3 The XForms Core Module |
3.3.1 The model Element |
The <xforms:model> element cannot be used in a view.
The functions attribute is not supported. It is not possible
to reference multiple schemas with the schema attribute (only
one schema is supported.
[RFE 1076217]
[RFE 1076372]
[RFE 1076373]
|
Partially supported |
3.3.2 The instance Element |
|
Fully supported |
3.3.3 The submission Element |
Only the method, action, and
encoding attributes are supported. See section 11
for more details on the submission mechanism.
[RFE 1076217]
[RFE 1076380]
[RFE 1076381]
|
Partially supported |
3.3.4 The bind Element |
The id attribute on <xforms:bind> is
not supported.
[RFE 1059115]
|
Partially supported |
3.4 The XForms MustUnderstand Module |
[RFE 1076389]
|
Not supported yet |
3.5 The XForms Extension Module |
3.5.1 The extension Element |
The <extension> element can be used by a host language.
PresentationServer does not have any constraint on the host language
and since no language leverages this element, its use is forbidden at
this point. To adhere more closely to specification,
the <extension> element should be authorized and just
ignored.
[RFE 1076393]
|
Partially supported |
4 Processing Model |
Events are not supported. This means that it is not possible to
trigger the execution of an action (e.g. display a message dialog, or
set the value of a node in the instance to a certain value) when a
certain event occurs (e.g. the user changes the selected item in a combo
box, or enters an invalid value in a text field).
Even though events are not supported, it is still possible to
implement the same functionality on the server-side with Presentation
Server.
Consider for example a page with 2 controls: a combo box and a text
field. You want to display or hide a text field depending on the value
selected by the end-user in the combo box. When the end-user changes the
selection through the combo box, the instance gets updated with the
newly selected value. A relevant model item property
determines if the text field is to be displayed based the value selected
in the combo box.
With events, you can generate an xforms-refresh event when
the combo box selected value changes, which will reevaluate the
relevant model item property and appropriately hide or
display the text field.
Without events (in the current version of PresentationServer), you
attach to the combo box JavaScript that submits the form when the
selected value changes. On the server-side the instance gets updated,
the relevant model item property evaluated and accordingly
the text field is displayed or hidden. The two drawbacks in this case
are:
- a round-trip to the server is required
- the solution is not portable to other XForms implementations
|
Not supported yet |
5 Datatypes |
5.1 XML Schema Built-in Datatypes |
The specification indicates that an XForms engine must support
all XML Schema datatypes except for xsd:duration,
xsd:ENTITY, xsd:ENTITIES, and
xsd:NOTATION. PresentationServer supports all
XML Schema datatypes, including those.
[RFE 1078077]
|
Partially supported |
5.2 XForms Datatypes |
5.2.1 xforms:listItem |
XForms-specific datatypes are not supported. However you can use all the XML
Schema built-in datatypes.
[RFE 1078089]
|
Not supported yet |
5.2.2 xforms:listItems |
Not supported yet |
5.2.3 xforms:dayTimeDuration |
Not supported yet |
5.2.4 xforms:yearMonthDuration |
Not supported yet |
6 Model Item Properties |
6.1 Model Item Property Definitions |
6.1.1 The type Property |
In PresentationServer no error is triggered if the same model item
property is set twice on the same node. Also the inheritance rules for
model item properties are not supported. This applies to all the model item
properties (section 6.1).
[RFE 1078088]
[RFE 1078545]
|
Partially supported |
6.1.2 The readonly Property |
The default value for the readonly property is always
false (it should be true when a
calculate property is specified).
[RFE 1078092]
|
Partially supported |
6.1.3 The required Property |
PresentationServer does check that required elements do not have a
xsi:nil="true" attribute.
[RFE 1078528]
|
Partially supported |
6.1.4 The relevant Property |
When required="true()" and relevant="false()"
for a given node, and the node is empty, the engine should not
report this as an error.
[RFE 1078552]
|
Partially supported |
6.1.5 The calculate Property |
|
Partially supported |
6.1.6 The constraint Property |
|
Partially supported |
6.1.7 The p3ptype Property |
The model item property is not supported.
[RFE 1078562]
|
Not supported yet |
6.2 Schema Constraints |
6.2.1 Atomic Datatype |
Checking the type of an element based on the xsi:type
attribute on that element in the instance is not supported.
[RFE 1078567]
|
Partially supported |
7 XPath Expressions in XForms |
7.1 XPath Datatypes |
|
Fully supported |
7.2 Feature string for the hasFeature method call |
Exposing the instance with the DOM interface is not mandated by the
specification. In PresentationServer the instance is not exposed through
the DOM API, consequently the hasFeature method and all the
instance data methods cannot be used.
In PresentationServer, the model item properties computed by the XForms
engine (validity, type, ...) for the content of an element are exposed
to the user through attributes in the http://orbeon.org/oxf/xml/xforms
namespace, usually using the prefix xxforms.
[RFE 1008413]
|
Fully supported |
7.3 Instance Data |
Fully supported |
7.4 Evaluation Context |
|
Fully supported |
7.5 Binding Expressions |
7.5.1 Dynamic Dependencies |
According to the specification XPath expressions that create dynamic
dependencies should not be allowed as binding expression. Presentation
Server does not enforce this restriction, and any valid XPath
expression can be used as a binding expression.
[RFE 1078655]
|
Partially supported |
7.5.2 Model Binding Expressions |
|
Fully supported |
7.5.3 UI Binding Expressions |
|
Fully supported |
7.5.4 UI Binding in other XML vocabularies |
|
Fully supported |
7.5.5 Binding Examples |
|
Fully supported |
7.6 XForms Core Function Library |
|
Fully supported |
7.7 Boolean Functions |
7.7.1 The boolean-from-string() Function |
|
Fully supported |
7.7.2 The if() Function |
The if function defined by XForms clashes with the
if keyword of XPath 2.0. We recommend you use the XPath
2.0 if statement instead of the function. In case you want
to use the XForms function, it is available under the
name xfif. We are not planning to support the XForms
if function in future versions of PresentationServer, as
the future versions of the XForms specification are expected to use XPath 2.0
and consequently to deprecate the if function.
|
Partially supported |
7.8 Number Functions |
7.8.1 The avg() Function |
|
Fully supported |
7.8.2 The min() Function |
|
Fully supported |
7.8.3 The max() Function |
|
Fully supported |
7.8.4 The count-non-empty() Function |
|
Fully supported |
7.8.5 The index() Function |
The argument of the index function references and id defined on a
<xforms:repeat> element. With PresentationServer, it
is only valid to call the index function with an id
referencing a <xforms:repeat> element that is an
ancestor of the element from where the index function
is called.
[RFE 1078684]
|
Partially supported |
7.9 String Functions |
7.9.1 The property() Function |
|
Fully supported |
7.10 Date and Time Functions |
7.10.1 The now() Function |
|
Fully supported |
7.10.2 The days-from-date() Function |
|
Fully supported |
7.10.3 The seconds-from-dateTime() Function |
|
Fully supported |
7.10.4 The seconds() Function |
|
Fully supported |
7.10.5 The months() Function |
|
Fully supported |
7.11 Node-set Functions |
7.11.1 The instance() Function |
The instance() function is not supported as multiple
instances per document are not supported.
|
Not supported yet |
7.12 Extension Functions |
Extension functions are not supported.
[RFE 1078684]
|
Not supported yet |
8 Form Controls |
8.1 The XForms Form Controls Module |
8.1.1 Implementation Requirements Common to All Form Controls |
The inputmode and incremental attributes are not supported.
[RFE 1078708]
[RFE 1078709]
|
Partially supported |
8.1.2 The input Element |
|
Fully supported |
8.1.3 The secret Element |
|
Fully supported |
8.1.4 The textarea Element |
|
Fully supported |
8.1.5 The output Element |
The value attribute is not supported. The element cannot be
embedded inside a <xforms:label>,
<xforms:hint>, <xforms:help>,
<xforms:alert>, and <xforms:message>.
Instead, use the single node binding attributes available on those
elements.
[RFE 1078702]
[RFE 1078703]
|
Partially supported |
8.1.6 The upload Element |
The mediatype attribute is not supported. According to the
specification, you should only bind this control to
datatypes xs:anyURI, xs:base64Binary,
or xs:hexBinay, or types derived by restriction from them.
PresentationServer does not enforce this constraint.
[RFE 1078715]
[RFE 1078721]
|
Partially supported |
8.1.7 The range Element |
This control is not supported at this point.
[RFE 1078723]
|
Not supported yet |
8.1.8 The trigger Element |
This control is not supported at this point.
[RFE 1078725]
|
Not supported yet |
8.1.9 The submit Element |
PresentationServer does not mandate the presence of the
submission attribute.
[RFE 1078726]
|
Partially supported |
8.1.10 The select Element |
The control does not indicate an out-of-range condition if the value
in the instance have no corresponding choice item.
[RFE 1078733]
|
Partially supported |
8.1.11 The select1 Element |
|
Fully supported |
8.2 Common Markup for Selection Controls |
8.2.1 The choices Element |
|
Fully supported |
8.2.2 The item Element |
|
Fully supported |
8.2.3 The value Element |
PresentationServer does not enforce that the value is valid according
to the datatype bound to the selection control.
[RFE 1080092]
|
Partially supported |
8.3 Additional Elements |
8.3.1 The filename Element |
|
Fully supported |
8.3.2 The mediatype Element |
|
Fully supported |
8.3.3 The label Element |
|
Fully supported |
8.3.4 The help Element |
|
Fully supported |
8.3.5 The hint Element |
|
Fully supported |
8.3.6 The alert Element |
|
Fully supported |
9 XForms User Interface |
9.1 The XForms Group Module |
9.1.1 The group Element |
Labels on groups are ignored (i.e. no special rendering is provided).
[RFE 1080099]
|
Fully supported |
9.2 The XForms Switch Module |
9.2.1 The switch Element |
[RFE 1056474]
|
Not supported yet |
9.2.2 The case Element |
Not supported yet |
9.2.3 The toggle Element |
Not supported yet |
9.3 The XForms Repeat Module |
9.3.1 The repeat Element |
|
Fully supported |
9.3.2 Creating Repeating Structures Via Attributes |
Using attributes instead of elements to create repeating structures is
not supported. Note that this is useful only when the host language does
not permit XForms elements, which does not happen in PresentationServer.
[RFE 1080102]
|
Not supported yet |
9.3.3 The itemset Element |
|
Fully supported |
9.3.4 The copy Element |
The <xforms:copy> only copies simple content, not subtree of data
[RFE 1080107]
|
Partially supported |
9.3.5 The insert Element |
Nodes of type xs:ID are not modified to remain unique
values in the instance after the insertion.
[RFE 1080113]
|
Partially supported |
9.3.6 The delete Element |
|
Fully supported |
9.3.7 The setindex Element |
The setindex action is not supported.
[RFE 1080117]
|
Not supported yet |
9.3.8 Repeat Processing |
|
Fully supported |
9.3.9 Nested Repeats |
|
Fully supported |
9.3.10 User Interface Interaction |
|
Fully supported |
10 XForms Actions |
10.1 The XForms Action Module |
10.1.1 The action Element |
[RFE 1080124]
|
Not supported yet |
10.1.2 The dispatch Element |
[RFE 1080125]
|
Not supported yet |
10.1.3 The rebuild Element |
[RFE 1080126]
|
Not supported yet |
10.1.4 The recalculate Element |
[RFE 1080128]
|
Not supported yet |
10.1.5 The revalidate Element |
[RFE 1080129]
|
Not supported yet |
10.1.6 The refresh Element |
[RFE 1080130]
|
Not supported yet |
10.1.7 The setfocus Element |
[RFE 1080131]
|
Not supported yet |
10.1.8 The load Element |
[RFE 1080132]
|
Not supported yet |
10.1.9 The setvalue Element |
|
Fully supported |
10.1.10 The send Element |
[RFE 1080133]
|
Not supported yet |
10.1.11 The reset Element |
[RFE 1080134]
|
Not supported yet |
10.1.12 The message Element |
Only modal level is supported.
[RFE 1080143]
|
Partially supported |
10.1.13 Actions insert, delete and setindex |
|
Fully supported |
11 Submit |
11.1 The xforms-submit Event |
[RFE 1080151]
|
Not supported yet |
11.2 Submission Options |
|
Fully supported |
11.3 Serialization as application/xml |
The serialization and method attributes are
supported in PresentationServer but their semantic is different than
the one described in the specification. In PresentationServer your back
end code always receives the instance data as XML (in general as the
input to a pipeline), regardless of the encoding or method used between
the Web browser and the server. However you might want to set one or
both of those attributes to get around the limitations of a particular
serialization/method or use a particular serialization/method that is
best suited in your case.
By default the method is get and the serialization is
application/x-www.form-urlencoded. In general, you might
want to change the method to post to bypass URL length
limitation of certain browsers, and you have to use the
multipart/form-data if your form contains an upload
control.
|
Partially supported |
11.4 Serialization as multipart/related |
Partially supported |
11.5 Serialization as multipart/form-data |
Partially supported |
11.6 Serialization as application/x-www-form-urlencoded |
Partially supported |
11.7 The post, multipart-post, form-data-post, and urlencoded-post Submit Methods |
Partially supported |
11.8 The put Submit Method |
Partially supported |
11.9 The get Submit Method |
Partially supported |