- From: Steven Pemberton <steven.pemberton@cwi.nl>
- Date: Wed, 04 Mar 2020 12:12:42 +0100
- To: XForms <public-xformsusers@w3.org>, "Erik Bruchez" <ebruchez@orbeon.com>
- Message-ID: <op.0gyb3g1qsmjzpq@steven-xps13>
Good comments. On Tue, 03 Mar 2020 01:04:51 +0100, Erik Bruchez <ebruchez@orbeon.com> wrote: > 1. "It can only be used within itemset elements." > > This is an unnecessary restriction, which was in XForms 1.1 too. It can > also work >with `xf:item` without any issue so I think we should lift > this restriction. > > <select> > <item> > <label>Chocolate</label> > <value ref="instance('chocolate')"/> > </item> > <item> > <label>Strawberry</label> > <value ref="instance('strawberry')"/> > </item> > </select> Did you mean to use <copy/> here? So your proposal is that wherever <value/> can be used, <copy/> can be used too? That would mean we would redefine how to tell the difference between a simple and a complex selection. > 2. The text is now under-specified > > The behavior is now entirely specified by the following text: > > "it works with subtrees of instance data" > > I think that this is not enough. A lot of the text got factored out into the section on Selection controls: https://www.w3.org/community/xformsusers/wiki/XForms_2.0#Selection_Controls "A selection control can be "simple" or "complex": * a simple selection only selects simpleContent values and uses item elements to provide the list of values, or an itemset element with a value child or attribute; * a complex selection selects values consisting of complex types (with children nodes) and uses itemset with a copy child or attribute." > The spec used to say that `xf:copy` must return "must be an element > node". >This text is now no longer present. I think words to that effect are higher up. > I think it makes sense to make a distinction between `select1` and > `select`: > > For `select1`: > > - Deselecting an item should clear the content of the bound element (for > >attributes, if supported, see below). > - Selecting an item inserts all the items returned by `xf:copy` into the > bound >element following `xf:insert`. > - It's ok if `xf:copy` return an empty sequence (simply nothing gets > inserted upon >selection). > - Attributes nodes could be supported or not, but if so the behavior > should be >described. I think this matches what is there for select1, although I'm not sure what you are proposing for attributes. > For `select`: > > - I don't think it makes sense for `xf:copy` to support more than one > item, so >`xf:copy` follows the first-item rule. Hmm. I hadn't thought about this before, but what about <select ref="selection"> <item label="red" copy="choices[colour='red']"/> <item label="green" copy="choices[colour='green']"/> <item label="blue" copy="choices[colour='blue']"/> </select> > - An item for which `xf:copy` returns the empty sequence must be ignored. I believe this is already so described. > - Deselection requires deep comparing the result of `xf:copy` with the > bound >element's children nodes. Any tree found is deleted following > `xf:delete`. "For complex selections, the individual subtrees associated with the newly selected and deselected items are added or removed individually by using insert and delete;" However, it only used the word "matches" rather than "deep compare". > - What happens if `xf:copy` returns an atomic value? What does <insert/> do in this case? > - Selection requires inserting the items following `xf:insert`. > - Attributes nodes could be supported or not, but if so the behavior > should be >described. What would you propose as being the behaviour? > > 3. Mix and match of `xf:copy` and `xf:value` > > A selection control can have multiple `xf:itemset` and `xf:item`. As children of <choices/> you mean? <select ref="x"> <choices label="a"> <item label="a1" value="1"/> </choices> <choices label="b"> <itemset .../> </choices> </select> > What happens if there is a mix and match of `xf:copy` and `xf:value`? We > could >say that this is implementation-dependent or that this follows > the `xf:copy` >logic, with an `xf:value` values behaving like an > `xf:copy` that returns an XPath >string value. Are there use cases? Steven > > -Erik > > [1] > https://www.w3.org/community/xformsusers/wiki/>XForms_2.0#The_copy_Element_.28for_itemset.29
Received on Wednesday, 4 March 2020 11:12:58 UTC