Introduction to W3C XForms The Future of Web Forms Micah Dubinko
About Your Guide Lead editor of XForms specification Software Engineer for Cardiff Software Book and magazine articles Contributing Editor CDIA certified
What We’ll Talk About 1. The “Big Picture” 2. What are XForms? 3. What does it all mean?
Part 1 The Big Picture
A Brief History of Web Forms 1993:HTML forms 1994–2001:Nothing happened Today:XForms
HTML Forms Limitations Some Assembly Required Primitive Data Representation Urlencoded? Ugh. Need Script to do anything… Validations Calculations Dynamic Forms
XForms = Interactive Web Services Some Assembly Required Primitive Data Representation Urlencoded? Ugh. Blending Purpose and Presentation etc… No validations, calculations XML In, XML Out Integration with Web Services; XML Tools Leverage XPath, XML Schema, XSLT, SVG Any Time, Any Place, and on Any Device
HTML Demo
Part 2 What are XForms?
Terminology XForm or XForms? XForms Processor XForms Model Instance data Containing document Form control
XForms Conformance Profiles Two conformance profiles to support wide range of devices Basic: small devices, TV, phones, etc. Full: desktop browsers, servers
Contain This! XForms lives in multiple locations within a single “containing document” file XForms Model Purpose (non-visible) Presentation Form controls
XForms Model Defines the ‘Purpose’ of the form Includes the following: Instance Data Submit Information XML Schema Information XForms specific properties and actions Model and Instance can be synthesized
XForms Instance Provides template for your data Provides default or partially submitted data Can be inline or referenced externally Full support for XML Schema
XForms Constraints Static (from Schema) and dynamic Datatypes Relevant Required ReadOnly Validation Calculation Minimum/maximum occurrences
XForms Submit Info Provides How, Where, and What to submit Multiple models per form Partial form submission Default is ‘post’ of XML Instance Submit
How It Works XSLT XForms <> Source treeInstance data Stylesheet tree XForms Processing XSLT Processing
XForms User Interface Describes intent “selectOne”, not “checkbox” Input/Secret/Textarea selectOne/selectMany Range Upload Button
Advanced User Interface Grouping Dynamic interfaces Repeating “line items” (similar to Zope)
Binding XForms Model
XForms Actions Defines common set of behaviors No Javascript required Message SubmitInstance SetValue SetFocus Toggle LoadURI
Processing Model Event-driven modelInitialize Focus/blur, next/previous valueChanging/valueChanged Help/hint/alert Submit/reset Error conditions
Data Submission Called “Serialization” Choice of formats: Application/x-www-form-urlencoded Multipart/form-data Text/xml Choice of transport HTTP GET HTTP POST SOAP (Future)
Part 3 What it all means
Unified Processing ServerClient XForms Processor XForms Model Server process for “data double check” Client process for optimal data entry Less CGI hacks = better security on the Web
The end of the Web as we know it
Any Device, anytime… High-level form control definitions Flexibility in implementation No floating point, JavaScript required Subset of XML Schema
XHTML 2.0 Web of Standards XHTML 1.xSVGFO?SMIL XForms XML Schema XPath XML Events XML
Section 508 Accessible web forms for everybody Not keyboard-centric Events for focus, navigation Script not required Captions/metadata Multimodal forms
Paperwork Elimination Unified format for instance data Enables Workflow and Routing Documented savings of over $50/transaction “How you gather, manage and use information will determine whether you win or lose.” – Bill Gates
The Web Service Revolution User Interface for.NET and Web Services Connects directly to SOAP data source Utilizes existing XML Schema Article available on
XForms Roadmap Last Call: Ended 22 Feb 2002 Candidate Recommendation: Proposed Recommendation: Recommendation:
Deployment Pre
Help Make XForms Better! XForms “Smoke Tests” Containing Document Schema Vote For XForms in Mozilla!
Try Out XForms Implementations: X-Smiles TIBET Mozquito Apache Cocoon Chiba ExFormula Authoring Tools Cardiff LiquidOffice (demo)
For More Information… (subj: “Subscribe”) More?