Subject: RE: variable question From: sara.mitchell@xxxxxxxxx Date: Wed, 29 Dec 1999 17:51:14 -0500 |
Well, I can answer at least the variable scoping issue. Global variables are defined in the stylesheet -- not inside any template, including the template for the root node of the document. Variables only exist within the scope of the template that they are defined in -- so your definition is only valid within the root node template, but not any subsequent templates. Do something like this: <xsl:stylesheet ...> <xsl:variable name="BusinessPartnerContract" select="<set the value here>"/> <xsl:template match="MYROOT"> ... </xsl:template> and keep your named template. The reference inside the named template should work now without any other changes. Sara > -----Original Message----- > From: costempd@xxxxxxxxxx [mailto:costempd@xxxxxxxxxx] > Sent: Wednesday, December 29, 1999 9:10 PM > To: xsl-list@xxxxxxxxxxxxxxxx > Subject: xsl:variable question > > > Hi. I am new to XML and XSL so please forgive my ignorance. > I have tried to figure this out from the w3 spec and other > resources, but mainly from trial and error (mostly error), > and I am still in the dark. > > <!-- what I want to do --> > Basically, I am using LotusXSL to generate an HTML file from > my XML data. What I want to do is access a value that is obtained > from one "leaf" of my XML tree at multiple points in my XSLT > transformation. I am able to do this via hardcoding the xpath > to the specific node, ie: > <xsl:value-of select="//MYROOT/BRANCH1/MYLEAF"/> > However, I thought it might be better to set a variable > (that I hoped would be global). I have a called named template > that is generating a small table that is a simulation of a page > header. I have nested tables, each "outer" table comprising a > printable page, and the "page header" inner table sits in the > first row of each outer table. > <!-- /what I want to do --> > > <!-- aside --> > Eventually I will probably want to learn about FO (FOP?) and generate > PDF (or some kind of printable document) but at this stage I am using > HTML as my printable object. Can XSLT and FO be combined within the > same XSL stylesheet, or are they mutually exclusive? > <!-- /aside --> > > <!-- The error I am getting --> > "VariableReference given for variable out of context or without > definition! Name = BusinessPartnerContract" > <!-- /The error I am getting --> > > <!-- My variable definition --> > <!-- note: hardcoded here but I want to set based on XML data --> > <!-- contained within a child of "MYROOT" --> > <xsl:template match="MYROOT"> > <xsl:variable name="BusinessPartnerContract"> > This is a business partner contract. > </xsl:variable> > ... > </xsl:template> > <!-- /My variable definition --> > > <!-- Fragment with call to named template --> > <!-- note: this fragment occurs for each "page" I want to generate --> > <tr> <!-- outer --> > <td colspan="2"> <!-- outer --> > <xsl:call-template name="pageHeader"/> > </td> <!-- outer --> > </tr> <!-- outer --> > <!-- /Fragment with call to named template --> > > > <!-- Fragment of my called template --> > <xsl:template name="pageHeader"> > <table cellpadding="5" cellspacing="0" border="0" cols="2"> > <tr> > <td colspan="2" align="center" class="bigBold"> > Page Title Goes Here > </td> > </tr> > <xsl:if test="boolean($BusinessPartnerContract)"> > <tr> > <td colspan="2" align="center"> > <u><xsl:value-of select="$BusinessPartnerContract"/></u> > </td> > </tr> > </xsl:if> > ... some more stuff goes here ... > </table> > </xsl:template> > <!-- /Fragment of my called template --> > > If I set my variable within the called template, it works. So > it seems my problem is the scope of the variable. > I thought my variable would be global if I set it within the first > template (match="MYROOT"), but I end up with a null value, ie: > " <u><xsl:value-of select="$BusinessPartnerContract"/></u>" > becomes > "<u></u>" > > TIA for any help. > > Nick Ridout > > > > 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 -> |
---|---|---|
RE: variable question, Mike Brown | Thread | RE: variable question, costempd |
[no subject], David J. Kim | Date | Re: less than / greater than in coc, Stefano Mazzocchi |
Month |