- From: John Boyer <boyerj@ca.ibm.com>
- Date: Wed, 18 Jul 2007 10:55:28 -0700
- To: ebruchez@orbeon.com
- Cc: public-forms@w3.org, public-forms-request@w3.org
- Message-ID: <OF4A8E4284.FB23F0BD-ON8825731C.0061D1E7-8825731C.0062798D@ca.ibm.com>
Good point indeed about the use of context in insert and delete.
I don't like features that encourage authors not to use a best practice on
another feature (e.g. using context on insert/delete).
Although I prefer to have a more useful xforms-insert and xforms-delete, I
could live with the removal of the binding property. It now seems clear
that it does not provide much benefit over calling local-name() or some
such function on the inserted or deleted node(s).
I also suspect Leigh feels more strongly that the feature should be
removed than I or anyone else feels about retaining it.
If any working group member has an objection to removing the binding
property from the xforms-insert and xforms-delete events, please say so on
this list before the next telecon.
Thanks,
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
Erik Bruchez <ebruchez@orbeon.com>
Sent by: public-forms-request@w3.org
07/18/2007 04:10 AM
Please respond to
ebruchez@orbeon.com
To
public-forms@w3.org
cc
Subject
Re: XForms 1.1 Last Call: comment about 4.4.5 The xforms-insert Event
(PR#108)
John & all,
> Regarding the question of whether there was any kind of resolution,
> no there was no resolution to remove the binding property.
That's what I feared ;-)
> [...] but Leigh in particular was unhappy with the binding property
> because it cannot be resolved to retrieve the nodeset without
> knowing whether the binding value comes from a bind attribute or a
> nodeset attribute.
There is more. Of course you can have:
<xforms:insert context="A/B" nodeset="name" .../>
<xforms:insert context="X/Y" nodeset="name" .../>
or even:
<xforms:group ref="A/B">
<xforms:insert nodeset="name" .../>
</xforms:group>
<xforms:group ref="X/Y">
<xforms:insert nodeset="name" .../>
</xforms:group>
> We need a simple way for authors to be able to detect inserts and
> deletes that are happening to particular repeated data sets when
> there is more than one repeat in the form. For example, if I have
> two inserts or deletes that operate over A/B/name and X/Y/name, the
> binding property of the events can easily be used to help me figure
> out which kind of 'name' I am dealing with, so I can use conditional
> logic to respond appropriately.
I don't disagree that it is a desirable requirement, although I don't
think I have hit the use case myself.
My feeling is that using the value of @bind or @nodeset is not
appropriate for this task, because neither one actually identifies
that node-set. Sure, the form author can tweak XPath expressions to
make the "binding" unique enough, but it is a clunky solution in my
opinion.
What about passing the id attribute of xforms:action instead? Would
that satisfy the requirement? Since ids are unique, you would have to
use different ids if you have a combination of multiple
xforms:insert/xforms:delete actions operating over that node-set, but
you could detect this, e.g.:
if (starts-with(event('action-id'), 'repeat1-')) ...
There is also the possibility of adding a new attribute to
xforms:insert and xforms:delete just for that purpose. For example:
<xforms:insert parameter="repeat1" .../>
This is a fairly common pattern in programming used typically with
callback functions: here we will get "called back" with xforms-insert,
and we want to be able to pass our own identifying information to that
callback by passing it to the action. We would recover it with
something like:
event('parameter')
I would find either of these solutions better, because much more
consistent.
> However, at the face to face, the alternative was proposed of using
> a generate-id() function. As I pointed out in my email below, this
> proposal is more flawed because, although it is better for
> insertion, it completely fails for deletion.
I agree this wouldn't be a good solution either.
-Erik
--
Orbeon Forms - Web Forms for the Enterprise Done the Right Way
http://www.orbeon.com/
Received on Wednesday, 18 July 2007 17:55:58 UTC