This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: how to pass parameters (msxml/xt/Saxon)



parameters (and modes)  don't get automatically passed on.
So here:

  <xsl:template match="/">
  <!-- ... -->
	  <xsl:apply-templates mode="Xrevised">
	  	<xsl:with-param name="xyz" select="1234"/>
   </xsl:apply-templates>
  <!-- ... -->
  </xsl:template>

you apply templates with a parameter.

If it is a well formed document then there will not be text
as the child of the root. So this template


  <xsl:template match="text()" mode="Xrevised">
  <xsl:param name="xyz"/><!--<xsl:param name="xyz" select="678"/>-->
             <xsl:text>template output:</xsl:text><br />
  		   <xsl:value-of select="$xyz"/> <br />
  </xsl:template>

will not match any nodes selected by the above apply-templates.
It would eventually match if for example you also
had a template of the form


  <xsl:template match="f*" mode="Xrevised">
  <xsl:param name="xyz"/>
	  <xsl:apply-templates mode="Xrevised">
	  	<xsl:with-param name="xyz" select="$xyz"/>
   </xsl:apply-templates>
  </xsl:template>



so that by default apply templates to an element in the given mode
caused templates to be applied to child nodes with the same mode and
parameter. 

David


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]