W3C home > Mailing lists > Public > public-qt-comments@w3.org > May 2010

RE: [XSLT] Nullifying the "current template rule" in xsl:for-each

From: Michael Kay <mike@saxonica.com>
Date: Sat, 8 May 2010 10:10:21 +0100
To: "'Evan Lenz'" <evan@evanlenz.net>, <public-qt-comments@w3.org>
Message-ID: <E71D78853EA7488B8FA70A38016BEB82@Sealion>

The reason for the restriction is that inside xsl:for-each, the context item
changes: so what would node would xsl:next-match be processing? This would
require augmenting the dynamic context with a "current matched item" which
isn't changed by xsl:for-each. It's not clear that there's a net usability
benefit in making the context even more complicated than it is already.

(Personal response)

Regards,

Michael Kay
http://www.saxonica.com/
http://twitter.com/michaelhkay  

> -----Original Message-----
> From: public-qt-comments-request@w3.org 
> [mailto:public-qt-comments-request@w3.org] On Behalf Of Evan Lenz
> Sent: 08 May 2010 01:32
> To: public-qt-comments@w3.org
> Subject: [XSLT] Nullifying the "current template rule" in xsl:for-each
> 
> Hello,
> 
> In a future version, it would be nice to see this restriction 
> relaxed, i.e. keep the "current template rule" around even 
> when inside <xsl:for-each>. This makes <xsl:next-match/> much 
> more useful (such as when duplicating an element in the 
> result that only appears once in the source document.)
> 
> E.g., given the identity transformation as the default 
> template rule, it would be nice to be able to do this:
> 
> <xsl:template match="*[@duplicate-me eq 'yes']">
>   <xsl:for-each select="1 to @how-many">
>     <xsl:next-match/>
>   </xsl:for-each>
> </xsl:template>
> 
> This example is simplistic, but I do have a real use case 
> (mapping multi-valued HTTP request parameters to a repeating 
> element in an XML template). And I've run into this 
> restriction before (when wanting to use <xsl:apply-imports/> 
> inside <xsl:for-each>).
> 
> Evan
> 
> --
> Evan Lenz
> Lenz Consulting Group, Inc.
> http://lenzconsulting.com
> +1 (360) 297-0087
> 
Received on Saturday, 8 May 2010 09:10:50 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 15:45:42 UTC