[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] How to use generate-id() inside an xsl:function without a node available?


Subject: RE: [xsl] How to use generate-id() inside an xsl:function without a node available?
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Tue, 27 Feb 2007 21:16:33 -0000

>    <xsl:variable name="id-node"><some-node /></xsl:variable>
>    <some-elem id="{generate-id($id-node)}" /> </xsl:for-each>
> 
> this generates unique ids, even on recursive calling of the 
> function (if the for-each is wrapped inside a function). Not 
> sure this is "REC behavior", but it sure does what I want. 
> Maybe someone can confirm that this is indeed the expected 
> behavior and that I can rely on the method to return a unique 
> id value within the same process.


Yes, you can rely on this behaviour. It's one of the messier aspects of the
XSLT/XQuery processing model that there is this slight side-effect of
calling functions - it means that some of the optimizations done in other
functional programming languages can't safely by done in XSLT or XQuery.

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


Current Thread
Keywords