W3C home > Mailing lists > Public > public-forms@w3.org > October 2007

XForms 1.1 spec update for dynamic dependencies

From: John Boyer <boyerj@ca.ibm.com>
Date: Tue, 9 Oct 2007 18:16:23 -0700
To: Forms WG (new) <public-forms@w3.org>
Message-ID: <OFF444D71A.6F937DCD-ON88257370.00053B38-88257370.0006FE9A@ca.ibm.com>
Please visit the latest editor's draft [A], which contains the changes 
needed for rigorous definition of dynamic dependencies.

[A] http://www.w3.org/MarkUp/Forms/specs/XForms1.1/index-diff.html

There's actually a bit of stuff to go through here, besides the subsection 
with the new definition.  Additional changes were necessary to percolate 
the proper meaning throughout the spec.

Here's what I changed:

1) Added a section to define references, dependencies, reference lists, 
dependency lists and dynamic dependencies [B]

[B] 
http://www.w3.org/MarkUp/Forms/specs/XForms1.1/index-diff.html#expr-dependencies

In particular, note the definition of repeat index management as implicit 
instance data management.  This is extremely important to including 
invocations of index() in the automatic update of UI expressions.  It also 
caused the most amount of "percolation" to other areas of the spec

2) Repurposed the "Binding Expressions" section to talk about all 
Expression Categories [C]

[C] 
http://www.w3.org/MarkUp/Forms/specs/XForms1.1/index-diff.html#expr-expression-categories

In particular, note the separation of model binding expressions from 
computed expressions.  Also see the note discussing how rebuilds can be 
associated with automatic repeat index changes that occur due to change of 
focus.

3) The view of repeat index as implicit instance data caused me to realize 
that setindex is a special kind of setvalue.  Hence, deferred update flag 
settings for setvalue must now also occur for setindex.  Both the deferred 
update section setindex in particular were updated to reflect this.  It 
also seemed appropriate to say a little more about how actions setvalue, 
insert, delete, setindex, and toggle affect the deferred update in those 
notes we have at the end of each of those actions.

4) I modified the setfocus action, the xforms-focus description and the UI 
repeat processing text to add a sentence pointing out that changing the 
focus may cause repeat index changes and that such changes occurred as if 
by setindex.

5) While cleaving model binding expression from computed expression and 
rigorously defining dynamic dependencies and where they could safely be 
used without calling some kind of "rebuild", I noted several glaring 
omissions, which I fixed.  Firstly, we really only had a half-way attempt 
to separate UI binding expressions from binding expressions appearing in 
actions and on submission, so those are now in a separate category in [C] 
where it is made obvious that they are evaluated as the action or 
submission occurs (rather than, say, during a rebuild or a refresh).  See 
[D].

[D] 
http://www.w3.org/MarkUp/Forms/specs/XForms1.1/index-diff.html#expr-actions-submissions

Secondly, we talked a lot about UI Binding Expressions, which were defined 
to be binding expressions on form controls.  Therefore, UI refreshment 
technically did not cover the behavior of the value attribute on output, 
nor the bindings on helper elements like label, help, hint, alert, etc. 
Now, I have defined a broader class of "UI Expression" which contains UI 
Binding Expressions as well as all other expressions used in UI elements. 
So now it is clear that all of these are to be updated on refresh. See [E]

[E] 
http://www.w3.org/MarkUp/Forms/specs/XForms1.1/index-diff.html#expr-ui-expressions

6) While in the neighborhood, I noticed that the definition of the global 
attribute xforms:bind for use on custom controls was incorrect, so I 
changed [F].

[F] 
http://www.w3.org/MarkUp/Forms/specs/XForms1.1/index-diff.html#ui-binding-foreign

Note that the issue here is that it must be known whether xforms:bind 
represents an single node binding or a nodeset binding.  The section 
claimed it could be either, but this makes no sense.  Since we also have 
xforms:repeat-bind, it was clear that xforms:bind is for single node 
bindings only.

7) The glossary of terms entries for model binding expression and UI 
binding expression were updated to reflect the above points.

John M. Boyer, Ph.D.
STSM: Lotus Forms Architect and Researcher
Chair, W3C Forms Working Group
Workplace, Portal and Collaboration Software
IBM Victoria Software Lab
E-Mail: boyerj@ca.ibm.com 

Blog: http://www.ibm.com/developerworks/blogs/page/JohnBoyer
Received on Wednesday, 10 October 2007 01:16:57 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 1 October 2013 22:06:45 UTC