1.1 | A simple Web application made up of software components that together implement server-side validation and client-side user interaction. 10 |
1.2 | Element instance declares the XML template that holds user input and default values. 12 |
1.3 | Constraining instance data by specifying an XML Schema. 13 |
1.4 | XML representation of the data collected by a questionnaire application, along with some simple type constraints. 14 |
1.5 | User interface control for obtaining the user's age. 15 |
1.6 | User interface for obtaining the user's age. 15 |
1.7 | XForms user interface control for selecting a single value. 18 |
1.8 | XForms user interface for selecting a single value. 18 |
1.9 | Element submission models what, where and how to submit. 19 |
1.10 | XForms user interface control for submitting the questionnaire. 19 |
1.11 | Visual representation of XForms submit control. 19 |
1.12 | The complete XForms questionnaire. 20 |
1.13 | Deploying the XForms questionnaire. 21 |
2.1 | The DOM2 event propagation model. 31 |
2.2 | Authoring event binding via element listener . 32 |
2.3 | Attaching event listener on the observer . 32 |
2.4 | Attaching event listener to the handler . 33 |
2.5 | Declaring a namespace and associating a local namespace prefix. 35 |
2.6 | IDL declaration of type USAddress 36 |
2.7 | Illustrates the use of some of the built-in data types provided by XML Schema. 38 |
2.8 | Type USState is derived by restricting type xsd:string. 39 |
2.9 | Using facet pattern to define type ZIPCode that can hold five-digit US ZIP codes. 39 |
2.10 | Type Definition for complex type USAddress . 41 |
2.11 | Definition of type Invitation Type . 41 |
3.1 | Anatomy of an XForms user interface control. 54 |
3.2 | Using binding sites for connecting user interface controls to the model. 55 |
3.3 | Requesting a custom date picker via attribute appearance . 57 |
3.4 | Data collected by the questionnaire. 69 |
3.5 | Sending email using XForms 61 |
3.6 | Visual presentation of the XForms email composer. 61 |
3.7 | CSS style that defines how fields for collecting email addresses should be rendered in various presentation modes. 62 |
3.8 | HTML radio buttons fail to capture the intent underlying the user interface. 64 |
3.9 | XForms user interface markup for picking from a pair of mutually exclusive values. 65 |
3.10 | Open selections permit selecting from a set as well as free-form input. 66 |
3.11 | Open selections permit selecting from a set as well as free-form input. 66 |
3.12 | XForms model fragment for gender picker. 67 |
3.13 | Book catalog used to provide available choices. 69 |
3.14 | Available choices can be updated dynamically. 70 |
3.15 | Visual presentation of the bookstore user interface. 70 |
3.16 | Bookshelf stores complete book structure. 71 |
3.17 | Element copy used to select XML structures. 72 |
3.18 | Grouping available choices. 73 |
3.19 | Visual presentation of a hierarchical selection control. 73 |
3.20 | Volume control authored using element range . 74 |
3.21 | Visual rendering of a volume control created using range 75 |
3.22 | Element upload enables uploading data from a variety of devices. 77 |
3.23 | Visual interface that enables uploading data. 77 |
3.24 | Instance data corresponding to image upload. 78 |
3.25 | Using trigger to wire up events and actions. 79 |
3.26 | Element trigger can invoke different actions based on the received event. 80 |
3.27 | Control submit encapsulates all presentational metadata associated with the submit control. 82 |
3.28 | Element submission that initiates a buy operation. 86 |
3.29 | Skeleton data model used by a shopping application. 87 |
4.1 | Grouping related controls using construct group . 93 |
4.2 | X-Smiles rendering of related controls using construct group . 93 |
4.3 | switch can selectively reveal or hide portions of an interface. 96 |
4.4 | Initial state of the edit/view interface. 97 |
4.5 | switch can alternate between different portions of an interface. 97 |
4.6 | Using construct switch to navigate through a complex task. 99 |
4.7 | Task wizard authored using switch . 101 |
4.8 | Visual representation of task wizard authored using switch . 102 |
4.9 | X-Smiles rendering of the XForms shopping cart. 105 |
4.10 | Shopping cart model defines the structure of element cart . 106 |
4.11 | Schema for the shopping cart. 107 |
4.12 | Shopping cart user interface using construct repeat . 108 |
4.13 | Adding add , delete and scroll controls to shopping cart. 110 |
4.14 | Placing element repeat within element table produces invalid XHTML. 115 |
4.15 | Element repeat contains an anonymous group element. 116 |
4.16 | Moving repeat attributes to the containing anonymous group. 116 |
4.17 | XHTML tables that grow and shrink dynamically. 117 |
4.18 | Task list interface rendered by X-Smiles. 119 |
4.19 | XML Schema that defines the data model for the task list. 121 |
4.20 | Instance declaration for the task list. 122 |
4.21 | XHTML head for the task list. 123 |
4.22 | User interface for editing a hierarchical task list. 125 |
4.23 | Toolbar for manipulating sections in the task list. 130 |
4.24 | Visual display for the task list editor. 131 |
4.25 | Dynamic XHTML user interface for editing a hierarchical task list. 132 |
4.26 | Displaying a summary of the task list. 133 |
4.27 | Submitting the task list saves the current state. 134 |
5.1 | Conveying that model and user interface are out of sync via styling. 138 |
5.2 | CSS style rules using pseudo-classes. 139 |
5.3 | Element bind is used to attach model properties. 140 |
5.4 | Property relevant makes portions of the data instance irrelevant. 141 |
5.5 | Property relevant enables model-based conditional user interfaces. 141 |
5.6 | Property required makes fields mandatory . 143 |
5.7 | Property readonly can temporarily prevent editing of certain fields. 144 |
5.8 | Constraining return date via property constraint . 145 |
5.9 | Expressing cardinality constraints via property constraint . 146 |
5.10 | Property calculate to convert temperature. 148 |
5.11 | Declaring type information via property type . 149 |
6.1 | Using function if to compute shipping cost. 154 |
6.2 | Functions min , max , and avg used in a census report. 155 |
6.3 | Displaying information about the XForms processor using function property . 156 |
6.4 | Time-stamping a time-card using function now . 157 |
6.5 | Using instance to address multiple instances in an XForms model. 160 |
7.1 | Reflecting the result of an automatic lookup. 167 |
7.2 | Action message used to implement help and hint . 169 |
7.3 | Insert control that sets the value of the inserted node. 170 |
8.1 | Dynamically updating a book list as authors are selected. 182 |
9.1 | XForms puts a human face on Web services. 191 |
9.2 | XForms ”Connecting humans to XML powered Web Services. 193 |
9.3 | XForms news portal using RSS feeds. 198 |
11.1 | Markup tree corresponding to control input . 219 |
11.2 | Pseudo markup tree corresponding to control input . 219 |
11.3 | Aligning user interface controls and their labels using CSS. 220 |