[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[xsl] Error xsl:param may not be used here
Subject: [xsl] Error xsl:param may not be used here From: "Ryan Beesley" <RBeesley@xxxxxxxxxxxx> 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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Retrieving unknown attrib, Peter Davis | Thread | RE: [xsl] Error xsl:param may not b, Jarno . Elovirta |
Re: [xsl] Retrieving unknown attrib, Vasu Chakkera | Date | RE: [xsl] Error xsl:param may not b, Jarno . Elovirta |
Month |