This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Top level variables and parameters


Phil,

>   <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."
                         http://www.w3.org/TR/xslt#top-level-variables

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.
                         
Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]