Hallo,
habe Heute den ganzen Tag an einem Problem verzweifeln und glaube inzwischen, dass es ein Bug in Java 6 ist. Deshalb wollte ich hier zuerst um eine Bestätigung fragen, bevor ich die Sache an SUN sende. Vielleicht ist das Problem ja schon bekannt und es gibt einen Workaround, oder ich mache was falsch
Ich versuche ein eigenes XML-Format per XSL in eine TXT-Datei umzuwandeln. Dabei kommen mit Java 4, 5, und 6 verschiedene Ergebnisse raus.
Hier eine Beispiel XML-Datei, die nur einen Tag hat, der zweimal vorkommt und jeweils 10 Attribute hat, einmal mit "%" und einmal ohne:
abc.xml
Hier eine Beispiel XSL-Datei, die diesen einen Tag von oben verarbeitet und dabei die Werte der Attribute einfach auflistet:
abc.xsl
Jetzt versuche ich das ganze zu transformieren und habe folgende Ergebnisse:
für j2re1.4.2_18 und jre1.5.0_16, beide mit Eclipse 3.3 und Ant ausgeführt, sowie Firefox 3.0.5
was soweit das ist, was ich will. Jetzt führe ich das ganze auf Java 6 (mit Eclipse und Ant) aus und bekomme das:
für jre1.6.0_11, mit Eclipse 3.3 und Ant ausgeführt
man beachte die letzten 4 Zahlen in der unteren Reihe.
Kann das bitte jemand überprüfen? Für alle Tests habe ich die selbe Eclipse Installation verwendet. Ant verwendet seit Java 4 den in die JVM eingebauten XSLT-Prozessor. Der Ant-Task war:
Slawa
habe Heute den ganzen Tag an einem Problem verzweifeln und glaube inzwischen, dass es ein Bug in Java 6 ist. Deshalb wollte ich hier zuerst um eine Bestätigung fragen, bevor ich die Sache an SUN sende. Vielleicht ist das Problem ja schon bekannt und es gibt einen Workaround, oder ich mache was falsch
Ich versuche ein eigenes XML-Format per XSL in eine TXT-Datei umzuwandeln. Dabei kommen mit Java 4, 5, und 6 verschiedene Ergebnisse raus.
Hier eine Beispiel XML-Datei, die nur einen Tag hat, der zweimal vorkommt und jeweils 10 Attribute hat, einmal mit "%" und einmal ohne:
abc.xml
Code:
<?xml version="1.0" ?>
<?xml-stylesheet href="abc.xsl" type="text/xsl"?>
<document>
<abc a1="10" a2="20" a3="30" a4="40"
a5="50" a6="60" a7="70" a8="80"
a9="90" a10="100"
/>
<abc a1="10%" a2="20%" a3="30%" a4="40%"
a5="50%" a6="60%" a7="70%" a8="80%"
a9="90%" a10="100%"
/>
</document>
Hier eine Beispiel XSL-Datei, die diesen einen Tag von oben verarbeitet und dabei die Werte der Attribute einfach auflistet:
abc.xsl
Code:
<?xml version="1.0" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output method="text" />
<xsl:template match="abc">
<xsl:value-of select="@a1" /><xsl:text> | </xsl:text>
<xsl:value-of select="@a2" /><xsl:text> | </xsl:text>
<xsl:value-of select="@a3" /><xsl:text> | </xsl:text>
<xsl:value-of select="@a4" /><xsl:text> | </xsl:text>
<xsl:value-of select="@a5" /><xsl:text> | </xsl:text>
<xsl:value-of select="@a6" /><xsl:text> | </xsl:text>
<xsl:value-of select="@a7" /><xsl:text> | </xsl:text>
<xsl:value-of select="@a8" /><xsl:text> | </xsl:text>
<xsl:value-of select="@a9" /><xsl:text> | </xsl:text>
<xsl:value-of select="@a10" /><xsl:text> | </xsl:text>
</xsl:template>
</xsl:stylesheet>
Jetzt versuche ich das ganze zu transformieren und habe folgende Ergebnisse:
für j2re1.4.2_18 und jre1.5.0_16, beide mit Eclipse 3.3 und Ant ausgeführt, sowie Firefox 3.0.5
Code:
10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 |
10% | 20% | 30% | 40% | 50% | 60% | 70% | 80% | 90% | 100% |
was soweit das ist, was ich will. Jetzt führe ich das ganze auf Java 6 (mit Eclipse und Ant) aus und bekomme das:
für jre1.6.0_11, mit Eclipse 3.3 und Ant ausgeführt
Code:
10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 |
10% | 20% | 30% | 40% | 50% | 60% | 80% | 80% | 100 | 100% |
man beachte die letzten 4 Zahlen in der unteren Reihe.
Kann das bitte jemand überprüfen? Für alle Tests habe ich die selbe Eclipse Installation verwendet. Ant verwendet seit Java 4 den in die JVM eingebauten XSLT-Prozessor. Der Ant-Task war:
Code:
<target name="abc">
<xslt in="abc.xml"
out="abc.txt"
style="abc.xsl"
force="true">
</xslt>
</target>
Slawa