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=13508>. 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=13508 Strips space before sorting datatype="text". Summary: Strips space before sorting datatype="text". Product: XalanJ2 Version: 2.4 Platform: PC OS/Version: Other Status: NEW Severity: Normal Priority: Other Component: Xalan AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] XALAN seems to strip space out of an element before sorting on it. XSLT 3.4 says "Initially, the set of whitespace-preserving element names contains all element names." I am not using either strip- or preserve-space. Source XML: <?xml version = "1.0" encoding="ISO-8859-1"?> <!DOCTYPE musiccollection SYSTEM "music.dtd"> <musiccollection> <album medium="CD"> <title>Kuijken et al</title> <entry> <composer>Boccherini</composer> <title>Sonata, Cello</title> <catalog>G 6</catalog> <key>C</key> </entry> <entry> <composer>Boccherini</composer> <title>Sonata, Cello</title> <catalog>G 4</catalog> <key>A</key> </entry> <entry> <composer>Boccherini</composer> <title>Sonata, Cello</title> <catalog>G 17</catalog> <key>C</key> </entry> </album> </musiccollection> Original XSL: <?xml version = "1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:key name="composernames" match="entry" use="substring(composer,1,1)"/> <xsl:template match="/"> <html> <body> <table border="1"> <colgroup span="2" width="17%"/> <colgroup span="4" width="6%"/> <colgroup span="2" width="21%"/> <xsl:for-each select= "//entry[generate-id(.)=generate-id(key('composernames', substring (composer,1,1))[1])]"> <xsl:sort select="composer"/> <xsl:for-each select="key('composernames', substring(composer,1,1))"> <xsl:sort data-type="text" order="ascending" select="composer"/> <xsl:sort data-type="text" order="ascending" select="title"/> <xsl:sort data-type="text" order="ascending" select="catalog"/> <xsl:sort data-type="number" order="ascending" select="number"/> <tr> <td><xsl:value-of select="composer"/> </td> <td><xsl:value-of select="title"/></td> <td class="number"><xsl:value-of select="number"/></td> <td><xsl:value-of select="key"/></td> <td class="number"><xsl:value-of select="opus"/></td> <td><xsl:value-of select="catalog"/></td> <td><xsl:value-of select="desc"/></td> <td> <xsl:value-of select="parent::node()/title"/> </td> </tr> </xsl:for-each> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> Results are sorted on <catalog>, but in the order 17, 4, 6. The included blanks are intended to produce 4, 6, 17.
