- From: Erik Bruchez <ebruchez@orbeon.com>
- Date: Mon, 2 Mar 2020 16:04:51 -0800
- To: XForms <public-xformsusers@w3.org>
- Message-ID: <CAAc0PEXPD+JvjkxVApkNmZ4jyKGnxi+-LYYSCQrpHH-J60UuhQ@mail.gmail.com>
All,
The following is some feedback on the current spec text for `xf:copy` [1]
as we are implementing the feature.
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>
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.
The spec used to say that `xf:copy` must return "must be an element node".
This text is now no longer present.
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.
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.
- An item for which `xf:copy` returns the empty sequence must be ignored.
- Deselection requires deep comparing the result of `xf:copy` with the
bound element's children nodes. Any tree found is deleted following
`xf:delete`.
- What happens if `xf:copy` returns an atomic value?
- Selection requires inserting the items following `xf:insert`.
- Attributes nodes could be supported or not, but if so the behavior should
be described.
3. Mix and match of `xf:copy` and `xf:value`
A selection control can have multiple `xf:itemset` and `xf:item`. 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.
-Erik
[1]
https://www.w3.org/community/xformsusers/wiki/XForms_2.0#The_copy_Element_.28for_itemset.29
Received on Tuesday, 3 March 2020 00:05:17 UTC