No, both Xalan interpretive and compiled processors don't have this optimization.
Christine Li XML Transformation IBM Toronto Lab Tel: (905)413-2601 Email: [EMAIL PROTECTED] Michael Ludwig <[EMAIL PROTECTED]> 24/10/2008 11:34 AM To xalan-j-users@xml.apache.org cc Subject Re: Java extensions namespaces Fausto schrieb: > Also, I have read in an > article<http://www.ibm.com/developerworks/library/x-xalanextensions.html >that > XSLT processors should have some optimization on extension functions, > assuming these functions should not have any side effect and always return > the same value when some parameter is passed. This assumed, the optimization > would cache the results of last calls and their parameters, and our > functions wouldn't be called as many times we thought them would be called. > > My questions are: does xalan have this optimization [...] ? Apparently not: 17:30:31,43 C:\MILU\dev\XSL-Xalan # more increment-via-extension.xsl /T1 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:own="http://my.own.extension" exclude-result-prefixes="own"> <xsl:output omit-xml-declaration="yes" indent="yes"/> <xsl:template match="/*"> <xsl:copy> <eins><xsl:value-of select="own:Increment.new()"/></eins> <zwei><xsl:value-of select="own:Increment.new()"/></zwei> </xsl:copy> </xsl:template> </xsl:stylesheet> 17:30:49,20 C:\MILU\dev\XSL-Xalan # more urmel.xml <Urmel/> 17:31:00,65 C:\MILU\dev\XSL-Xalan # more my\own\extension\Increment.java package my.own.extension; public class Increment { private static int counter; public Increment() { counter++; } public String toString() { return Integer.toString( counter); } } Michael Ludwig