| SAXONICA | 
The xsl:with-param element is used to define an actual parameter to a template. It may be used
            within an xsl:call-template or an xsl:apply-templates or an xsl:apply-imports element.
            For an example, see the xsl:template section.
         
There is a mandatory attribute, name, 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 xsl:param element, in the same way as for xsl:variable.
         
The parameter has no effect unless the called template includes a matching
               xsl:param 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 required="yes".
The attribute tunnel="yes" 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 tunnel="yes" is also specified on the corresponding 
            xsl:param element.