RE: [xsl] xsl:with-param and imports?

Subject: RE: [xsl] xsl:with-param and imports?
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Thu, 30 Dec 2004 19:31:04 -0000
> Why can I not use xsl:with-param with xsl:import and xsl:include?

import and include are things that happen while assembling the stylesheet
from a collection of modules. with-param is something that happens while
executing a stylesheet. Since they happen at different times, it wouldn't
make sense to use them together.
> 
> Or alternately, is there some other workaround for the following?

If stylesheet A declares a top-level stylesheet parameter <xsl:param
name="s"/>, then a stylesheet module B that imports A can define a value for
this parameter using <xsl:param name="s" select="1234"/>, or even
<xsl:variable name="s" select="1234"/>. (This is clearly stated in the XSLT
2.0 spec, it's implicit in the 1.0 spec.)

Michael Kay
http://www.saxonica.com/

> 
> I have my stylesheets, which require a top-level parameter called 
> citation-style.
> 
> These stylesheets then get imported into a document 
> stylesheet like so, 
> in which two primary templates get called:
> 
>    <xsl:import href="../citeproc.xsl"/>
>    <xsl:output method="xhtml" encoding="utf-8" indent="yes"/>
>    <xsl:strip-space elements="*"/>
>    <xsl:template match="/">
>      <html>
>        <head>
>          <title>Testing</title>
>        </head>
>        <body>
>          <div id="content">
>            <div id="main-content">
>              <xsl:apply-templates/>
>              <xsl:if test="//db:footnote">
>                <div id="notes">
>                  <h3>Notes:</h3>
>                  <xsl:apply-templates select="//db:footnote" 
> mode="footnote-list"/>
>                </div>
>              </xsl:if>
>              <div id="bibliography">
>                <h3>References</h3>
>                <xsl:call-template name="bib:format-bibliography">
>                  <xsl:with-param name="output-format" 
> select="'xhtml'"/>
>                </xsl:call-template>
>              </div>
>            </div>
>          </div>
>        </body>
>      </html>
>    </xsl:template>
> 
> While it's not essential to be able to set the citation-style 
> parameter 
> in this stylesheet, it would be nice (a document stylesheet 
> would often 
> imply a single citation-style).  But how?
> 
> Bruce

Current Thread