XForms 1.0

W3C Working Draft 08 June 2001

This version:
http://www.w3.org/TR/2001/WD-xforms-20010608 (One big file, Zip archive)
Latest version:
Previous versions:
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>


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 W3C has started work on developing an effective replacement. This document outlines the requirements for "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 Boston face to face meeting, including the adoption of XML Schema replacing XForms Simple Syntax, as well as initial efforts at modularizing XForms and additional feedback from outside sources. 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 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 Additional User Interface Capabilities
    2.8 Complete Document
3 Terminology
4 Datatypes
    4.1 XML Schema Datatypes
    4.2 XForms Datatypes
        4.2.1 currency
        4.2.2 monetary
5 The XForms Model
    5.1 Introduction
    5.2 Model Item Properties
        5.2.1 name
        5.2.2 type
        5.2.3 readOnly
        5.2.4 required
        5.2.5 relevant
        5.2.6 calculate
        5.2.7 priority
        5.2.8 validate
    5.3 Using Datatypes in the XForms Model
        5.3.1 Atomic Datatype
        5.3.2 Closed Enumeration
        5.3.3 Open Enumeration
        5.3.4 Union
        5.3.5 Multiple Selection
        5.3.6 Repeating Line Item
        5.3.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 Number Methods
        6.5.2 String Methods
        6.5.3 Miscellaneous Methods
    6.6 Extensibility
7 Form Controls
    7.1 Introduction
    7.2 textbox
    7.3 secret
    7.4 uploadMedia
    7.5 selectOne
    7.6 selectMany
    7.7 selectBoolean
    7.8 range
    7.9 button
    7.10 output
    7.11 submit
    7.12 reset
    7.13 Common Markup
        7.13.1 Common Attributes
        7.13.2 Common Child Elements
8 XForms User Interface
    8.1 Conditional Constructs For Dynamic User Interfaces
        8.1.1 switch
    8.2 Repeating Structures
        8.2.1 Design Rationale
        8.2.2 Special Event Handlers For Element repeat
        8.2.3 repeat
        8.2.4 Design Consequences
    8.3 Reusable Form Controls
        8.3.1 Creating User Interface Templates
        8.3.2 DTD For uiTemplate And useUITemplate
    8.4 Layout in XForms
        8.4.1 Orientation and Direction
        8.4.2 Alignment
        8.4.3 Controlling Automatic Sizing
        8.4.4 Preferred, Minimum, and Maximum Sizes
        8.4.5 Packing Controls
        8.4.6 Overflow
        8.4.7 Inlines and Blocks
    8.5 Multiple Sub-forms Or Sub-pages
        8.5.1 Subpages
9 Binding
    9.1 Introduction
    9.2 Binding Attributes
    9.3 Direct Binding
    9.4 Indirect Binding
    9.5 Multiple Forms per Page
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 bind
    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 Algorithm
        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
   Binary Content
    11.7 Conformance
        11.7.1 XForms Basic
        11.7.2 XForms Full


A Schema for XForms
B References
    B.1 Normative References
    B.2 Informative References
C Changes from Previous Release (Non-Normative)
    C.1 Changes since the 16-Feb-2001 release
    C.2 Changes to Chapter 1 'About XForms'
    C.3 Changes to Chapter 2 'Concepts'
    C.4 Changes to Chapter 3 'Terminology'
    C.5 Changes to Chapter 4 'Datatypes'
    C.6 Changes to Chapter 5 'XForms Model'
    C.7 Changes to Chapter 6 'XPath Expressions in XForms'
    C.8 Changes to Chapter 7 'Form Controls'
    C.9 Changes to Chapter 8 'XForms User Interface'
    C.10 Changes to Chapter 9 'Binding'
    C.11 Changes to Chapter 10 'Document Structure'
    C.12 Changes to Chapter 11 'Processing Model and Conformance'
    C.13 Changes to Appendix 'Schema for XForms'
    C.14 Changes to Appendix 'XSLT from Simple Syntax'
    C.15 Change to Appendix 'Sample Forms'
    C.16 Changes to Appendix 'Optional Function Library'
    C.17 Changes to Appendix 'References'
D Acknowledgements (Non-Normative)
E Production Notes (Non-Normative)