xsl-list
[Top] [All Lists]

[xsl] Variable and parameter with same name and scope allowed in 2.0

2006-05-02 05:59:33
It seems this is allowed in 2.0:

<xsl:function name="f:f">
        <xsl:param name="p"/>
        <xsl:variable name="p" select="concat($p, 'a')"/>
        <xsl:sequence select="$p"/>
</xsl:function>

The same goes for named templates - a variable is allowed to have the
same name as a parameter.

I can see how its possible - the variable will always come after the
parameter, so it will always 'win' when it comes to scope.  My concern
is that this sort of thing would usually end up from a mistake, and
then get silently handled by the code - it's shadowing, and its well
known how many problems that can cause.

I've only tried this with Saxon 8.7.1 so I'm assuming it's
intentional?  Is there a good reason for this - something that I'm not
seeing at the moment?

thanks
andrew

--~------------------------------------------------------------------
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>
--~--