- From: John Boyer <boyerj@ca.ibm.com>
- Date: Tue, 7 Nov 2006 16:54:30 -0800
- To: mark.birbeck@x-port.net
- Cc: www-forms@w3.org, www-forms-request@w3.org
- Message-ID: <OFEC342AF2.25788082-ON88257220.0003D6AB-88257220.0004FEF7@ca.ibm.com>
Hi Mark, The new text in 1.1 says that it performs the rebuild, recalculate, revalidate, refresh, not that it defers them. It says it is related to deferred update because performing the operations clears the deferred update flags. Deferred update is an *extra* set of rebuild/recalculate/revalidate/refresh operations that happens automatically at the end of an action sequence. Executing certain actions sets the flags, but performing an actual rebuild, recalculate, revalidate or refresh clears the corresponding flag(s). There is an important related point, though, about reasonable expectations after a send action has been executed. As written in XForms 1.0, the response to the submission is handled as part of the default event processing for xforms-submit. Since the send action dispatches the xforms-submit, it should be the case that actions running after the submit However, many implementers have implemented submission as an asynchronous operation in which the first four steps of xforms-submit default processing are performed, but the final step of processing the result happens later, whenever the result of the submission is obtained. This means that actions after a send must not count on the results of the send being available. In truth, form authors should not have been doing so anyway because you cannot count on the results of a send unless the submission ended without error, which you cannot detect after a "synchronous" send, except by application-specific means, Therefore, regardless of whether the XForms processor has implemented synchronous or asynchronous submissions, the form authors should put post-processing behavior in the handler for xforms-submit-done. 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 "Mark Birbeck" <mark.birbeck@x-port.net> Sent by: www-forms-request@w3.org 11/01/2006 02:10 AM Please respond to mark.birbeck@x-port.net To www-forms@w3.org cc Subject Submission and deferred update [Re: XForms - Submission on multiple instances?] Hi John, > To reiterate, Section 11.1, point 5, bullet 2. > The instance replacement of submission is followed immediately by *rebuild*, > recalculate, revalidate, *refresh*. It's true that the Second Edition spec is a bit clearer on the intent, and the part you refer to says this: Once the XML instance data has been replaced, the rebuild, recalculate, revalidate and refresh operations are performed on the model, without dispatching events to invoke those four operations. Submit processing then concludes after dispatching xforms-submit-done. That's a little clearer than the first edition, which said this: [T]he response is parsed as XML and all of the internal instance data corresponding to the submitted instance is replaced with the result, using the same processing as remote instance data retrieved through src, and the xforms-model-construct event is dispatched to element model. Submit processing then concludes after dispatching xforms-submit-done. > These are *not* deferrred update behaviors after some action (submission is not an > action; send is an action, but all it does is *initiate* a submission). > The rebuild, recalculate, revalidate, refresh are mandatory behaviors that occur *before* > xforms-submit-done is dispatched. Although submission is not an action, it can only 'do its thing' within an action handler. And since, according to 10.1.1, this: <xf:action ...> <xf:send ... /> </xf:action> will have deferred update behaviour, it seems that this in effect 'overrides' the update behaviour in 'send'. Now, you could say that this is just an ambiguity, and that it's not really clear which should take priority--the deferred update, or performing RRRR immediately--so I took a look at your latest XForms 1.1 draft, to see if you'd made it more explicit , and I discovered that it now says this: Once the XML instance data has been successfully replaced, the rebuild, recalculate, revalidate and refresh operations are performed on the model, without dispatching events to invoke those four operations. This sequence of operations is associated with special deferred update behavior. Submission processing then concludes after dispatching xforms-submit-done with appropriate context information. On other words, the additional second sentence seems to make it even clearer that the RRRR is subject to deferred update! I thought it worth flagging up. Regards, Mark -- Mark Birbeck CEO x-port.net Ltd. e: Mark.Birbeck@x-port.net t: +44 (0) 20 7689 9232 w: http://www.formsPlayer.com/ b: http://internet-apps.blogspot.com/ Download our XForms processor from http://www.formsPlayer.com/
Received on Wednesday, 8 November 2006 00:54:41 UTC