RE: RE: RE: [xsl] get variable value in another template

Subject: RE: RE: RE: [xsl] get variable value in another template
From: cknell@xxxxxxxxxx
Date: Wed, 28 Dec 2005 11:16:27 -0500
I don't understand your comment. Take this stylesheet for instance:

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
  <xsl:output method="xml" indent="yes" />
  <xsl:strip-space elements="*" />

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

  <xsl:template name="T1">
    <xsl:variable name="V1">rocket</xsl:variable>
    <r><xsl:call-template name="T2" /></r>
  </xsl:template>

  <xsl:template name="T2">
    <xsl:value-of select="$V1" />
  </xsl:template>

</xsl:stylesheet>

Is the xsl:template element with the name attribute value of "T2" on the following-sibling axis of the xsl:template element with the name attribute of "T1"?
-- 
Charles Knell
cknell@xxxxxxxxxx - email



-----Original Message-----
From:     Haarman, Michael <mhaarman@xxxxxxxxx>
Sent:     Wed, 28 Dec 2005 09:19:59 -0600
To:       "'xsl-list@xxxxxxxxxxxxxxxxxxxxxx'" <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Subject:  RE: RE: [xsl] get variable value in another template

> From: cknell@xxxxxxxxxx

> A variable defined in a template has the scope of the 
> template. That is to say, if you define a variable in 
> template A, you cannot access it from template B unless you 
> pass the variable as a parameter to template B.

Strictly speaking, variables not defined with a top-level declaration
(global variables) are locally scoped to the template in which they are
declared *and* following-sibling templates and their descendants.  Such
locally scoped declarations will tread upon like-named global declarations.

HTH,

Mike


-----------------------------------
Mike Haarman,
XSL Developer,
Internet Broadcasting Systems, Inc.

Current Thread