Re: Top level variables and parameters

Subject: Re: Top level variables and parameters
From: Jeni Tennison <mail@xxxxxxxxxxxxxxxx>
Date: Wed, 8 Nov 2000 09:59:48 +0000

>   <xsl:param name="myparam"/>
>   <xsl:variable name="myvar" select="$myparam"/>
> In xt, this works fine. In Xalan 1.0.1, this works fine. However, in Xalan
> 1.2, this gives an error:
> "VariableReference given for variable out of context or without definition!
> Name = myparam, source tree node: #document"
> Does anybody know which behaviour is "correct"? ie is it valid to assign top
> level variables using top level parameters? This is useful sometimes, say
> when I pass in a nodeset as a parameter, and want to pick out a subset of
> elements and assign them to a variable. Of course, I'm sure there are
> alternative ways of doing what I want; the point is that I don't want to
> rewrite some existing stylesheets in order to upgrade to Xalan 1.2 and then
> find that this is non-standard behaviour.

The XSLT Rec. says:

"If the template or expression specifying the value of a global
variable x references a global variable y, then the value for y must
be computed before the value of x. It is an error if it is impossible
to do this for all global variable definitions; in other words, it is
an error if the definitions are circular."

>From what you have above, it doesn't look as though you have a
circular definition, and $myparam is defined before $myvar, so my
interpretation would be that this is a Xalan 1.2 bug.


Jeni Tennison

 XSL-List info and archive:

Current Thread