Hi everybody,
I hope I don't mention a known problem though I checked the xsl faq and the
list archives.
I experienced strange behaviour depending on the debug settings of the
processor (see processor version below).
Vendor: Apache Software Foundation
Vendor URL: http://xml.apache.org/xalan-j
I am using the following stylesheet:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" indent="yes"/>
<xsl:template match="D">
<xsl:for-each select="A">
<xsl:sort select="POSITION" data-type="number"
order="ascending"/>
<xsl:element name="PositionNr">
<xsl:value-of select="POSITION"/>
</xsl:element>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
The input file looks like this:
<?xml version = "1.0" encoding = "ISO-8859-1"?>
<D>
<A>
<POSITION>5</POSITION>
<ACTION>1</ACTION>
</A>
<A>
<POSITION>1</POSITION>
<ACTION>1</ACTION>
</A>
<A>
<POSITION>3</POSITION>
<ACTION>1</ACTION>
</A>
</D>
Without debugging options (command line inline), the result looks like this
(obviously correct):
t:/Programme/JRE/1.4.1/bin/java.exe -cp
d:/cvsworking/nl/dev/classes/xalan.jar
org.apache.xalan.xslt.Process -in
d:/cvsworking/nl/dev/java/newtron/system/impl/a2a/std/ressources/mapping/test/xml/test_sort.xml
-xsl
d:/cvsworking/nl/dev/java/newtron/system/impl/a2a/std/ressources/mapping/test/xslt/test_sort.xslt
<?xml version="1.0" encoding="UTF-8"?>
<PositionNr>1</PositionNr>
<PositionNr>3</PositionNr>
<PositionNr>5</PositionNr>
But enabling debugging (for instance trace selection events = -TS), the
result is different (though using the same input):
t:/Programme/JRE/1.4.1/bin/java.exe -cp
d:/cvsworking/nl/dev/classes/xalan.jar
org.apache.xalan.xslt.Process -TS -in
d:/cvsworking/nl/dev/java/newtron/system/impl/a2a/std/ressources/mapping/test/xml/test_sort.xml
-xsl
d:/cvsworking/nl/dev/java/newtron/system/impl/a2a/std/ressources/mapping/test/xslt/test_sort.xslt
<?xml version="1.0" encoding="UTF-8"?>
<PositionNr>1</PositionNr>
<PositionNr>3</PositionNr>
<PositionNr>5</PositionNr>
<PositionNr>5</PositionNr>
<PositionNr>1</PositionNr>
<PositionNr>3</PositionNr>
As you can see, in the second case, firstly all nodes are sorted correctly,
but additional the same nodes are added in document order.
Is this a "design mistake" by me or a bug/something specific to xalan ? In
this case, I might post it to some xalan list.
Thx a lot in advance
Cheers Nick
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list