XForms - Orbeon Forms XForms 1.1 Implementation Report / Compliance Matrix (Work in Progress!)

XForms 1.1

NOTE: As of February 16 2009, we haven't yet run all of the XForms 1.1 test suite. However, during an XForms Working Group session, we have focused on trying out some tests that not many implementations passed, which explains the relatively high rate of failure.

TODO:
  • Add placeholders for tests starting 5.2.1.a and following
  • Run missing tests!

Main features of XForms 1.1 which Orbeon Forms does not yet support

  • nested elements to dynamically specify attribute values (but we offer AVTs as an alternative)
  • xsi:type for validation purposes (but we do for determining a control type or for submissions)
  • xforms:copy
  • multiple schemas per model
  • lazy instance construction
  • incremental="false" on selection controls

Legend

  • F Full Support, confirmed
  • NC Not confirmed
  • P Partial Support, confirmed
  • U Not yet implemented
Ref Item Status Comments XForms 1.1 test Suite
       validation of xsd:gYearMonth seems to fail (XF11_2_3_a_Test with test testCreditCard) 2.1.a:
2.2.a: PASS
2.3.a: FAIL
2.4.a: FAIL
3 Document Structure


3.1 Namespace for XForms F OF uses the standard XForms namespace. 3.1.a: PASS
3.2 XForms Core Attribute Collections P
3.2.1.a: PASS
3.2.1.b: PASS
3.2.1 Common Attributes P Full support for @id and foreign attributes. Arguably missing: support for xml:id.
3.2.2 Linking Attributes F Support for @src attribute on xforms:instance and other elements like xforms:label, etc. 3.2.2.a: PARTIAL (we support )
3.2.3 Single-Node Binding Attributes P Full support except the following:
  • "It is an exception (4.5.1 The xforms-binding-exception Event) if the XForms Processor encounters a model attribute IDREF value that refers to an ID not on a model element, or a bind attributeIDREF value that refers to an ID not on a bind element.
3.2.3.a: PASS
3.2.3.b: PASS
3.2.3.c: PASS
3.2.3.d: FAIL (bind should override model attribute)
3.2.3.e: FAIL
3.2.3.f:  FAIL
3.2.3.g: PASS
3.2.4 Node-Set Binding Attributes P Full support except the following:
  • "It is an exception (4.5.1 The xforms-binding-exception Event) if the XForms Processor encounters a model attribute IDREF value that refers to an ID not on a model element, or a bind attributeIDREF value that refers to an ID not on a bind element."
3.2.4.a: PASS
3.2.4.b: PASS
3.2.4.c: PASS
3.2.4.d:
3.2.4.e:
3.2.4.f:
3.2.5 Model Item Property Attributes F See 6.1

3.3 The XForms Core Module P
3.3.a: PASS
3.3.1 The model Element P
  • Unknown: "Attributes from XML Events are allowed on this element to facilitate creating observers"
  • Limitation: only one XML schema per model supported
  • Limitation: internal schema reference using #my-schema not supported
  • Version: no exception is dispatched
3.3.1.a1: PASS
3.3.1.a2: PASS (but we don't actually process any XForms in this case!)
3.3.1.b:
3.3.1.c1: PASS
3.3.1.c2:
3.3.1.d1: PASS
3.3.1.d2:
3.3.1.d3:
3.3.2 The instance Element P
  • Limitation: internal instance reference using #my-instance not supported
  • Limitation: comment nodes are not preserved for inline instances
3.3.2.a: PASS
3.3.2.b: PASS
3.3.2.c: PASS
3.3.2.d: PASS
3.3.2.e: PASS
3.3.2.f: PASS
3.3.2.g: PASS
3.3.2.h: PASS (revised test, see email to WG)
3.3.3 The submission Element
See #11
3.3.4 The bind Element F See #6 3.3.4.a: PASS
3.3.4.b: PASS (revised test)
3.4 The XForms Extension Module U


3.4.1 The extension Element U
3.4.1.a: PASS
3.5 The XForms MustUnderstand Module F NOTE: Nothing to do!
4 Processing Model


4.1 Events Overview NC

4.2 Initialization Events NC

4.2.1 The xforms-model-construct Event NC
4.2.1.a: PASS
4.2.1.b1:
4.2.1.b2:
4.2.1.c1: PASS
4.2.1.c2: PASS
4.2.1.c3: PASS
4.2.1.d: PASS

4.2.2 The xforms-model-construct-done Event NC
4.2.2.a: PASS
4.2.2.b: PASS
4.2.2.c1: PASS
4.2.2.c2: FAIL (we don't implement lazy instance construction)
4.2.3 The xforms-ready Event NC
4.2.3.a: PASS
4.2.4 The xforms-model-destruct Event NC
4.2.4.a.:
4.3 Interaction Events NC

4.3.1 The xforms-rebuild Event NC
4.3.1.a: PASS
4.3.2 The xforms-recalculate Event NC
4.3.2.a: PASS
4.3.3 The xforms-revalidate Event NC
4.3.3.a: PASS
4.3.4 The xforms-refresh Event NC
4.3.4.a: PASS
4.3.5 The xforms-reset Event NC
4.3.5.a: PASS
4.3.6 The xforms-next and xforms-previous Events NC
4.3.6.a:
4.3.6.b [NON-NORMATIVE] : PARTIAL (issue w/ controls with value "0")
4.3.7 The xforms-focus Event NC
4.3.7.a:
4.3.7.b:
4.3.8 The xforms-help and xforms-hint Events NC
4.3.8.a:

4.3.9 The xforms-submit Event NC See #11.2

4.3.10 The xforms-submit-serialize Event NC

4.4 Notification Events NC

4.4.1 The xforms-insert Event NC
4.4.1.a:
4.4.2 The xforms-delete Event NC
4.4.2.a:
4.4.3 The xforms-value-changed Event NC
4.4.3.a:

4.4.4 The xforms-valid Event NC
4.4.4.a:
4.4.5 The xforms-invalid Event NC
4.4.5.a:
4.4.6 The xforms-readonly Event NC
4.4.6.a:
4.4.7 The xforms-readwrite Event NC
4.4.7.a:
4.4.8 The xforms-required Event NC
4.4.8.a:
4.4.9 The xforms-optional Event NC
4.4.9.a:
4.4.10 The xforms-enabled Event NC
4.4.10.a:
4.4.11 The xforms-disabled Event NC
4.4.11.a:
4.4.12 The DOMActivate Event NC
4.4.12.a:
4.4.13 The DOMFocusIn Event NC
4.4.13.a:
4.4.14 The DOMFocusOut Event NC
4.4.14.a:
4.4.15 The xforms-select and xforms-deselect Events NC
4.4.15.a:
4.4.16 The xforms-in-range Event NC
4.4.16.a:
4.4.17 The xforms-out-of-range Event NC
4.4.17.a:
4.4.18 The xforms-scroll-first and xforms-scroll-last Events NC
4.4.18.a:
4.4.19 The xforms-submit-done Event NC

4.4.21
       4.4.21.a:
4.5 Error Indications NC

4.5.1 The xforms-binding-exception Event NC
4.5.1.a1:
4.5.1.a2:
4.5.1.a3:
4.5.1.a4:
4.5.1.a5:

4.5.2 The xforms-compute-exception Event NC
4.5.2.a: FAIL because we don't dispatch xforms-compute-exception [EASY TO FIX]
4.5.3 The xforms-link-error Event NC
4.5.3.a: [TEST REMOVED BY WORKING GROUP]
4.5.4 The xforms-link-exception Event NC
4.5.4.a: FAIL because we haven't yet initialized the other instance when xforms-link-error is dispatched [EASY TO FIX WITH REVISED TEST]
4.5.5 The xforms-output-error Event NC
4.5.5.a: FAIL, we don't dispatch xforms-output-error
4.5.6 The xforms-submit-error Event - See 11.5
4.5.7 The xforms-version-exception Event NC
4.5.7.a: FAIL because we don't check the version
4.6 Event Sequencing NC

4.6.1 For input, secret, textarea, range, or upload Controls NC
4.6.1.a1:
4.6.1.a2: PARTIAL (fails for xf:upload, works for xf:range)
4.6.1.b1:
4.6.1.b2:
4.6.2 For output Controls NC

4.6.3 For select or select1 Controls NC
4.6.3.a: PASS
4.6.3.b: FAIL (we don't support incremental="false" on selection controls)
4.6.3.c: FAIL (we don't support incremental="false" on selection controls)
4.6.4 For trigger Controls NC
4.6.4.a:
4.6.5 For submit Controls NC
4.6.5.a:

4.6.6 Sequence: Selection Without Value Change NC

4.6.7 Sequence: Value Change NC

4.6.8 Sequence: Activating a Trigger NC

4.6.9 Sequence: Submission NC

4.7 Resolving ID References in XForms NC
4.7.a:
4.7.b:
4.7.c:
4.7.d:
4.7.e1:
4.7.e2:
4.7.e3:
4.7.1 References to Elements within a repeat Element NC


4.7.2 References to Elements within a bind Element NC

4.8 DOM Interface for Access to Instance Data NC OPTIONAL, NOT IMPLEMENTED N/A
4.8.1 The getInstanceDocument() Method NC OPTIONAL, NOT IMPLEMENTED 4.8.1.a: N/A
4.8.1.b: N/A
4.8.2 The rebuild() Method NC OPTIONAL, NOT IMPLEMENTED N/A
4.8.3 The recalculate() Method NC OPTIONAL, NOT IMPLEMENTED N/A
4.8.4 The revalidate() Method NC OPTIONAL, NOT IMPLEMENTED N/A
4.8.5 The refresh() Method NC OPTIONAL, NOT IMPLEMENTED N/A
4.9 Feature string for the hasFeature method call NC

5 Datatypes


5.1 XML Schema Built-in Datatypes NC
5.1.a: FAIL because we don't interpret xsi:type properly on instance element nodes
5.1.b:
5.1.c:
5.1.d:
5.2 XForms Datatypes NC

5.2.1 Additional XForms Datatypes to Allow Empty Content NC


5.2.2 xforms:listItem NC

5.2.3 xforms:listItems NC

5.2.4 xforms:dayTimeDuration NC
5.2.4.a: FAIL because we mark the value as invalid (why? regexp incorrect?)
5.2.5 xforms:yearMonthDuration NC

5.2.6 xforms:email NC

5.2.7 xforms:card-number NC
5.2.7.b: PASS
6 Model Item Properties NC

6.1 Model Item Property Definitions NC

6.1.1 The type Property NC

6.1.2 The readonly Property NC

6.1.3 The required Property NC

6.1.4 The relevant Property NC


6.1.5 The calculate Property NC

6.1.6 The constraint Property NC

6.1.7 The p3ptype Property NC
6.1.7.a: PASS
6.2 Schema Constraints NC

6.2.1 Atomic Datatype NC

7 XPath Expressions in XForms



7.1 XPath Datatypes NC

7.2 Evaluation Context NC

7.3 References, Dependencies, and Dynamic Dependencies NC

7.4 Expression Categories NC

7.4.2 Model Binding Expressions and Computed Expressions NC

7.4.3 Expressions in Actions and Submissions NC


7.4.4 UI Expressions NC

7.4.5 UI Binding in other XML vocabularies NC

7.4.6 Binding Examples NC

7.5 The XForms Function Library NC
7.5.a: PASS by dispatching event and throwing exception (after test was fixed)
7.5.b: FAIL: test is wrong, and we don't dispatch anyway
7.6 Boolean Functions NC

7.6.1 The boolean-from-string() Function NC


7.6.2 The is-card-number() Function NC

7.7 Number Functions NC

7.7.1 The avg() Function NC

7.7.2 The min() Function NC

7.7.3 The max() Function NC

7.7.4 The count-non-empty() Function NC


7.7.5 The index() Function NC

7.7.6 The power() Function NC

7.7.7 The random() Function NC
7.7.7a: PASS
7.7.8 The compare() Function NC

7.8 String Functions NC

7.8.1 The if() Function NC


7.8.2 The property() Function NC

7.8.3 The digest() Function NC
7.8.3.a: PASS
7.8.4 The hmac() Function NC
7.8.4a: FAIL, we don't implement hmac() [EASY TO FIX]
7.9 Date and Time Functions NC

7.9.1 The local-date() Function NC

7.9.2 The local-dateTime() Function NC


7.9.3 The now() Function NC

7.9.4 The days-from-date() Function NC

7.9.5 The days-to-date() Function NC

7.9.6 The seconds-from-dateTime() Function NC

7.9.7 The seconds-to-dateTime() Function NC

7.9.8 The adjust-dateTime-to-timezone() Function NC


7.9.9 The seconds() Function NC

7.9.10 The months() Function NC

7.10 Node-set Functions NC

7.10.1 The instance() Function NC

7.10.2 The current() Function NC

7.10.3 The id() Function NC
7.10.3.b: FAIL, we don't implement id() correctly

7.10.4 The context() Function NC

7.11 Object Functions NC

7.11.1 The choose() Function NC

7.11.2 The event() Function NC
7.11.2.b: [TEST REMOVED BY WORKING GROUP]
7.12 Extension Functions NC

8 Core Form Controls



8.1 The XForms Core Form Controls Module NC

8.1.1 Implementation Requirements Common to All Form Controls NC

8.1.2 The input Element NC

8.1.3 The secret Element NC

8.1.4 The textarea Element NC

8.1.5 The output Element NC


8.1.5.1 The mediatype Element (for output) NC

8.1.6 The upload Element NC

8.1.6.1 The filename Element NC

8.1.6.2 The mediatype Element (for upload) NC

8.1.7 The range Element NC

8.1.8 The trigger Element NC


8.1.9 The submit Element NC

8.1.10 The select Element NC

8.1.11 The select1 Element NC

8.2 Common Support Elements NC

8.2.1 The label Element NC

8.2.2 The help Element NC


8.2.3 The hint Element NC

8.2.4 The alert Element NC

8.3 Common Markup for Selection Controls NC

8.3.1 The choices Element NC

8.3.2 The item Element NC

8.3.3 The value Element NC


9 Container Form Controls


9.1 The XForms Group Module NC

9.1.1 The group Element NC

9.2 The XForms Switch Module NC

9.2.1 The switch Element NC
9.2.1.a2: PASS
9.2.2 The case Element NC


9.3 The XForms Repeat Module NC

9.3.1 The repeat Element NC

9.3.2 Nested Repeats NC

9.3.3 Repeat Processing NC

9.3.4 User Interface Interaction NC

9.3.5 Creating Repeating Structures Via Attributes NC


9.3.6 The itemset Element NC

9.3.7 The copy Element NC
9.3.7b: FAIL, because we don't implement xforms:copy
10 XForms Actions


10.1 The action Element NC

10.2 The setvalue Element NC

10.3 The insert Element NC
10.3.h
10.3.j: FAIL but because test is incorrect!
OK
10.4 The delete Element NC
10.4.a: PASS
10.4.b: FAIL because of issue w/ @bind vs. @context [EASY TO FIX]
10.4.d: PASS
10.4.f: PASS
10.4.g: PARTIAL because we don't show messages upon init
10.5 The setindex Element NC

10.6 The toggle Element NC

10.6.1 The case Element Child of the toggle Element NC
10.6.1.a: FAIL because we don't support child element [EASY TO FIX]
10.6.1.b: FAIL because we don't support child element [EASY TO FIX]
10.7 The setfocus Element NC
10.7.1.a: FAIL because we don't support child element [EASY TO FIX]
10.7.1.b: FAIL because we don't support child element [EASY TO FIX]
10.7.1 The control Element Child of the setfocus Element NC


10.8 The dispatch Element NC

10.8.1 The name Child Element NC
10.8.1.c: FAIL because we don't support child element [EASY TO FIX]
10.8.2 The target Child Element NC
10.8.2.c: FAIL because we don't support child element [EASY TO FIX]
10.8.3 The delay Child Element NC
10.8.3.c: FAIL because we don't support child element [EASY TO FIX]
10.9 The rebuild Element NC

10.10 The recalculate Element NC


10.11 The revalidate Element NC

10.12 The refresh Element NC

10.13 The reset Element NC

10.14 The load Element NC
10.14.c: [TEST REMOVED BY WORKING GROUP]
10.14.1 The resource Element child of load NC
10.14.1.b: FAIL because we don't support child element [EASY TO FIX]
10.15 The send Element NC


10.16 The message Element NC

10.17 Conditional Execution of XForms Actions NC

10.18 Iteration of XForms Actions NC

10.19 Actions from Other Modules NC

11 The XForms Submission Module

-
11.1 The submission Element NC
-

11.2 The xforms-submit Event NC
11.2.a: PASS
11.2.b: PASS
11.2.c: FAIL because no xforms-submit-error sent [EASY TO FIX]
11.2.d: FAIL because no xforms-submit-error sent [EASY TO FIX]
11.2.e: FAIL because we dont honor xsi:type
11.3 The xforms-submit-serialize Event NC
11.3.a: PASS
11.3.b: FAIL because getting incorrect data
11.4 The xforms-submit-done Event NC
11.4.a: PASS
11.4.b: PASS
11.5 The xforms-submit-error Event P Everything except "response-reason-phrase" 11.5.a: PASS
11.5.b: FAIL because getting incorrect error name [EASY TO FIX]
11.6 The Submission Resource NC

11.6.1 The resource Element NC
11.6.1.a [NON-NORMATIVE]: FAIL because we don't support child element [EASY TO FIX, but also uses submission to local file]
11.6.1.b [NON-NORMATIVE]: FAIL because we don't support child element [EASY TO FIX, but also uses submission to local file]

11.7 The Submission Method NC

11.7.1 The method Element NC
11.7.1.a: FAIL because we don't support child element [EASY TO FIX]
11.8 The header Element NC
11.8.a: PASS
11.8.b: FAIL because only one header is sent [EASY TO FIX?]
11.8.c: FAIL because only last value is sent [EASY TO FIX?]
11.8.1 The name Element NC
11.8.1.a: PASS
11.8.1.b: FAIL because we get an exception [EASY TO FIX]
11.8.2 The value Element NC
11.8.2.a: PASS
11.9 Submission Options NC Limitations:
  • multipart/related not implemented yet
  • no support for mailto: or file: protocols (neither of which are mandatory per the spec)
11.9.a: PASS
11.9.b: PASS
11.9.c: PASS
11.9.d: FAIL because mutlipart-post is not yet implemented
11.9.e: PASS
11.9.f: PASS
11.9.g: PASS
11.9.h: PASS
11.9.i: PASS
11.9.j: FAIL because mutlipart-post is not yet implemented
11.9.k: PASS
11.9.l: PASS
11.9.m [NON-NORMATIVE]: FAIL because mailto: is not yet implemented
11.9.n [NON-NORMATIVE]: FAIL because we don't support file: GET
11.9.o [NON-NORMATIVE]: FAIL because we don't support file: PUT
11.9.p [NON-NORMATIVE]: FAIL because mailto: is not yet implemented
11.9.q [NON-NORMATIVE]: FAIL because mailto: is not yet implemented
11.9.r [NON-NORMATIVE]: FAIL because mailto: is not yet implemented

11.9.1 The get Submission Method NC
11.9.1.a: PASS
11.9.2 The post, multipart-post, form-data-post, and urlencoded-post Submission Methods NC
11.9.2.a: PASS
11.9.2.b: FAIL because mutlipart-post is not yet implemented
11.9.2.c: PASS
11.9.2.d: PASS
11.9.3 The put Submission Method NC
11.9.3.a: PASS
11.9.3.b [NON-NORMATIVE]: FAIL because we don't support writing to the file: protocol
11.9.4 The delete Submission Method NC
11.9.4.a: PASS
11.9.4.b [NON-NORMATIVE]: FAIL because we don't support writing to the file: protocol
11.9.5 Serialization as application/xml NC
11.9.5.a: PASS
11.9.6 Serialization as multipart/related NC
11.9.6.a: FAIL because mutlipart/related is not yet implemented
11.9.7 Serialization as multipart/form-data NC Limitations:
  • xs:hexBinary is not supported, only xs:base64Binary is
11.9.7.a: PASS
11.9.8 Serialization as application/x-www-form-urlencoded NC
11.9.8.a: PASS
11.10 Replacing Data with the Submission Response NC
11.10.a: FAIL because we don't support @target with replace="instance"
11.10.b: FAIL because we don't support @target with replace="instance"
11.10.c: FAIL because we don't support @target with replace="instance"
11.11 Integration with SOAP NC
-
11.11.1 Representation of SOAP Envelope NC
11.11.1.a: PASS
11.11.2 Indicating a SOAP submission NC
11.11.2.a: FAIL because test is probably incorrect [SHOULD PASS ONCE TEST IS FIXED]

11.11.3 SOAP HTTP Binding NC
11.11.3.a: PASS
11.11.3.b: FAIL because we don't test on SOAP version [SHOULD BE EASY TO FIX]
11.11.3.c: PASS
11.11.3.d: FAIL because we don't set the encoding  [SHOULD BE EASY TO FIX]
11.11.3.e: FAIL because we don't set the encoding and we don't test on SOAP version [SHOULD BE EASY TO FIX]
11.11.4 Handling the SOAP Response NC
11.11.4.a: PASS
11.11.4.b: PASS


Comments