<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet href="../make-menu.xsl" type="text/xsl"?><html>
   <head>
      <this-is section="xsl-elements" page="with-param" subpage=""/>
      <!--
           Generated at 2011-12-09T20:47:22.916Z--><title>Saxonica: XSLT and XQuery Processing: xsl:with-param</title>
      <meta name="coverage" content="Worldwide"/>
      <meta name="copyright" content="Copyright Saxonica Ltd"/>
      <meta name="title" content="Saxonica: XSLT and XQuery Processing: xsl:with-param"/>
      <meta name="robots" content="noindex,nofollow"/>
      <link rel="stylesheet" href="../saxondocs.css" type="text/css"/>
   </head>
   <body class="main">
      <h1>xsl:with-param</h1>
      <p>The <code>xsl:with-param</code> element is used to define an actual parameter to a template. It may be used
within an <code>xsl:call-template</code> or an <code>xsl:apply-templates</code> or an <code>xsl:apply-imports</code> element.
For an example, see the <a class="bodylink" href="../xsl-elements/template.xml">xsl:template</a> section.</p>
      <p>There is a mandatory attribute, <code>name</code>, to define the name
of the parameter. The value of the parameter may be defined either by a select attribute, or by the
contents of the <code>xsl:param</code> element, in the same way as for <code>xsl:variable</code>.</p>
      <p><i>The parameter has no effect unless the called template includes a matching
<code>xsl:param</code> element. But when using xsl:call-template, it is an error to specify 
a parameter that isn't declared in the target template, or to omit a parameter that's described
in the target template with <code>required="yes"</code>.</i></p>
      <p>The attribute <code>tunnel="yes"</code> creates a tunnel parameter which is accessible to called
templates at any depth, whether or not they are declared in intermediate templates. However, the value
is only accessible if <code>tunnel="yes"</code> is also specified on the corresponding 
<code>xsl:param</code> element.</p>
      <p>In XSLT 3.0, <code>xsl:with-param</code> can also appear as a child of <code>xsl:evaluate</code>,
      to define variables available for use within the dynamically-evaluated XPath expression, and as a child
      of <code>xsl:next-iteration</code>, to define values of iteration parameters to be used on the next
      iteration.</p>
      <table width="100%">
         <tr>
            <td>
               <p align="right"><a class="nav" href="lre.xml">Next</a></p>
            </td>
         </tr>
      </table>
   </body>
</html>