- From: <bugzilla@wiggum.w3.org>
- Date: Sun, 16 Mar 2008 19:38:26 +0000
- To: public-qt-comments@w3.org
- CC:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=5577
Summary: [XSLT 2.1] Composite (multi-part) keys
Product: XPath / XQuery / XSLT
Version: Working drafts
Platform: PC
OS/Version: Windows XP
Status: NEW
Severity: normal
Priority: P2
Component: XSLT 2.1
AssignedTo: mike@saxonica.com
ReportedBy: mike@saxonica.com
QAContact: public-qt-comments@w3.org
We currently allow composite sort keys (sort first by surname, then given
name), but we do not allow composite access keys (xsl:key) or grouping keys.
Instead we require users to construct such keys by string concatenation, which
is clumsy and error prone because the result may not be unique, and it prevents
use of non-string types as keys.
The simplest way of defining a composite access key would be a new attribute
<xsl:key composite="yes"/>. If the use expression is then multivalued, instead
of indexing each item in the use expression as a separate key value, the
sequence as a whole would be treated as a single key value, to be compared
after atomization using deep-equal().
Alternatively we could adopt a syntax closer to that of xsl:sort, using one
element for each component of the key.
Similarly for xsl:for-each-group we could add an attribute composite="yes", or
we could allow multiple <xsl:group-by> children.
The advantage of separate elements is that aspects such as collation can be
defined separately for each component. The advantage of a composite="yes"
attribute is that the number of components does not need to be known at compile
time.
Received on Sunday, 16 March 2008 19:38:58 UTC