You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xalan.apache.org by bu...@apache.org on 2002/12/19 14:21:05 UTC
DO NOT REPLY [Bug 15527] New: -
multiple key definitions (same name) do not work as expected on longer strings
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15527>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15527
multiple key definitions (same name) do not work as expected on longer strings
Summary: multiple key definitions (same name) do not work as
expected on longer strings
Product: XalanJ2
Version: 2.4
Platform: Other
OS/Version: Other
Status: NEW
Severity: Normal
Priority: Other
Component: org.apache.xalan.processor
AssignedTo: xalan-dev@xml.apache.org
ReportedBy: joerg.heinicke@gmx.de
At the weekend we found a problem in Cocoon 2.1 (CVS head) using the used Xalan
2.4.1 and XSLTC there
(http://marc.theaimsgroup.com/?l=xml-cocoon-dev&m=103985066026426&w=2).
The files used for the tests were
xml-cocoon2\src\webapp\samples\flow\examples\prefs\pages\userInfo.xsp
and version 1.5
http://cvs.apache.org/viewcvs.cgi/xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/java/jpath.xsl
I will attach simplified versions of both files.
In the XSL there was a aggregated key declaration (or how is it called?):
<xsl:key name="JPathExprs" match="jpath:if" use="@test"/>
<xsl:key name="JPathExprs" match="jpath:when" use="@test"/>
<xsl:key name="JPathExprs" match="jpath:for-each" use="@select"/>
<xsl:key name="JPathExprs" match="jpath:value-of" use="@select"/>
When applying templates like
<xsl:apply-templates select="//jpath:if | //jpath:when | //jpath:value-of |
//jpath:for-each"/>
and using a template like
<xsl:template match="jpath:if | jpath:when | jpath:for-each | jpath:value-of">
<tr>
<td>
<xsl:value-of select="name()"/>
</td>
<td>
<xsl:value-of select="concat(@test, @select)"/>
</td>
<td>
<xsl:value-of select="generate-id()"/>
</td>
<td>
<xsl:value-of select="generate-id(key('JPathExprs', concat(@test,
@select)))"/>
</td>
<td>
<xsl:value-of select="count(key('JPathExprs', concat(@test,
@select)))"/>
</td>
</tr>
</xsl:template>
the generate-id() and the count() return wrong values for strings like "check
and firstName = ''". The generate-id() return is empty and the count() return is
0. But as you can guess those expressions are important for Muenchian Grouping.