Release Notes for Preview Version 8.4 - Feb, 2008
Table of Contents
- Hardware/Software Requirements
- HTTP Server Requirements
- W3C XForms - Document Structure
- W3C XForms - Processing Model
- W3C XForms - Datatypes
- W3C XForms - Model Item Properties
- W3C XForms - XPath Expressions in XForms
- W3C XForms - Form Controls
- W3C XForms - XForms User Interface
- W3C XForms - XForms Actions
- W3C XForms - Submit
- Security and Cross Domain Submission
- Styling XForms
- Comments and Filing Bugs
- Where to Find More Information
1. Hardware/Software Requirements
Windows (Client)
Operating Systems: | 98 Second Edition, Millenium Edition, NT 4.0, 2000, XP |
Processor: | Pentium 233MHz (or faster) |
Memory: | 64MB |
Disk Space: | 52MB |
Linux (Client)
Operating Systems: | RedHat 7.0 (or later), Debian 3.0 (or later),
SuSE 7.2 (or later)
Or a version of Linux with kernel 2.2.14 (or later) and the following library versions (or compatible):
|
Processor: | Pentium 233MHz (or faster) |
Memory: | 64MB |
Disk Space: | 52MB |
Mac (Client)
Operating Systems: | Mac OS X 10.1.x Mac OS X 10.2.x (or later) |
Processor: | G3 266MHz |
Memory: | 64MB |
Disk Space: | 72MB |
2. HTTP Server Requirements
The HTTP server must be able to serve XHTML (i.e.,
application/xhtml+xml
) content.
3. Document Structure
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; |
4. Processing Model (Events)
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.
Event context information is also currently unsupported.
|
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 |
5. Datatypes
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
6. Model Item Properties
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 |
7. XPath Expressions in XForms
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() |
unsupported | ||
7.7.7 | random() |
unsupported | ||
7.7.8 | compare() |
unsupported | ||
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() |
unsupported | ||
7.9.2 | local-dateTime() |
unsupported | ||
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() |
supported | ||
7.10.2 | current() |
supported | ||
7.10.3 | id() |
unsupported | ||
7.10.4 | context() |
unsupported | ||
7.11.1 | choose() |
unsupported | ||
7.11.2 | event() |
unsupported | ||
7.12 | Extension Functions | unsupported | not a compliance requirement for an XForms processor |
8. Core Form Controls
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 |
9. Container Form Controls
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 |
10. XForms Actions
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 |
11. XForms Submission Model
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 |
G. XForms and Styling
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; |
12. Security and Cross Domain Submission
By default, Mozilla's XForms implementation does not allow cross domain transactions. This means that a XForm loaded from one web domain will NOT be allowed, by default, to load data or submit data to a domain different from the domain that served the XForm. This policy also includes port numbers as well as protocols. So a form loaded from http://www.foo.com:8080 may not access https://www.foo.com:8080, http://www.foo.com:9080, or http://www.foo.com.
However, Mozilla's XForms implementation does allow the user to override this restriction by using a whitelist.
- In Mozilla Firefox, open to the browser's preferences by selecting File->Tools->Options... from the browser menubar
- Choose the "Security" section
- Check the "Allow XForms to access other domains" checkbox. By selecting this option you are allowing all cross domain transactions made by trusted sites, including submission and external instance loading.
- Click on the "Allowed Sites" pushbutton for this item
- Enter each domain that you choose to trust to serve XForms which initiate cross domain transactions, and choose whether it can load or send data (or both). For example, if the form http://www.mozilla.org/projects/xforms/sample1.xhtml needs to to load instance data from http://www.foo.org, then you need to add Load permission for www.mozilla.org on the Allowed Sites list.
Note: you'll see a "XForms Error (14): Security check failed!" error in your JavaScript Console if a cross-domain transaction is initiated by a XForm loaded from a domain that is not whitelisted.
Note also, that the cross domain check also includes forms loaded from
file://
. Forms loaded from that URL should be local
files, and thus trusted, but it is not always the case. So there is
no automatic "whitelisting" of local files.
13. Styling XForms
Pseudo classes
In the W3C XForms specification, pseudo-classes can be used to select elements based on XForms criteria. This release of the Mozilla XForms product does support pseudo-classes, with the exception of :read-only and :read-write. Until Mozilla supports these pseudo classes on elements in general, Mozilla XForms authors may use :-moz-read-only and :-moz-read-write. For example, to give all inputs values a blue background if they are readonly, the following CSS is used:
@namespace xf url("http://www.w3.org/2002/xforms"); xf|input:-moz-read-only .xf-value { background-color: blue; }
Supported pseudo-classes in this release are :valid, :invalid,
:enabled, :disabled, :required, :optional, :-moz-read-write
and
:-moz-read-only.
Pseudo Elements
There is currently no support for pseudo elements. Instead the author
can use the normal classes xf-value, xf-repeat-index
and
xf-repeat-item
.
14. Comments and Filing Bugs
Comments
Please see the Mozilla XForms project page for the latest information about forums being used to discuss Mozilla XForms.
Filing Bugs
If problems are found with the Mozilla XForms product, a bug should be opened against the XForms component, using Mozilla's bug-reporting mechanism.
15. Where to Find More Information
Limitations and Custom Extensions
http://developer.mozilla.org/en/docs/XForms:Mozilla_XForms_SpecialsAs this is still a preview release, there are still a few bugs and limitations (as can be seen above). This page describes the major limitations and the Mozilla XForms custom extensions to the XForms standard.
Mozilla XForms Project
http://www.mozilla.org/projects/xforms/Information regarding the XForms initiative for Mozilla. It contains the list of contacts for the project, an abstract summary, and a list of features with associated bugs.
W3C XForms
http://www.w3.org/MarkUp/Forms/Site detailing the XForms specifications (1.0 and 1.1). Details the history of the specification, working group, and supported applications and browsers. Also contains an XForms 1.0 test suite and a link to an XForms validator.