dmarston    01/07/03 09:01:08

  Added:       test/tests/conf/variable variable50.xsl variable48.xsl
                        variable49.xml variable49.xsl variable50.xml
                        variable48.xml
  Log:
  New cases about passing params around
  
  Revision  Changes    Path
  1.1                  xml-xalan/test/tests/conf/variable/variable50.xsl
  
  Index: variable50.xsl
  ===================================================================
  <?xml version='1.0'?>
  <xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
  
    <!-- FileName: variable50 -->
    <!-- Document: http://www.w3.org/TR/xslt -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 11.2 -->
    <!-- Author: Scott Boag -->
    <!-- Purpose: Ensure that we can find descendants of the nodes
      in a node-set stored in a variable. -->
  
  <xsl:template match="/">
    <out>
      <xsl:variable name="in" select="*/p"/>    
      <xsl:for-each select="$in//text()">
        <xsl:value-of select="."/><xsl:text>&#10;</xsl:text>
      </xsl:for-each>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  1.1                  xml-xalan/test/tests/conf/variable/variable48.xsl
  
  Index: variable48.xsl
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
      version="1.0">
  
  <xsl:output method="xml" indent="no" encoding="UTF-8"/>
  
    <!-- FileName: variable48 -->
    <!-- Document: http://www.w3.org/TR/xslt -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 11.5 -->
    <!-- Purpose: Check propagation of params down into templates -->
    <!-- Author: Scott Boag -->
  
  <xsl:param name="request" select="'top'"/>
  
  <xsl:template match="/">
    <xsl:apply-templates>
      <xsl:with-param name="p1" select="$request"/>
      <xsl:with-param name="p2" select="'root'"/>
    </xsl:apply-templates>
  </xsl:template>
  
  <xsl:template match="*">
    <xsl:param name="p1" select="'error1!'"/>
    <xsl:param name="p2" select="'error2!'"/>
        
    <xsl:copy>
      <xsl:apply-templates select="node()|@*">
        <xsl:with-param name="p1" select="$request"/>
        <xsl:with-param name="p2" select="@id"/>
      </xsl:apply-templates>
      <from>
        <xsl:call-template name="dump-values">
          <xsl:with-param name="p1" select="$request"/>
          <xsl:with-param name="p2" select="$p2"/>
        </xsl:call-template>
      </from>
    </xsl:copy>
  </xsl:template>
  
  <xsl:template match="@*">
    <xsl:param name="p1" select="'error3!'"/>
    <xsl:param name="p2" select="'error4!'"/>
  
    <xsl:attribute name="Value">
      <xsl:call-template name="dump-values">
        <xsl:with-param name="p1" select="$p1"/>
        <xsl:with-param name="p2" select="concat('id=', string($p2))"/>
      </xsl:call-template>
    </xsl:attribute>
  </xsl:template>
  
  <xsl:template name="dump-values">
    <xsl:param name="p1" select="'error5!'"/>
    <xsl:param name="p2" select="'error6!'"/>
  
    <xsl:value-of select="$p1"/>, <xsl:value-of select="$p2"/>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  1.1                  xml-xalan/test/tests/conf/variable/variable49.xml
  
  Index: variable49.xml
  ===================================================================
  <?xml version="1.0"?>
  <doc id="id0">
    <a id="id1">
      *id1*
      <a id="id2">*id2*
        <a id="id3">*id3*</a>
        <b id="id4">*id4*</b>
        <c id="id5">*id5*</c>
      </a>
      <b id="id6">*id6*</b>
      <c id="id7">*id7*</c>
    </a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/variable/variable49.xsl
  
  Index: variable49.xsl
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
      version="1.0">
  
  <xsl:output method="xml" indent="no" encoding="UTF-8"/>
  
    <!-- FileName: variable49 -->
    <!-- Document: http://www.w3.org/TR/xslt -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 11.5 -->
    <!-- Purpose: Show that one param (p2) can be set to value of another (p1)
      equally well in apply and call template invocations. -->
    <!-- Author: Scott Boag -->
  
  <xsl:template match="/">
    <out>
      <xsl:apply-templates select="*"/>
      <xsl:text>&#10;== apply above, call below ==&#10;</xsl:text>
      <xsl:for-each select="//*">
        <xsl:call-template name="matchElem"/>
      </xsl:for-each>
    </out>
  </xsl:template>
  
  <xsl:template match="*">
    <xsl:param name="p1" select="@id"/>
    <xsl:param name="p2" select="$p1"/>
    <xsl:value-of select="$p1"/>,  <xsl:value-of select="$p2"/>
    <xsl:text>&#10;</xsl:text>
    <xsl:apply-templates select="*"/><!-- Recursively visit all children -->
  </xsl:template>
  
  <xsl:template name="matchElem">
    <xsl:param name="p1" select="@id"/>
    <xsl:param name="p2" select="$p1"/>
    <xsl:value-of select="$p1"/>,  <xsl:value-of select="$p2"/>
    <xsl:text>&#10;</xsl:text>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  1.1                  xml-xalan/test/tests/conf/variable/variable50.xml
  
  Index: variable50.xml
  ===================================================================
  <?xml version="1.0"?> 
  <doc><p>a<b>b</b>c</p></doc>    
  
  
  
  1.1                  xml-xalan/test/tests/conf/variable/variable48.xml
  
  Index: variable48.xml
  ===================================================================
  <?xml version="1.0"?>
  <doc id="id0">
    <a id="id1">
      *id1*
      <a id="id2">*id2*
        <a id="id3">*id3*</a>
        <b id="id4">*id4*</b>
        <c id="id5">*id5*</c>
      </a>
      <b id="id6">*id6*</b>
      <c id="id7">*id7*</c>
    </a>
    <b id="id8">
      *id8*
      <a id="id9">*id9*</a>
      <b id="id10">*id10*
        <a id="id11">*id11*</a>
        <b id="id12">*id12*</b>
        <c id="id13">*id13*</c>
      </b>
      <c id="id14">*id14*</c>
    </b>
    <c id="id15">
      *id15*
      <a id="id16">*id16*</a>
      <b id="id17">*id17*</b>
      <c id="id18">*id18*
        <a id="id19">*id19*</a>
      </c>
    </c>
  </doc>
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to