Passing a nodeset by <xsl:with-param ...> doesn't work correctly.
-----------------------------------------------------------------

         Key: XALANJ-2166
         URL: http://issues.apache.org/jira/browse/XALANJ-2166
     Project: XalanJ2
        Type: Bug
  Components: XSLTC  
    Versions: CurrentCVS, 2.6    
    Reporter: Karsten Theis


Passing a nodeset by <xsl:with-param ...> like this
            <xsl:call-template name="test2">
                <xsl:with-param name="nodes" select="str:tokenize($s, ' ')"/>
            </xsl:call-template>
doesn't work correctly.

Output of the following xslt with XSLTC (last element is missing)
Elements1:
id_10019_2382
id_10019_2383
Elements2:
id_10019_2382

Output of the following xslt without XSLTC (correct)
Elements1:
id_10019_2382
id_10019_2383
Elements2:
id_10019_2382
id_10019_2383

<?xml version="1.0" encoding="UTF-8"?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:str="http://exslt.org/strings";  exclude-result-prefixes="str">
    <xsl:key name="ElementIndex" match="*" use="@id"/>
    <!-- root template -->
    <xsl:template match="/">
        <xsl:element name="test">
            <xsl:variable name="s">id_10019_2382 id_10019_2383</xsl:variable>
            <xsl:call-template name="test1">
                <xsl:with-param name="s" select="$s"/>
            </xsl:call-template>
            <xsl:call-template name="test2">
                <xsl:with-param name="nodes" select="str:tokenize($s, ' ')"/>
            </xsl:call-template>
        </xsl:element>
    </xsl:template>
    <xsl:template name="test1">
        <xsl:param name="s"/>
        <xsl:variable name="nodes" select="str:tokenize($s, ' ')"/>
        <xsl:variable name="elements" select="key('ElementIndex', $nodes)"/>
        <xsl:message>Elements1:</xsl:message>
        <xsl:message>
            <xsl:value-of select="$elements[1]/@id"/>
        </xsl:message>
        <xsl:message>
            <xsl:value-of select="$elements[2]/@id"/>
        </xsl:message>
    </xsl:template>
    <xsl:template name="test2">
        <xsl:param name="nodes"/>
        <xsl:variable name="elements" select="key('ElementIndex', $nodes)"/>
        <xsl:message>Elements2:</xsl:message>
        <xsl:message>
            <xsl:value-of select="$elements[1]/@id"/>
        </xsl:message>
        <xsl:message>
            <xsl:value-of select="$elements[2]/@id"/>
        </xsl:message>
    </xsl:template>
</xsl:transform>

Input XML:

<?xml version="1.0" encoding="UTF-8"?>
<test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
    <Item id="id_10019_2382">
        <Name>Hugo</Name>
    </Item>
    <Item id="id_10019_2383">
        <Name>Emil</Name>
    </Item>
</test>




-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


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

Reply via email to