- From: Steven Pemberton <steven.pemberton@cwi.nl>
- Date: Thu, 04 Apr 2024 17:48:27 +0000
- To: XForms <public-xformsusers@w3.org>
Second strawman, though it comes in two parts.
Part One: binding
There are two new bind properties: @sorted[XPath expression] default is
empty, and @direction["up"|"down"]: default is up
If a bind has such a property:
<bind ref="item" sorted="date"/>
then the nodeset referenced is kept sorted by the system, using the XPath
expression as key.
<bind ref="item" sorted="lowercase(name)"/>
<bind ref="instance('data')" sorted="substring(date, 6, 2)" />
<bind ref="instance('books')" sorted="."/>
@direction determines whether to sort increasing or decreasing.
If @sorted is empty, then the items are not sorted, but keep their document
order.
Part Two: Use on controls
It was pointed out that it would be useful to use sorting on a repeat (for
instance), independent of binds. This meshes also with an earlier request
by Alain that bind properties be usable on controls.
So proposal part two is to allow all bind attributes to be used on
controls, where the properties then only apply to the value(s) selected by
the control at that point, and not to the instance data in general. For
instance:
<trigger ref="index" label="previous" relevant=". > 1">
<setvalue ev:event="DOMActivate" ref="." value=". - 1"/>
</trigger>
In this way we can apply the sorted attributes to a repeat, or itemset. For
instance:
<repeat ref="item" sorted="received-date">
...
Diffference with XPath 3.
XPath 3 has a "collation" attribute, which is not used here.
https://www.w3.org/TR/xpath-functions-31/#func-sort
Steven
Received on Thursday, 4 April 2024 17:48:34 UTC