W3C home > Mailing lists > Public > www-forms@w3.org > April 2007

Re: <repeat/> Element

From: John Boyer <boyerj@ca.ibm.com>
Date: Tue, 17 Apr 2007 13:49:49 -0700
To: Ivan Latysh <IvanLatysh@yahoo.ca>
Cc: www-forms@w3.org, www-forms-request@w3.org
Message-ID: <OF48515FD2.D894A257-ON882572C0.006FD57C-882572C0.00726E96@ca.ibm.com>
Hi Ivan,

You're suggesting that the repeat nodeset should be able to cover any set 
of nodes without further restrictions.  This is likely to happen for 1.1 
because it is a last call comment and because there is good support in the 
group to do so.  In fact, this is what we mean when we say we will "get 
rid of homogeneous collection" so I don't understand why you think there 
is a difference.

Moreover, although what you want will probably occur, it is hard to 
connect that occurrence to the rationale you provided. 

All of the nodes in a nodeset can indeed have a common parent node in the 
instance data.  XPath does not require that the nodes in the nodeset must 
be somehow owned by the nodeset and hence not still in the instance tree 
from which they were drawn, and I have never seen any technology that does 
this.  Indeed, XPath is internally driven by nodesets to drive each 
location step, so if nodes in a nodeset have no parents, then how could 
you process the ancestor axis on the next location step? 

Clearly, every node in the nodeset has a parent, and the XForms 1.0 spec 
places the further restriction on repeats that the nodeset over which it 
operates must contain nodes that have the same parent.  To check this is a 
trivial matter of post-processing the nodeset returned by XPath and 
producing an xforms-binding-exception if any node of instance data has a 
parent different from the one that is the parent of the first node.  But 
most implementations did not add the extra check.

Finally, by the same arguments, an XForms processor could indeed impose 
the restriction that the nodes in the nodeset must be contiguous elements. 
 The instance data is considered to be an XPath data model, and the 
nodeset identifies nodes in the instance data.  So, a simple 
post-processing step to XPath evaluation can determine, for each node, do 
the preceding and succeeding elements in the XPath data model appear in 
the nodeset or not?

For what it's worth, the sentence is missing a comma at the end of the 
parenthetic phrase "with the same local name and namespace name". However, 
it does not appear to me that this minor grammatic error gives rise to the 
issues you raised.

Cheers,
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





Ivan Latysh <IvanLatysh@yahoo.ca> 
Sent by: www-forms-request@w3.org
04/13/2007 06:05 PM
Please respond to
Ivan Latysh <IvanLatysh@yahoo.ca>


To
www-forms@w3.org
cc

Subject
<repeat/> Element







Hello All,

 I want to point into inconsistency in "9.3.1 The repeat Element" (
http://www.w3.org/TR/xforms11/#ui-repeat).

 [quote]
  1 This element defines a UI mapping over a homogeneous collection 
selected by Node Set Binding Attributes.
  2 This node-set must consist of contiguous child element nodes, with the 
same local name and namespace name of a common parent node.
  3 The behavior of element repeat with respect to non-homogeneous 
node-sets is undefined.
 [/quote]

 This definition contradict itself.
 
 Line 1 "collection selected by Node Set Binding Attributes", let see what 
does it mean:
 [quote from http://www.w3.org/TR/xforms11/#structure-attrs-nodeset]
  The following attributes define a binding between an XForms element such 
as a form control or an action and a node-set
  defined by the XPath expression.
 [/quote]
 Indeed, "collection selected by Node Set Binding Attributes" will return 
a node-set and according to XPath spec
 node-set is a collection of nodes without duplicates.
 (Since WG agreed that "homogeneous collection" is confusing and it will 
be removed I will skip it.)

 Line 2 completely contradict to line 1, node-set cold not have a common 
parent because it is a collection, as well it
 can not "consist of contiguous child element nodes"

 As the result <repeat/> element unable to work with node-sets even spec 
define that it should.

 My proposal is to reduce definition to a single sentence:
 [copy]
  1 This element defines a UI mapping over a node-set selected by Node Set 
Binding Attributes.
 [/copy]

 Such change will have absolutely no impact on existing forms and have 
minimal impact on implementations.
 
-- 
Best regards,
 Ivan                            mailto:IvanLatysh@yahoo.ca
Received on Tuesday, 17 April 2007 20:51:06 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Saturday, 10 March 2012 06:22:09 GMT