W3C

XForms 1.0

W3C Working Draft 28 August 2001

This version:
http://www.w3.org/TR/2001/WD-xforms-20010828 (One big file, diff-marked HTML, Zip archive)
Latest version:
http://www.w3.org/TR/xforms/
Previous versions:
http://www.w3.org/TR/2001/WD-xforms-20010608
Editors:
Micah Dubinko, Cardiff <mdubinko@Cardiff.com>
Josef Dietl, Mozquito Technologies <josef@mozquito.com>
Roland Merrick, IBM <Roland_Merrick@uk.ibm.com>
Dave Raggett, W3C/Openwave <dsr@w3.org>
T. V. Raman, IBM <tvraman@almaden.ibm.com>
Linda Bucsay Welsh, Intel <linda@intel.com>

Abstract

Forms were introduced into HTML in 1993. Since then they have become a critical part of the Web. The existing mechanisms in HTML for forms are now outdated, and the W3C has started work on developing an effective replacement. This document defines "XForms", W3C's name for the next generation of web forms.

Status of this Document

This section describes the status of this document at the time of its publication. Other documents may supersede this document. The latest status of this document series is maintained at the W3C.

This is a Working Draft that incorporates new material agreed upon at the Amsterdam face to face meeting and ongoing feedback from the general public. According to our current plan, the next Working Draft after this one will be a "Last Call" Working Draft. Interested parties are encouraged to provide additional feedback and comments.

This document is a W3C Working Draft for review by W3C members and other interested parties. It is a draft document and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use W3C Working Drafts as reference material or to cite them as other than "work in progress". A list of current public W3C Working Drafts can be found at http://www.w3.org/TR.

This document has been produced as part of the W3C HTML Activity.

Please send detailed comments on this document to www-forms@w3.org, the public forum for discussion of the W3C's work on web forms. To subscribe, send an email to the above address with the word subscribe in the subject line (include the word unsubscribe if you want to unsubscribe). The archive for the list is accessible online.

Table of Contents

1 About the XForms 1.0 Specification
    1.1 Background
    1.2 Reading the Specification
    1.3 How the Specification is Organized
    1.4 Documentation Conventions
2 Concepts
    2.1 Purpose and Presentation
    2.2 Current Approach: XHTML
    2.3 Stepping Up to XForms
    2.4 Providing XML Instance Data
    2.5 The XForms Model
    2.6 Multiple Forms per Document
    2.7 Complete Document
3 Terminology
4 Datatypes
    4.1 XML Schema Datatypes
    4.2 XForms Datatypes
        4.2.1 tokenList
5 The XForms Model
    5.1 Introduction
    5.2 Model Item Properties
        5.2.1 type
        5.2.2 readOnly
        5.2.3 required
        5.2.4 relevant
        5.2.5 calculate
        5.2.6 isValid
        5.2.7 maxOccurs
        5.2.8 minOccurs
    5.3 Binding
        5.3.1 bind
        5.3.2 Binding Constraints
        5.3.3 Binding References
        5.3.4 Binding Example
    5.4 Applying XML Schema Datatypes
        5.4.1 Atomic Datatype
        5.4.2 Closed Enumeration
        5.4.3 Open Enumeration
        5.4.4 Union
        5.4.5 Multiple Selection
        5.4.6 Repeating Line Items
        5.4.7 Alternate Representation
6 XPath Expressions in XForms
    6.1 Datatypes
    6.2 Instance Data
    6.3 Evaluation Context
    6.4 Canonical Binding Expressions
    6.5 Forms Core Function Library
        6.5.1 Boolean Methods
        6.5.2 Number Methods
        6.5.3 String Methods
        6.5.4 Miscellaneous Methods
    6.6 Extensibility
        6.6.1 Extension Functions
7 Form Controls
    7.1 Introduction
    7.2 input
    7.3 textarea
    7.4 secret
    7.5 output
    7.6 upload
    7.7 range
    7.8 submit
    7.9 button
    7.10 selectBoolean
    7.11 selectOne
    7.12 selectMany
    7.13 Common Markup forselectOneand selectMany
        7.13.1 item
        7.13.2 itemref
        7.13.3 choices
    7.14 Common Markup
        7.14.1 Common Attributes
        7.14.2 Single Node Binding Attributes
        7.14.3 Nodeset Binding Attributes
        7.14.4 Common Child Elements
            7.14.4.1 caption
            7.14.4.2 help
            7.14.4.3 hint
            7.14.4.4 alert
            7.14.4.5 action
            7.14.4.6 extension
8 XForms Actions
    8.1 Using XForms Actions
    8.2 dispatch
    8.3 refresh
    8.4 recalculate
    8.5 revalidate
    8.6 setFocus
    8.7 setValue
    8.8 submitInstance
    8.9 resetInstance
    8.10 insert
    8.11 delete
    8.12 scroll
    8.13 setRepeatCursor
    8.14 toggle
    8.15 script
9 XForms User Interface
    9.1 Grouping Form Controls
    9.2 Conditional Constructs For Dynamic User Interfaces
    9.3 Repeating Structures
        9.3.1 Repeat Processing
        9.3.2 User Interface Interaction
    9.4 Dynamic Selection Choices
    9.5 Reusable Form Controls
10 Document Structure
    10.1 The XForms Namespace
    10.2 XForms Elements
        10.2.1 xform
        10.2.2 model
        10.2.3 instance
        10.2.4 submitInfo
        10.2.5 bindings
        10.2.6 privacy
        10.2.7 action
        10.2.8 extension
    10.3 Integration with XLink
        10.3.1 XLink role for XForms
        10.3.2 XLink role for the XForms Model
        10.3.3 XLink role for the Instance Data
        10.3.4 XLink role for the XForms User Interface
11 Processing Model
    11.1 Introduction
        11.1.1 Design Rationale
    11.2 XForms Properties
    11.3 Events
    11.4 XForms Processing
        11.4.1 Initialization/Resume
        11.4.2 Instance Data Construction
        11.4.3 Navigation Sequence Algorithm
        11.4.4 Interactivity
        11.4.5 Recalculation Sequence Algorithm
            11.4.5.1 Details on Creating the Master Dependency Directed Graph
            11.4.5.2 Details on Creating the Pertinent Dependency Subgraph
            11.4.5.3 Details on Computing Individual Vertices
            11.4.5.4 Example of Calculation Processing
        11.4.6 UI Refresh Algorithm
        11.4.7 Revalidation Algorithm
    11.5 Submit and Reset
        11.5.1 Submit
        11.5.2 Reset
    11.6 Serialization Formats for Instance Data
        11.6.1 application/x-www-form-urlencoded
        11.6.2 multipart/form-data
        11.6.3 text/xml
            11.6.3.1 Binary Content
    11.7 Conformance
        11.7.1 XForms Basic
        11.7.2 XForms Full
        11.7.3 Conforming XForms Processors
        11.7.4 Conforming XForms Containing Documents
        11.7.5 Conforming XForms Generators

Appendices

A Schema for XForms
B Input Modes
C References
    C.1 Normative References
    C.2 Informative References
D Changes from Previous Release (Non-Normative)
    D.1 Changes since the 08-June-2001 release
    D.2 Changes to Chapter 1 'About XForms'
    D.3 Changes to Chapter 2 'Concepts'
    D.4 Changes to Chapter 3 'Terminology'
    D.5 Changes to Chapter 4 'Datatypes'
    D.6 Changes to Chapter 5 'XForms Model'
    D.7 Changes to Chapter 6 'XPath Expressions in XForms'
    D.8 Changes to Chapter 7 'Form Controls'
    D.9 New Chapter 8 'XForms Actions'
    D.10 Changes to Chapter 9 'XForms User Interface'
    D.11 Removed Chapter 'Binding'
    D.12 Changes to Chapter 10 'Document Structure'
    D.13 Changes to Chapter 11 'Processing Model and Conformance'
    D.14 Changes to Appendix 'Schema for XForms'
    D.15 New Appendix 'Input Modes'
    D.16 Changes to Appendix 'References'
E Acknowledgements (Non-Normative)
F Production Notes (Non-Normative)