W3C home > Mailing lists > Public > xsl-editors@w3.org > October to December 2000

Feature request: tokenized key table access

From: G. Ken Holman <gkholman@cranesoftwrights.com>
Date: Wed, 11 Oct 2000 16:31:02 +0800
Message-Id: <>
To: XSL Editors <xsl-editors@w3.org>
Hi folks!

I've been using the key() function a lot lately, and I've been using it to 
store name tokens similar to (usually) ID values.  I would find it helpful 
if there were a way at declaration time to instruct the processor to 
tokenize the string and make individual key table entries with each 
individual token as the string value.

Also, I understand the need for the second argument of the key() function 
to be a verbatim string, but I would like a function that would tokenize 
the second argument as id() does and return all key table members with a 
value of one of the name tokens.

I am aware that a recursive function could walk through the arguments and 
tokenize them and when done act on the built-up node set ... but it is 
quite awkward.  As for the declaration, there is no way to accomplish that.

So, not to ask for the following syntax, but I would envisage something 
like the following for topic maps where attribute arguments are strings of 
multiple name tokens:

    <xsl:key name="assocs" match="assoc" use-tokenized="@types | @other"/>

       - create as many entries in table as tokens in all given strings

    <xsl:variable name="assocs" select="key-tokenized('assocs',refs/@ref)"/>

       - return as many entries from table as tokens in all given strings


.............. Ken

G. Ken Holman                    mailto:gkholman@CraneSoftwrights.com
Crane Softwrights Ltd.             http://www.CraneSoftwrights.com/m/
Box 266, Kars, Ontario CANADA K0A-2E0   +1(613)489-0999   (Fax:-0995)
Web site: XSL/XML/DSSSL/SGML services, training, libraries, products.
Book: Practical Transformation Using XSLT and XPath ISBN1-894049-05-5
Article:          What is XSLT? http://www.xml.com/pub/2000/08/holman
Next public instructor-led training:     2000-10-03/05,2000-10-09/10,
-        2000-10-19,2000-11-06/07,2000-11-12,2000-12-03/04,2001-01-27
Received on Wednesday, 11 October 2000 08:10:34 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:44:20 UTC