Status Details
This page describes the current status of the XForms implementation for Mozilla. That is, code built from current CVS or found in the nightly XPI builds of Firefox.
Limitations and Extensions
The current limitations in the extension, and the custom extension to the XForms 1.1 specification we have can be found on Mozilla Developer Central.
Specification Chapter Index
Here we give an overview of XForms 1.1 specification chapters and the current status of the Mozilla support. The sections are marked with their current status: Supported, partial support, in progress, and not currently supported.
We have listed the most relevant bugs here, but check out the Bugzilla XForms buglist for the complete list.
Section |
Title |
Status |
Notes |
Bugs |
3.1 |
Namespaces |
supported |
|
|
3.2.1 |
Common Attributes |
supported |
|
|
3.2.2 |
Linking Attributes |
supported |
|
|
3.2.3 |
Single-Node Binding Attributes |
supported |
|
|
3.2.4 |
Node-Set Binding Attributes |
supported |
|
|
3.2.5 |
Model Item Property Attributes |
partial |
In some cases a loop error can occur on valid bindings |
302168; |
3.3.1 |
model |
supported |
|
|
3.3.2 |
instance |
partial |
instance element with two child element does not trigger exception |
337302; |
3.3.3 |
submission |
partial |
No support for @indent and complex schema validation |
278761; 278762; |
3.3.4 |
bind |
partial |
Using the index() function in binds does not work. |
292333; |
3.4 |
Extension Module |
unsupported |
| 300760; |
3.5 |
MustUnderstand Module |
unsupported |
| 300757; |
Section |
Title |
Status |
Notes |
Bugs |
4 |
Processing Model (Events) |
partial |
The xforms-recalculate , xforms-revalidate , and xforms-refresh events are not as separated as they should be. |
278448; 338146; |
4.2 |
Initialization Events |
supported |
|
|
4.2.1 |
xforms-model-construct |
supported |
|
|
4.2.2 |
xforms-model-construct-done |
supported |
|
|
4.2.3 |
xforms-ready |
supported |
|
|
4.2.4 |
xforms-model-destruct |
supported |
|
|
4.3.1 |
xforms-rebuild |
supported |
|
|
4.3.2 |
xforms-recalculate |
supported |
|
|
4.3.3 |
xforms-revalidate |
supported |
|
|
4.3.4 |
xforms-refresh |
supported |
|
|
4.3.5 |
xforms-reset |
supported |
|
|
4.3.6 |
xforms-next xforms-previous |
supported |
|
|
4.3.7 |
xforms-focus |
supported |
|
|
4.3.8 |
xforms-help xforms-hint |
supported |
|
|
4.3.9 |
xforms-submit |
partial |
see section 11.2 for more details |
|
4.3.10 |
xforms-submit-serialize |
supported |
|
|
4.4 |
Notification Events |
supported |
|
|
4.4.1 |
xforms-insert |
supported |
|
|
4.4.2 |
xforms-delete |
supported |
|
|
4.4.3 |
xforms-value-changed |
supported |
|
|
4.4.4 |
xforms-valid |
supported |
|
|
4.4.5 |
xforms-invalid |
supported |
|
|
4.4.6 |
xforms-readonly |
supported |
|
|
4.4.7 |
xforms-readwrite |
supported |
|
|
4.4.8 |
xforms-required |
supported |
|
|
4.4.9 |
xforms-optional |
supported |
|
|
4.4.10 |
xforms-enabled |
supported |
|
|
4.4.11 |
xforms-disabled |
supported |
|
|
4.4.12 |
DOMActivate |
supported |
|
|
4.4.13 |
DOMFocusIn |
supported |
|
|
4.4.14 |
DOMFocusOut |
supported |
|
|
4.4.15 |
xforms-select xforms-deselect |
supported |
|
|
4.4.16 |
xforms-in-range |
supported |
|
|
4.4.17 |
xforms-out-of-range |
supported |
|
|
4.4.18 |
xforms-scroll-first xforms-scroll-last |
supported |
|
|
4.4.19 |
xforms-submit-done |
supported |
|
|
4.5 |
Error Indications |
partial |
We don't support the xforms-version-exception event, yet |
|
4.5.1 |
xforms-binding-exception |
supported |
|
|
4.5.2 |
xforms-compute-exception |
supported |
|
|
4.5.3 |
xforms-link-error |
partial |
Not yet generated by load. |
333782; |
4.5.4 |
xforms-link-exception |
supported |
|
|
4.5.5 |
xforms-output-exception |
unsupported |
|
|
4.5.6 |
xforms-submit-error |
supported |
|
|
4.5.7 |
xforms-version-exception |
unsupported |
|
|
4.6 |
Event Sequencing |
supported |
|
|
4.6.1 |
For input, secret, textarea, range, or upload Controls |
supported |
|
|
4.6.2 |
For output Controls |
supported |
|
|
4.6.3 |
For select or select1 Controls |
partial |
|
|
4.6.4 |
For trigger Controls |
supported |
|
|
4.6.5 |
For submit Controls |
supported |
|
|
4.6.6 |
Sequence: Selection Without Value Change |
supported |
|
|
4.6.7 |
Sequence: Value Change With Focus Change |
supported |
|
|
4.6.8 |
Sequence: Activating a Trigger |
supported |
|
|
4.6.9 |
Sequence: Submission |
supported |
|
|
4.7 |
Resolving ID References in XForms |
unsupported |
|
|
4.7.1 |
References to Elements within a repeat Element |
unsupported |
|
|
4.7.2 |
References to Elements within a bind Element |
unsupported |
|
|
4.8 |
DOM Interface for Access to Instance Data |
supported |
|
|
4.8.1 |
getInstanceDocument() |
supported |
|
|
4.8.2 |
rebuild() |
supported |
|
|
4.8.3 |
recalculate() |
supported |
|
|
4.8.4 |
revalidate() |
supported |
|
|
4.8.5 |
refresh() |
supported |
|
|
4.9 |
Feature string for the hasFeature method call |
supported |
|
|
Section |
Title |
Status |
Notes |
Bugs |
5.1 |
XML Schema Built-in Datatypes |
partial |
whitespace facet not supported. |
|
5.2.1 |
Additional XForms Datatypes to Allow Empty Content |
unsupported |
|
|
5.2.2 |
xforms:listItem |
supported |
|
|
5.2.3 |
xforms:listItems |
supported |
|
|
5.2.4 |
xforms:dayTimeDuration |
supported |
|
|
5.2.5 |
xforms:yearMonthDuration |
supported |
|
|
5.2.6 |
xforms:email |
unsupported |
|
|
5.2.7 |
xforms:card-number |
unsupported |
|
|
Supported types: string, normalized string, token, language, boolean, gDay, gMonth, gYear, gYearMonth, gMonthDay, date, time, datetime, duration, integer, nonPositiveInteger, negativeInteger, positiveInteger, long, int, short, unsignedLong, unsignedInt, unsignedShort, byte, unsignedByte, float, decimal, anyURI, base64Binary, hexBinary, qname
Section |
Title |
Status |
Notes |
Bugs |
6.1.1 |
type |
partial |
limited to types mentioned above |
|
6.1.2 |
readonly |
supported |
|
|
6.1.3 |
required |
supported |
|
|
6.1.4 |
relevant |
partial |
relevancy applied via a bind to an element fails to apply to child attributes |
342319; |
6.1.5 |
calculate |
supported |
|
|
6.1.6 |
constraint |
supported |
|
|
6.1.7 |
p3ptype |
unsupported |
| 279049; |
6.2.1 |
Atomic Datatype |
partial |
We will support simpleType's using length, minlength, maxlength, pattern, maxinclusive, mininclusive, maxexclusive, minexclusive, totaldigits, and fractiondigits |
|
Section |
Title |
Status |
Notes |
Bugs |
7.1 |
XPath Datatypes |
supported |
|
|
7.2 |
Evaluation Context |
partial |
|
|
7.3 |
References, Dependencies, and Dynamic Dependencies |
partial |
we probably already do most of it due to our 1.0 work, but we haven't verified we meet the 1.1 standards, yet |
|
7.4 |
Expression categories |
supported |
|
|
7.4.2 |
Model Binding Expressions and Computed Expressions |
supported |
|
|
7.4.3 |
Expressions in Actions and Submissions |
partial |
|
|
7.4.4 |
UI Expressions |
partial |
Scenarios exist where controls contained inside other controls inside a repeat won't be bound correctly |
333638; |
7.4.5 |
UI Binding in other XML vocabularies |
unsupported |
not a compliance requirement for an XForms processor |
|
7.4.6 |
Binding Examples |
supported |
|
|
7.5 |
XForms Core Function Library |
supported |
|
|
7.6.1 |
boolean-from-string() |
supported |
|
|
7.6.2 |
is-card-number() |
unsupported |
|
|
7.7.1 |
avg() |
supported |
|
|
7.7.2 |
min() |
supported |
|
|
7.7.3 |
max() |
supported |
|
|
7.7.4 |
count-non-empty() |
supported |
|
|
7.7.5 |
index() |
partial |
binds using index() are not working |
292333; |
7.7.6 |
power() |
supported |
|
|
7.7.7 |
random() |
supported |
|
|
7.7.8 |
compare() |
supported |
|
|
7.8.1 |
if() |
supported |
|
|
7.8.2 |
property() |
partial |
returns basic for conformance-level , should return full . version will return as "1.0" for now, until more 1.1 work is completed. |
334333; |
7.8.3 |
digest() |
unsupported |
|
|
7.8.4 |
hmac() |
unsupported |
|
|
7.9.1 |
local-date() |
supported |
|
|
7.9.2 |
local-dateTime() |
supported |
|
|
7.9.3 |
now() |
supported |
|
|
7.9.4 |
days-from-date() |
supported |
|
|
7.9.5 |
days-to-date() |
unsupported |
|
|
7.9.6 |
seconds-from-dateTime() |
supported |
|
|
7.9.7 |
seconds-to-dateTime() |
unsupported |
|
|
7.9.8 |
adjust-dateTime-to-timezone() |
unsupported |
|
|
7.9.9 |
seconds() |
supported |
|
|
7.9.10 |
months() |
supported |
|
|
7.10.1 |
instance() |
partial |
instance() won't work with no parameter or empty string as a parameter |
419190; |
7.10.2 |
current() |
supported |
|
|
7.10.3 |
id() |
unsupported |
|
|
7.10.4 |
context() |
unsupported |
|
|
7.11.1 |
choose() |
unsupported |
|
|
7.11.2 |
event() |
supported |
|
|
7.12 |
Extension Functions |
unsupported |
not a compliance requirement for an XForms processor |
|
Section |
Title |
Status |
Notes |
Bugs |
8.1 |
The XForms Core Form Controls Module |
supported |
|
|
8.1.1 |
Common Requirements |
n/a |
|
|
8.1.2 |
input |
supported |
|
|
8.1.3 |
secret |
supported |
|
|
8.1.4 |
textarea |
supported |
|
|
8.1.5 |
output |
supported |
|
|
8.1.6 |
upload |
supported |
|
|
8.1.7 |
range |
partial |
| 316355; 343523; |
8.1.8 |
trigger |
supported |
|
|
8.1.9 |
submit |
supported |
|
|
8.1.10 |
select |
partial |
@selection does not work, select inside repeat may not work correctly, select that mixes itemsets with items may show them in the wrong order |
282840; 371595; 372127; |
8.1.11 |
select1 |
partial |
There are some resize issues, select/deselect/valuechange firing in wrong order. Getting a few issues with in/out of range notifications. |
282840; 303351; 333464; 333529; 352398; |
8.2.1 |
choices |
supported |
|
|
8.2.2 |
item |
supported |
|
|
8.2.3 |
value |
supported |
|
|
8.3.1 |
filename |
supported |
|
|
8.3.2 |
mediatype |
supported |
|
|
8.3.3 |
label |
partial |
Labels for items inside a choices element has bind problems. We'd like to expand how we render labels bound to different, unique types. |
297083; 343443; |
8.3.4 |
help |
supported |
|
|
8.3.5 |
hint |
partial |
problems with hints in XUL-hosted documents and ephemeral message positioning |
349667; |
8.3.6 |
alert |
supported |
|
|
Section |
Title |
Status |
Notes |
Bugs |
9.1.1 |
group |
supported |
|
|
9.2.1 |
switch |
partial |
@selected not working inside repeats |
339937; |
9.2.2 |
case |
partial |
| 302497; 329143; |
9.3 |
Repeat Module |
partial |
| 264329; 273706; |
9.3.1 |
repeat |
partial |
We do not support number attribute |
302026; |
9.3.2 |
Nested Repeats |
supported |
|
|
9.3.3 |
Repeat processing |
partial |
we currently obey the 1.0 rules for repeat |
|
9.3.4 |
User Interface Interaction |
partial |
we currently obey the 1.0 rules for repeat, no support for @number |
302026; |
9.3.5 |
Creating Repeating Structures Via Attributes |
partial |
does not work for html:tr, html:td, or xf:group elements |
340515; 350617; |
9.3.6 |
itemset |
supported |
performance problem with large itemsets |
372197; |
9.3.7 |
copy |
supported |
|
|
Section |
Title |
Status |
Notes |
Bugs |
10 |
XForms Action Module |
n/a |
|
|
10.1 |
action |
supported |
|
|
10.2 |
setvalue |
supported |
|
|
10.3 |
insert |
partial |
We need to better handle when @at evaluates to NaN, and we do not generate unique values for xsd:ID nodes. |
303198; 339217; |
10.4 |
delete |
partial |
We need to better handle when @at evaluates to NaN |
303198; |
10.5 |
setindex |
supported |
|
|
10.6 |
toggle |
supported |
|
|
10.7 |
setfocus |
supported |
|
|
10.8 |
dispatch |
supported |
|
|
10.9 |
rebuild |
partial |
is dispatching events instead of calling directly |
332231; |
10.10 |
recalculate |
partial |
is dispatching events instead of calling directly. Recalculate won't properly mark nodes as dirty if they were changed using JavaScript interfaces. |
332231; 349805; |
10.11 |
revalidate |
partial |
is dispatching events instead of calling directly |
332231; |
10.12 |
refresh |
partial |
is dispatching events instead of calling directly |
332231; |
10.13 |
reset |
supported |
|
|
10.14 |
load |
partial |
no xforms-link-error generated if @src invalid |
333782; |
10.15 |
send |
supported |
|
|
10.16 |
message |
partial |
output inside message doesn't work correctly |
366886; |
10.17 |
Conditional Execution of XForms Actions |
supported |
|
|
10.18 |
Iteration of XForms Actions |
supported |
|
|
Section |
Title |
Status |
Notes |
Bugs |
11.1 |
submission |
partial |
From 1.1 we do not yet support @mode, @indent, @replace='text', @separator, @serialize, @target, header or method child elements |
|
11.2 |
xforms-submit |
partial |
We currently limit (for security reasons) submission only back to the server that served the document. But the user can choose to remove this restriction on a site by site basis via a preference. Click for more details. |
330557; |
11.3 |
xforms-submit-serialize |
supported |
|
|
11.4 |
xforms-submit-done |
supported |
|
|
11.5 |
xforms-submit-error |
supported |
|
|
11.6.1 |
resource |
supported |
|
|
11.7.1 |
method |
unsupported |
|
|
11.8 |
header |
unsupported |
|
|
11.8.1 |
name |
unsupported |
|
|
11.8.2 |
value |
unsupported |
|
|
11.9 |
Submission Options |
supported |
|
|
11.9.1 |
The get Submission Method |
supported |
|
|
11.9.2 |
The post, multipart-post, form-data-post, and urlencoded-post Submission Methods |
supported |
|
|
11.9.3 |
The put Submission Method |
supported |
|
|
11.9.4 |
The delete Submission Method |
unsupported |
|
|
11.9.5 |
Serialization as application/xml |
supported |
|
|
11.9.6 |
Serialization as multipart/related |
partial |
| 330557; |
11.9.7 |
Serialization as multipart/form-data |
supported |
|
|
11.9.8 |
Serialization as application/x-www-form-urlencoded |
supported |
|
|
11.10 |
Replacing Data with the Submission Response |
partial |
@replace with value of 'text' not supported |
|
11.11 |
Integration with SOAP |
supported |
|
|
Section |
Title |
Status |
Notes |
Bugs |
G.1 |
Pseudo-classes |
partial |
:read-only and :read-write are suported using :-moz-read-only and :-moz-read-write |
313111; |
G.2 |
Pseudo-elements |
unsupported |
We support ::value, ::repeat-index, and ::repeat-item through the attributes xf-value, xf-repeat-index, and xf-repeat-item. |
271724; |