Release Notes for Preview Version 4 - March, 2006
Table of Contents
- 1. Hardware/Software Requirements
- 2. HTTP Server Requirements
- 3. W3C XForms - Document Structure
- 4. W3C XForms - Processing Model
- 5. W3C XForms - Datatypes
- 6. W3C XForms - Model Item Properties
- 7. W3C XForms - XPath Expressions in XForms
- 8. W3C XForms - Form Controls
- 9. W3C XForms - XForms User Interface
- 10. W3C XForms - XForms Actions
- 11. W3C XForms - Submit
- 12. Security and Cross Domain Submission
- 13. Styling XForms
- 14. Comments and Filing Bugs
- 15. 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 | 302168; | |
| 3.3.1 |
model
|
partial | @functions not supported. Not currently limiting author to one schema per namespace within model | 299170; 299173; |
| 3.3.2 |
instance
|
supported | ||
| 3.3.3 |
submission
|
partial | 278761; 278762; 315712; 326452; | |
| 3.3.4 |
bind
|
partial | Using the index() function in binds does not work. |
292333; 307421; 307420; |
| 3.4 | MustUnderstand Module | unsupported | 300757; | |
| 3.5.1 | Extension Module | unsupported | 300760; |
4. Processing Model (Events)
| Section | Title | Status | Notes | Bugs |
|---|---|---|---|---|
| 4 | Processing Model (Events) | partial | 278448; | |
| 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
|
partial | This event fires but a handler that requires the ability to show windows in the handler will have problems | |
| 4.3.1 |
xforms-next xforms-previous
|
supported | ||
| 4.3.2 |
xforms-focus
|
supported | ||
| 4.3.3 |
xforms-help xforms-hint
|
supported | ||
| 4.3.4 |
xforms-refresh
|
supported | ||
| 4.3.5 |
xforms-revalidate
|
supported | ||
| 4.3.6 |
xforms-recalculate
|
supported | ||
| 4.3.7 |
xforms-rebuild
|
supported | ||
| 4.3.8 |
xforms-reset
|
supported | ||
| 4.3.9 |
xforms-submit
|
supported | ||
| 4.4 | Notification Events | partial | We need to set context information for some events | 280423; |
| 4.4.1 |
DOMActivate
|
supported | ||
| 4.4.2 |
xforms-value-changed
|
supported | ||
| 4.4.3 |
xforms-select xforms-deselect
|
supported | ||
| 4.4.4 |
xforms-scroll-first xforms-scroll-last
|
supported | ||
| 4.4.5 |
xforms-insert xforms-delete
|
supported | We do not set the event context information | |
| 4.4.6 |
xforms-valid
|
supported | ||
| 4.4.7 |
xforms-invalid
|
supported | ||
| 4.4.8 |
DOMFocusIn
|
supported | ||
| 4.4.9 |
DOMFocusOut
|
supported | ||
| 4.4.10 |
xforms-readonly
|
supported | ||
| 4.4.11 |
xforms-readwrite
|
supported | ||
| 4.4.12 |
xforms-required
|
supported | ||
| 4.4.13 |
xforms-optional
|
supported | ||
| 4.4.14 |
xforms-enabled
|
supported | ||
| 4.4.15 |
xforms-disabled
|
supported | ||
| 4.4.16 |
xforms-in-range
|
unsupported | 300248; | |
| 4.4.17 |
xforms-out-of-range
|
unsupported | 300248; | |
| 4.4.18 |
xforms-submit-done
|
supported | ||
| 4.4.19 |
xforms-submit-error
|
partial | This event will not be generated if the request returns an error page. We also do not set context info on the event, yet. | 310125; |
| 4.5.1 |
xforms-binding-exception
|
supported | ||
| 4.5.2 |
xforms-link-exception
|
partial | Inconsistent behavior between locally and served documents. We also do not set context info on the event, yet | 306846; |
| 4.5.3 |
xforms-link-error
|
partial | Not yet generated by hint, help, alert or message. We also do not set context info on the event, yet. | 300255; |
| 4.5.4 |
xforms-compute-exception
|
supported | We do not set the context info on the event, yet | |
| 4.6.1 | Event Sequencing For input, secret, textarea, range, upload |
supported | ||
| 4.6.2 | Event Sequencing For output |
supported | ||
| 4.6.3 | Event Sequencing For select, select1 |
supported | ||
| 4.6.4 | Event Sequencing For trigger |
supported | ||
| 4.6.5 | Event Sequencing For submit |
supported | ||
| 4.6.6 | Sequence: Selection w/o Value Change | supported | ||
| 4.6.7 | Value Change w/Focus Change | supported | ||
| 4.6.8 | Activating a Trigger | supported | ||
| 4.6.9 | Submission | supported |
5. Datatypes
| Section | Title | Status | Notes | Bugs |
|---|---|---|---|---|
| 5.1 | XML Schema Built-in Datatypes | partial | As noted in list below | 310962; |
| 5.2.1 |
xforms:listItem
|
supported | ||
| 5.2.2 |
xforms:listItems
|
supported | ||
| 5.2.3 |
xforms:dayTimeDuration
|
supported | ||
| 5.2.4 |
xforms:yearMonthDuration
|
supported |
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 | 313315; 313766; |
| 6.1.2 |
readonly
|
supported | ||
| 6.1.3 |
required
|
supported | ||
| 6.1.4 |
relevant
|
supported | ||
| 6.1.5 |
calculate
|
supported | ||
| 6.1.6 |
constraint
|
supported | ||
| 6.1.7 |
p3ptype
|
unsupported | 279049; | |
| 6.2 | Atomic Datatype | partial | We will support simpleType's using length, minlength, maxlength, pattern, maxinclusive, mininclusive, maxexclusive, minexclusive, totaldigits, and fractiondigits |
7. XPath Expression in XForms
| Section | Title | Status | Notes | Bugs |
|---|---|---|---|---|
| 7.1 | XPath Datatypes | supported | ||
| 7.2 | Feature string for the hasFeature method call |
supported | ||
| 7.3.1 |
getInstanceDocument()
|
partial | 305184; | |
| 7.3.2 |
rebuild()
|
supported | ||
| 7.3.3 |
recalculate()
|
supported | ||
| 7.3.4 |
revalidate()
|
supported | ||
| 7.3.5 |
refresh()
|
supported | ||
| 7.4 | Evaluation Context | partial | 324468; | |
| 7.5.1 | Dynamic Dependencies | partial | Work around in place for now | 265212; |
| 7.5.2 | Model Binding Expressions | supported | ||
| 7.5.3 | UI Binding Expressions | partial | Scenarios exist where output isn't refreshed all of the time as well as nodes contained by a group not always rebound correctly | 310276; 305060; |
| 7.5.4 | UI Binding in other XML vocabularies | unsupported | no requirements here as of yet | |
| 7.5.5 | Binding Examples | n/a | ||
| 7.6 | XForms Core Function Library | supported | ||
| 7.7.1 |
boolean-from-string()
|
supported | ||
| 7.7.2 |
if()
|
supported | ||
| 7.8.1 |
avg()
|
supported | ||
| 7.8.2 |
min()
|
supported | ||
| 7.8.3 |
max()
|
supported | ||
| 7.8.4 |
count-non-empty()
|
supported | ||
| 7.8.5 |
index()
|
partial | binds using index() is not working |
292333; |
| 7.9.1 |
property()
|
supported | ||
| 7.10.1 |
now()
|
supported | ||
| 7.10.2 |
days-from-date()
|
supported | ||
| 7.10.3 |
seconds-from-dateTime()
|
supported | ||
| 7.10.4 |
seconds()
|
supported | ||
| 7.10.5 |
months()
|
supported | ||
| 7.11.1 |
instance()
|
supported | ||
| 7.12 | Extension Functions | unsupported | no requirements here as of yet |
8. Form Controls
| Section | Title | Status | Notes | Bugs |
|---|---|---|---|---|
| 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
|
partial | Known problems are with refreshing and setting context for contents | 293571; 305196; 310276; |
| 8.1.6 |
upload
|
partial | Mediatype attribute limited | 313768; |
| 8.1.7 |
range
|
partial | 316353; 316354; 316355; | |
| 8.1.8 |
trigger
|
supported | ||
| 8.1.9 |
submit
|
supported | ||
| 8.1.10 |
select
|
partial | @selection does not work. | 282840; |
| 8.1.11 |
select1
|
partial | There are some resize issues and @appearance not implemented here, yet. Also missing some html:select capabilities. | 282840; 303351; 303353; 303865; |
| 8.2.1 |
choices
|
supported | ||
| 8.2.2 |
item
|
supported | ||
| 8.2.3 |
value
|
supported | ||
| 8.3 |
filename
|
supported | ||
| 8.3.2 |
mediatype
|
partial | 313768; | |
| 8.3.3 |
label
|
partial | Labels for items inside a choices element has bind problems. Clicking on a label doesn't focus the owning control, and we'd like to expand how we render labels bound to different, unique types | 284068; 297083; |
| 8.3.4 |
help
|
supported | ||
| 8.3.5 |
hint
|
supported | ||
| 8.3.6 |
alert
|
supported |
9. XForms User Interface
| Section | Title | Status | Notes | Bugs |
|---|---|---|---|---|
| 9.2.1 |
switch
|
supported | ||
| 9.2.2 |
case
|
partial | 302497; | |
| 9.2.3 |
toggle
|
supported | ||
| 9.3 | Repeat Module | partial | 264329; 273706; | |
| 9.3.1 |
repeat
|
partial | 302026; 302922; | |
| 9.3.2 | Creating Repeating Structures Via Attributes | unsupported | 280368; | |
| 9.3.3 |
itemset
|
supported | ||
| 9.3.4 |
copy
|
supported | ||
| 9.3.5 |
insert
|
partial | Does not properly set repeat-index, and we need to better handle when @at evaluates to NaN | 282828; 303198; |
| 9.3.6 |
delete
|
partial | Does not properly set repeat-index, and we need to better handle when @at evaluates to NaN | 282828; 303198; |
| 9.3.7 |
setindex
|
supported | ||
| 9.3.8 | Repeat Processing | partial | repeat-index not set correctly after insert/delete | 282828; |
| 9.3.9 | Nested Repeats | supported | ||
| 9.3.10 | User Interface Interaction | partial | No support for @number | 302026; |
10. XForms Actions
| Section | Title | Status | Notes | Bugs |
|---|---|---|---|---|
| 10.1 | XForms Action Module | n/a | ||
| 10.1.1 |
action
|
supported | ||
| 10.1.2 |
dispatch
|
supported | ||
| 10.1.3 |
rebuild
|
supported | ||
| 10.1.4 |
recalculate
|
supported | ||
| 10.1.5 |
revalidate
|
supported | ||
| 10.1.6 |
refresh
|
supported | ||
| 10.1.7 |
setfocus
|
supported | ||
| 10.1.8 |
load
|
supported | ||
| 10.1.9 |
setvalue
|
supported | ||
| 10.1.10 |
send
|
supported | ||
| 10.1.11 |
reset
|
supported | ||
| 10.1.12 |
message
|
partial | Ephemeral doesn't support @src, yet, and doesn't prioritize correctly when both bind and inner text set. | 300870; |
| 10.1.13 |
insert, delete, setindex
|
partial | insert and delete do not set repeat index | 282828; |
11. Submit
| Section | Title | Status | Notes | Bugs |
|---|---|---|---|---|
| 11.1 |
xforms-submit
|
supported | 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. | |
| 11.2 | Submission Options | supported | ||
| 11.3 | Serialization as application/xml |
supported | ||
| 11.4 | Serialization as multipart/related |
supported | ||
| 11.5 | Serialization as multipart/form-data |
supported | ||
| 11.6 | Serialization as application/x-www-form-urlencoded |
supported | ||
| 11.7 | The post, multipart-post, form-data-post, and urlencoded-post Submit Methods |
supported | ||
| 11.8 |
put
|
supported | ||
| 11.9 |
get
|
supported |
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 "Content" section
- Check the "Allow XForms to submit data to 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. 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 www.mozilla.org to 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
not 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
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://w3c.org/MarkUp/Forms/Site detailing the XForms specifications (1.0 and upcoming 1.1). Details the history of the specification, working group, and supported applications and browsers. Also contains an XForms 1.0 test suite.