XFormsReq12

From W3C XForms Group Wiki (Public)

Introduction

XForms 1.2 will build upon the solid foundation set forth by XForms 1.1. XForms 1.2 will will concentrate on making the form syntax easier for relative new form authors and ensure that there is smooth transition path to more advanced features.

Make model optional

Allow model item properties on from controls

When you are creating a form with an implicit instance and want to add some model item properties it will be natural if your are able to put the model item properties on from controls without the need to create a model item nor separate bind elements that bind to the same instance nodes.

A second use case arises when a form UI designer wants to add extra model item properties (for example extra constraint, stricter type, UI control is read only) which are stricter then the ones that are specified in the model which is created and maintained by the model author.

Allow submission elements without model element

Allowing a form author to only add a submission without the need to add a model will help the gradually introduction of the MVC model to the markup. A form author can start with creating forms that only contain form controls, and add a submission element whenever he needs it. When the form author requires more advanced features he can add the model element which will enable more advanced feature.

Note: Remove text about more advanced feature if we believe that adding a model will not enable more advanced feature (eventing?)

Enable SOAP with using an implicit instance

XForms 1.1 added the support for SOAP submission. In most programming languages the programmer doesn't need to create the SOAP envelope manually, but he can use tools to do it. In XForms 1.1 a form author typically needs to create two extra instances and some extra actions. The first instance will containing the SOAP envelope used for the web service call and the second instance will contain the result of that web service call. The extra actions will copy the data from the result instance to the instance where the form controls are bound to. XForms 1.2 will make it easier to call web services using SOAP, especially when doing RPC (Remote Procedure Call) style SOAP.

Add support for default values without the need of an instance element

When you created a form using an implicit instance in XForms 1.1 and want to add a default values for one form control you need to add the complete instance (structure and the default values for all controls) to your form. Adding support for default values without requiring to add the whole instance will smoothen the transition path from a simple form to a more advanced form.

Allow the same model item property to be specified multiple times on a node

If there are conceptually two different sets of model item properties that apply to two different sets of nodes you can use two separate bind elements to express those model item properties. But when those two sets of nodes have nodes in common those two binding elements are no longer allowed in XForms 1.1 if the binds have a model item property in common (XForms 1.1 allows you to specify a model item property only once for a node). To work around this limitation a third bind element is needed with the combined model item properties and a node set that only refers to the nodes in common. The the node set expressions of the two original bind elements need to be adjusted so that they have no nodes in common. This work around requires the duplication of the model item properties and more complex node set expressions, which is of course not desired for maintenance.

XForms 1.2 will allow the same model item property to be specified multiple times for the same node.

Simplify and improve events

In XForms 1.1 UI-events (for example xforms-valid/xforms-invalid, xforms-readonly/xforms-readwrite, ...) can be sent to UI controls even if the state of the control didn't changed. We will revisit which events and when those events needs to be sent in XForms 1.2 based on use cases.

Note: Do we need the list of use cases now?If not, how are we going to get the use cases.