W3C home > Mailing lists > Public > www-forms@w3.org > October 2006

RE: Reset and insert actions

From: Klotz, Leigh <Leigh.Klotz@xerox.com>
Date: Wed, 25 Oct 2006 11:19:33 -0700
Message-ID: <E254B0A7E0268949ABFE5EA97B7D0CF4025D11CD@usa7061ms01.na.xerox.net>
To: "John Boyer" <boyerj@ca.ibm.com>, "Aaron Reed" <aaronr@us.ibm.com>
Cc: <www-forms@w3.org>, <www-forms-request@w3.org>
Doesn't duplicate handle the case for remembering a saved set point?


From: John Boyer [mailto:boyerj@ca.ibm.com] 
Sent: Wednesday, October 25, 2006 11:18 AM
To: Klotz, Leigh; Aaron Reed
Cc: www-forms@w3.org; www-forms-request@w3.org
Subject: RE: Reset and insert actions

Hi Leigh and Aaron, 

Well, Leigh's example doesn't sound like the most prevalent usage pattern by any means because it seems to assume replace none, and because it relies on the processor taking a snapshot of instance data on startup.  We ended up with a whole pile of errata to XForms 1.0 to dig our way out of the problems this caused for insert.  Basically, it assumes that the form data will never be saved and reloaded, i.e. that the form will never be saved in-progress only to have the data reloaded when the user wants to continue the work.  It's hard to imagine adding yet another attribute to submission to optimize the expression of this case. 

Nonetheless, it does so happen that we have future requirements  to determine common usage patterns and make more direct ways of getting at those features.  I think you have described the following pattern:: 

   prototypical instance 
   submission replace=none 
        on xforms-submit-done, insert prototypical instance into instance 

and that you would want to optimize this with some kind of boolean reset-when-done attribute on submission.  The implementation would consist of having the processor remember some initial instance data on model construct and then use that to replace an instance when submission is done.  Assume source instance, not target since assume replace=none. 

Finally, in Aaron's case it is hard to imagine how the new feature could put the model in a state unachievable by use of an insert action given the claim that reseting the instance to some initial state is indeed equivalent to having an extra instance with that initial data and then inserting it into the instance for which reset is desired.   It's just two different ways of spelling the same operation, so at least the semantics should be identical. 

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

Blog: http://www.ibm.com/developerworks/blogs/page/JohnBoyer

"Klotz, Leigh" <Leigh.Klotz@xerox.com> 
Sent by: www-forms-request@w3.org 

10/25/2006 10:13 AM 

RE: Reset and insert actions


For some example of this use case, if you use the same submission to reset the instance data to the initial state when you post the filled-out info then it should happen automagically. 

-----Original Message-----
From: www-forms-request@w3.org [mailto:www-forms-request@w3.org] On Behalf Of Aaron Reed
Sent: Tuesday, October 24, 2006 4:31 PM
To: www-forms@w3.org
Subject: Re: Reset and insert actions

The only reason I can think of is that data in separate models are 
absolutely independent but data that is in the same model could very 
well be dependent on each other.  So if you reset some instances and not 
others, you could get the model in a state that it could not get in by 
any other means.  Like you might have computed nodes that aren't reset 
even though the nodes they depend on are reset.  So keeping this on a 
model basis it saves the form author from himself.

Another inconsistency to using @instance is that it would force the form 
author to give the default instance document an id whereas most other 
things in XForms defaults to the first instance document in a model if 
instance isn't specifically used.

But I see your point.  It could be useful if used carefully.


Rafael Benito wrote:
> Hi all,
> the reset action accepts a single attribute for the model to reset. It 
> would be useful for authors to add a second optional attribute @instance 
> to reset a single instance rather than the whole model. The same effect 
> could be accomplished using a sequence of setvalue, insert and delete 
> actions; but anyway it would be simpler to add @instance. In data entry 
> applications it is a common case to enter some general info and, then, 
> run through a loop entering data, sending them and then starting again 
> the loop but keeping the general info introduced at the begining of the 
> form execution. For this kind of applications, it would be useful, as 
> you can store general info in ino instance and the rest of the data in a 
> different one which is reset for every iteration.
> In any case, the reset implemetation requires that the processor 
> "remembers" the initial state of the model. This fact draws me to some 
> other thoughts: in Xforms 1.0 there was a problem with the insert action 
> when the last node of an homogenous collection is deleted. This was 
> solved in 1.1 through the use of conditional actions and changes to the 
> insert action. Nevertheless, it would be simpler for authors to let the 
> processor  "remember" the "structure" of the homogenous collection 
> (rather than the initial state, because it could contain several rows 
> and that is not what we want) and let the insert action work correctly, 
> even if nodeset is empty but this was not the case for the initial data. 
> In case the author wants to insert nodes with a different structure, he 
> can still do it using the @origin attribute of the insert.
> Regards,
> *Rafael Benito Ruíz de Villa*
> Director Area e-business
> *Móvil* (+34) 617 314 293
> rbenito@satec.es <mailto:rbenito@satec.es>
> MADRID <http://www.satec.es>
> Avda. Europa, 34 A
> 28023 Aravaca
> Telf.: (+34) 91 708 90 00 / 91 211 03 00
> Fax: (+34) 91 708 90 90 / 91 211 03 90
Received on Wednesday, 25 October 2006 18:20:11 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:36:18 UTC