Subject: RE: [xsl] variable binding From: "Michael Kay" <mhk@xxxxxxxxx> Date: Wed, 5 Nov 2003 22:46:56 -0000 |
> > I'm having trouble with variable binding - basically, I read > that variable > bindings declared in templates should be visible to descendants and > following siblings, but I'm getting not getting the behavior > I thought I > would with my stylesheet using Saxon 6.5.2... You've misunderstood the rules. The scope of variables is static, not dynamic. It doesn't depend on your source document, and it doesn't depend on the way in which templates call each other. You're trying to reference a variable in one template that's declared in a different template. What you need to do is pass the value as a parameter from one template to the other, using xsl:with-param and xsl:param. Michael Kay > > so the relevant part of my file looks like this (it's a > subbranch of s): > <ng of='proteins' role='h'> > <nx head='targeting' role='h'> > <W index='92'>the</W> > <W role='h' index='93'>targeting</W> > </nx> > <W index='94'>of</W> > <nx head='proteins' role='k'> > <W index='95'>the</W> > <W index='96'>myosin</W> > <W role='h' index='97'>proteins</W> > </nx> > </ng> > > and my stylesheet looks like this: > > <xsl:template match="@* | * | comment() | processing-instruction() | > node()"> > <xsl:copy> > <xsl:apply-templates select="@*|node()"/> > </xsl:copy> > </xsl:template> > > <xsl:template match="s//ng//*[1]" priority="5"> > <xsl:variable name="branch">right</xsl:variable> > <xsl:copy> > <xsl:attribute name="branch"><xsl:value-of > select="$branch"/></xsl:attribute> > <xsl:apply-templates select="@*|node()"/> > </xsl:copy> > </xsl:template> > > > <xsl:template match="s//ng//*" priority="4"> > <xsl:copy> > <xsl:attribute name="branch"><xsl:value-of > select="$branch"/></xsl:attribute> > <xsl:apply-templates select="@*|node()"/> > </xsl:copy> > </xsl:template> > > but when I try to run it, it tells me that the variable > branch has not > been declared, even though it should first have processed the first > daughter of ng, where it has been declared. > > Best, > shipra > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Re: variable binding, Sam Byland | Thread | RE: [xsl] variable binding, Shipra Dingare |
[xsl] Re: variable binding, Sam Byland | Date | [xsl] How to unflatten the source X, Herman Kwok |
Month |