I have an odd problem that seems unexplainable. I'm seeing different
results of a simple transformation using xalan-j_2_6_0 (and prior
versions) versus xalan-j_2_7_0. The xalan-j_2_7_0 version results in
duplicated output. I'm using jdk1.5.0_12. Here are examples:
XML:
<?xml version='1.0'?>
<document>
<permission>
<grp gid="101" name="group1"/>
<grp gid="102" name="group2"/>
</permission>
</document>
XSLT:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="html" omit-xml-declaration="yes"/>
<xsl:variable name="theData" select="/document/permission"/>
<xsl:template match="/document">
<xsl:variable name="grpcount" select="count($theData/grp)"/>
<xsl:call-template name="makeGroupList">
<xsl:with-param name="groupSize" select="$grpcount"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="makeGroupList">
<xsl:param name="groupSize"/>
<select name="selectName" size="{$groupSize}" multiple="true">
<xsl:apply-templates select="$theData/grp">
<xsl:sort select="@name"/>
</xsl:apply-templates>
</select>
</xsl:template>
<xsl:template match="grp">
<xsl:variable name="gid" select="./@gid"/>
<option value="{$gid}"><xsl:value-of select="@name"/></option>
</xsl:template>
</xsl:stylesheet>
Output xalan-j_2_7_0:
<select multiple="true" size="2" name="selectName">
<option value="101">group1</option>
<option value="101">group1</option>
<option value="102">group2</option>
<option value="102">group2</option>
</select>
However, the output from j_2_6_0 is as expected:
Output xalan-j_2_6_0:
<select multiple="true" size="2" name="selectName">
<option value="101">group1</option>
<option value="102">group2</option>
</select>
If I comment out the grpcount variable definition and pass a param with
a literal value in the call to the makeGroupList template, both versions
of xalan produce the same output.
I'd appreciate any insight into why this is happening.
Regards,
Garrel Renick
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--