Re: XForms 1.0: My Opinions

T. V. Raman wrote:

>John --
>
>When we specified the XForms processing model as we did in the
>specification we had two goals:
>
>0) Not to specify it  in terms  of a given algorithm or implementation
>
>and 
>1) at the same to ensure that the same form gave the same answer
>irrespective of how you implemented the processor.
>
>We achieved this by specifying the processing model declaratively i.e.
>in terms of pre and post conditions.
>
>We codified this pre-condition / post-condition specification in terms
>of events and event handlers.
>  
>
This is where I disagree.  Have pre and post conditions.  Specify how 
things are declaratively going to work.  But don't make events unless 
someone needs to catch them.

>Now, from the scripting context  --especially in thinking of it in a
>runtime like Mozilla --you may well be right that there may be more
>granularity in the events as specified than you might perhaps need in
>scripting inside Mozilla--
>However, this granularity might also be key to implementing a
>distributed XForms processor where not all stages of processing live
>on the same point of the network.>>>>> "John" == 
>  
>
Could you give an example of what you mean?  As long as you control both 
parts of this distributed XForms processor, you can handle both sides of 
the event.  If you don't, I would very much like to know what your 
vision is for this.

>In summary,  the events  such  as model-initialize and friends are
>there to specify the processing model declaratively.
>  
>
This is one of the things I think we should avoid--unnecessary physical 
constraint of the implementation (the events do this).  An XForms 
implementation should work "as if the following algorithm were 
implemented"--but it should be kept a black box wherever possible so 
that the implementation can make optimizations that do not change the 
output.

As an example, the form submission algorithm in the HTML spec is 
suboptimal, containing several major steps, some of which can be 
combined without affecting the output of the algorithm, which speeds 
submission up.  If the HTML spec had specified that events were fired in 
between each stage, browsers would have no choice but to follow the 
suboptimal algorithm (and to no effect, since the events are useless for 
anyone to catch).  But since it did not, I was able to combine steps and 
do things more efficiently.

We should provide for the future in this way as well.  Putting events 
between each step is like saying "the implementation MUST be coded in 
this specific way, with no deviation, even if the results are the same."

>With respect to DOM3 events we clearly couldn't depend on something
>that wasn't out there yet  as a W3C final CR --which is why we chose
>to create a set of abstract event types in the XForms namespace.
>  
>
IMO, the event names are just names :)  If we choose names that are the 
same for the same function, who will blame us?  Also, we already do some 
DOM* events in the spec.

>As with XPath 2.0, we will probably use DOM 3.0 in XForms 2.0 --wel,
>that is once we wind up 1.0.
>  
>
The thing is, in a web browser at least, you just don't get by without a 
DOM in forms.  More than anywhere else, this is where JS is going to be 
used in a browser.

--John

Received on Thursday, 5 September 2002 20:16:41 UTC