xsl-list
[Top] [All Lists]

Re: [xsl] Default tunnel parameters.

2008-08-26 09:46:41
Can you please estimate the value reported in xsl:message in a following 
stylesheet?
Saxon 9.1 reports value 2.
My expectation is 1.
If 2 is correct output then can you please justify it.

<xsl:stylesheet version="2.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
 xmlns:xs="http://www.w3.org/2001/XMLSchema";
 xmlns:p="http://www.nesterovsky-bros.com";>

 <xsl:template match="/">
   <xsl:call-template name="p:test"/>
 </xsl:template>

 <xsl:template name="p:test">
   <xsl:param name="index" as="xs:integer" select="1"/>
   <xsl:param name="value" tunnel="yes" as="xs:integer" select="$index"/>

   <xsl:choose>
     <xsl:when test="$index lt 2">
       <xsl:call-template name="p:test">
         <xsl:with-param name="index" select="$index + 1"/>
       </xsl:call-template>
     </xsl:when>
     <xsl:otherwise>
       <xsl:message select="$value"/>
     </xsl:otherwise>
   </xsl:choose>
 </xsl:template>

</xsl:stylesheet>


2 is correct

@tunnel="yes" on xsl:param means take the tunnelled parameter and not
the local one.  Because you've not tunnelled that parameter (using
tunnel="yes" on xsl:with-param) then it takes the local copy, which is
2.

In other words, @tunnel on xsl:param is useless without a matching
@tunnel on xsl:with-param somewhere higher up the call stack

-- 
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>