Re: [xsl] Should variable resolution be done at compile-time or run-time?

Subject: Re: [xsl] Should variable resolution be done at compile-time or run-time?
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Fri, 17 Oct 2003 17:11:55 -0400
Hi Eric!

At 2003-10-17 12:28 -0700, Eric Promislow wrote:
Here's the code, which tries to reference a variable
bound in an outer dynamic scope, but foreign static scope:

?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl=""; version="1.0">
<xsl:output method="xml" />

<xsl:template match="/">
    <xsl:variable name="v1">bupkis</xsl:variable>
    <xsl:apply-templates />

<xsl:template match='x'>
    First, var v1 = <xsl:value-of select="$v1"/>.
    Text = <xsl:value-of select='.' />

I can infer an understanding of your use of the term "dynamic scope", but the scope of all variables not in global scope in XSLT 1.0 is the following siblings and their descendants after the variable declaration, which is what I assume you mean by "static scope".

I don't think any XSLT processor would have $v1 in scope in your code fragment because it isn't in one of the following siblings and their descendants from the declaration in the template of the template rule of the root node.

The last paragraph of Section 11 (before section 11.1) states the region of visibility is solely determined by the stylesheet tree, which I think would exclude your use of the concept of a dynamic scope. I just found in 11.5 what I said above about the visibility being following siblings and their descendants.

So, I believe *all* variable scoping is done at compile time.

Does that help?

.......................... Ken

Next public US delivery:        3-day XSLT/2-day XSL-FO 2003-10-13
Next public European delivery:  3-day XSLT/2-day XSL-FO 2003-11-??
Instructor-led on-site corporate, government & user group training
for XSLT and XSL-FO world-wide:  please contact us for the details

G. Ken Holman                 mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
Crane Softwrights Ltd.
Box 266, Kars, Ontario CANADA K0A-2E0    +1(613)489-0999 (F:-0995)
ISBN 0-13-065196-6                       Definitive XSLT and XPath
ISBN 0-13-140374-5                               Definitive XSL-FO
ISBN 1-894049-08-X   Practical Transformation Using XSLT and XPath
ISBN 1-894049-11-X               Practical Formatting Using XSL-FO
Member of the XML Guild of Practitioners:
Male Breast Cancer Awareness

XSL-List info and archive:

Current Thread