Subject: RE: [xsl] Error xsl:param may not be used here From: "Andrew Welch" <awelch@xxxxxxxxxxxxxxx> Date: Mon, 14 Oct 2002 10:39:58 +0100 |
> The problem is that your <xsl:param> is wrongly > placed.<xsl:param> is a top > level element ie, child of <xsl:stylesheet> element or if it is in a > template then it must be the immediate child of the > <xsl:template> element. > so in your case, because you have an <xsl:variable> element > before the > <xsl:param> element, its reporting the error message. Thats interesting - saxon 6.5.2 allows this (as stated msxml doesnt). The specs says: 11.5 "As well as being allowed at the top-level, both xsl:variable and xsl:param are also allowed in templates. xsl:variable is allowed anywhere within a template that an instruction is allowed. In this case, the binding is visible for all following siblings and their descendants. Note that the binding is not visible for the xsl:variable element itself. xsl:param is allowed as a child at the beginning of an xsl:template element. In this context, the binding is visible for all following siblings and their descendants. Note that the binding is not visible for the xsl:param element itself." Has this followed through into xslt 2.0 as its not mentioned in the draft? cheers andrew > -----Original Message----- > From: Vasu Chakkera [mailto:vasucv@xxxxxxxxxxx] > Sent: 14 October 2002 10:08 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: Re: [xsl] Error xsl:param may not be used here > > > Ryan, > The problem is that your <xsl:param> is wrongly > placed.<xsl:param> is a top > level element ie, child of <xsl:stylesheet> element or if it is in a > template then it must be the immediate child of the > <xsl:template> element. > so in your case, because you have an <xsl:variable> element > before the > <xsl:param> element, its reporting the error message. > > > >From: "Ryan Beesley" <RBeesley@xxxxxxxxxxxx> > >Reply-To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > >To: <XSL-List@xxxxxxxxxxxxxxxxxxxxxx> > >Subject: [xsl] Error xsl:param may not be used here > >Date: Mon, 14 Oct 2002 03:46:46 -0500 > > > >Repost: Sorry, I posted the first message as a reply... > > > >I know that this error has been addressed on this list > before, but I don't > >think it has been answered in this context. > > > >I have been working on a set of svg graphing (xslt) > utilities that I'd like > >to make publicly available once my senior design project is > complete, but > >I've run into a slight snag. I wanted to be able to > customize different > >parameters in multiple ways. Below is listed a small > segment of my xml and > >xslt. > > > >---- graph.xml ---- > ><?xml version="1.0" encoding="UTF-8"?> > ><graph type="pie"> > > <!-- Graph data goes here --> > ></graph> > > > >---- graph.xslt ---- > ><?xml version="1.0" encoding="UTF-8"?> > ><xsl:stylesheet version="1.0" > >xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > > <xsl:output method="xml" version="1.0" encoding="UTF-8" > indent="yes"/> > > > > <xsl:template match="graph"> > > <xsl:call-template name="drawGraph"> > > <!-- Optional parameters to alter graph --> > > <xsl:with-param name="type" select="'bar'"/> > > </xsl:call-template> > > </xsl:template> > > > > <xsl:template name="drawGraph"> > > <xsl:variable name="graph" select="." /> > > <xsl:param name="type"> > > <xsl:choose> > > <xsl:when test="not(string-length($graph/@type) = 0)"> > > <xsl:value-of select="$graph/@type" /> > > </xsl:when> > > <xsl:otherwise>x-y</xsl:otherwise> > > </xsl:choose> > > </xsl:param> > > <type> > > <xsl:value-of select="$type"/> > > </type> > > </xsl:template> > > > ></xsl:stylesheet> > > > >---- output.xml ---- > ><?xml version="1.0" encoding="UTF-8"?> > ><type>bar</type> > > > >Although you would probably never include a parameter in > both the calling > >template and the xml data, I have included both to > demonstrate the use. > >The > >passed template param should win however. When evaluating > this with XML > >Spy, in debug mode, it works exactly as I want it too. I > can change the > >value of @type either while calling the template, or > directly from the xml > >data. If neither parameter was provided, the template > assumes a default. > > > >Xalan and MSXML fail completely. If I place my params > inside the choose, > >then they aren't recognized, as should be, but it doesn't > seem to like my > >nested choose for the param either. I suspect that this > structure is the > >source of my error: xsl:param may not be used here. > > > >If anyone has suggestions as to how I can make this work, > I'm always eager > >to learn. I believe I could use a variable to make this > work, but then I > >wouldn't be able to change it from the template, right? > > > >Ryan Beesley > >Rbeesley@xxxxxxxxxxxx > >Founder, Atum Innovations > > > > > > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list _________________________________________________________________ MSN Photos is the easiest way to share and print your photos: http://photos.msn.com/support/worldwide.aspx XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list --- Incoming mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.394 / Virus Database: 224 - Release Date: 03/10/2002 --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.394 / Virus Database: 224 - Release Date: 03/10/2002 XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Error xsl:param may not b, Ryan Beesley | Thread | RE: [xsl] Error xsl:param may not b, Vasu Chakkera |
[xsl] Hierearchy navigation in XSL, Scott Bronson | Date | RE: [xsl] Outputting from more than, Kevin Collins |
Month |