Hi,

I'd like to report two bugs and one case where I'm not quite sure,
wether this is a bug. I'm sending this to both xerces-dev and
xalan-dev because I'm not quite sure in each case which one is
concerned.

All files to reproduce these effects are attached.


These bugs occur using various Java virtual machines
(Blackdown JDK 1.1.8, Sun J2SE 1.3.1, IBM Java2)

Bug 1:
------

  (1) decimal point in wrong position
  (2) selection of other symbol for decimal point doesn't work

  Buggy behavior:

  Using:   xerces.jar, xalan.jar:
           xerces: 1.3.1, 1.4
           xalan:  2.0.1, 2.1.0 (CVS)
  Command: java org.apache.xalan.xslt.Process -IN bug1.xml -XSL bug1.xsl
  Result:  1.22


  Using other tool, correct behavior:

  Using:   xp.jar, xt.jar:
  Command: java com.jclark.xsl.sax.Driver bug1.xml bug1.xsl
  Result:  122,26

Bug 2:
------

  (1) xerces 2.0.0-alpha neither accepts files with version attribute
      in xsl:stylesheet nor without
  (2) other versions of xerces accept both

  Example Files:

  (a) bug2a.xsl is correct, no output
  (b) bug2b.xsl is not correct, attribute version missing in xsl:stylesheet
      otherwise identical to bug2a.xsl

  Buggy behavior:

  Using:   xerces.jar, xalan.jar:
           xerces: 2.0.0-alpha (CVS)
           xalan:  2.0.1, 2.1.0 (CVS)

  Command: java org.apache.xalan.xslt.Process -IN bug2a.xml -XSL bug2a.xsl
  Result:  bug2a.xsl; Line 2; Column 36;
           XSLT Error (javax.xml.transform.TransformerConfigurationException): 
"version" attribute is not allowed on the xsl:stylesheet element!

  Command: java org.apache.xalan.xslt.Process -IN bug2b.xml -XSL bug2b.xsl
  Result:  XSLT Error (javax.xml.transform.TransformerConfigurationException): 
xsl:stylesheet requires attribute: version

  Correct(?) behavior:

  Using:   xerces.jar, xalan.jar:
           xerces: 1.3.1, 1.4
           xalan:  2.0.1, 2.1.0 (CVS)

  Command: java org.apache.xalan.xslt.Process -IN bug2a.xml -XSL bug2a.xsl
  Result:  no output

  Command: java org.apache.xalan.xslt.Process -IN bug2b.xml -XSL bug2b.xsl
  Result:  no output

Bug 3:
------

  (1) handling of variable scopes differes from other tools
      which behavior is correct?

  Behavior of current xalan:

  Using:   xerces.jar, xalan.jar:
           xerces: 1.3.1, 1.4
           xalan:  2.0.1, 2.1.0 (CVS)
  Command: java org.apache.xalan.xslt.Process -IN bug3.xml -XSL bug3.xsl
  Result:  Name: Fred
           Amount: 1
           Value: 17
           Subtotal: 17
           Name: Barney
           Amount: 3
           Value: 25
           Subtotal: 75
           Name: Wilma
           Amount: 2
           Value: 11
           Subtotal: 22
           Total: 114

  Using other tool, different behavior:
  (xalan 1.2.2 behaves like this, too)

  Using:   xp.jar, xt.jar:
  Command: java com.jclark.xsl.sax.Driver bug3.xml bug3.xsl
  Result:  Name: Fred
           Amount: 1
           Value: 17
           Subtotal: 17
           Name: Barney
           Amount: 3
           Value: 25
           Subtotal: 75
           Name: Wilma
           Amount: 2
           Value: 11
           Subtotal: 22
           Total: 22



Regards, Kester.
-- 
Kester Habermann <[EMAIL PROTECTED]>               LinuxTag 2001
http://www.linuxtag.org/ Tel: +49.631.3109371 Fax: +49.631.3109372
<root>
</root>
<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform";
                version   = "1.0" >
    <xsl:decimal-format name="german" decimal-separator=","/>
    <xsl:output method = "text" />
    <xsl:variable name = "A" >122.2640</xsl:variable>
    <xsl:template match = "/" >
        <xsl:value-of select = "format-number($A,'#.##')" />
    </xsl:template>
</xsl:stylesheet> 
<root>
</root>
<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform";
                version   = "1.0" >
<xsl:output method = "text" /> 
</xsl:stylesheet> 
<root>
</root>
<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform";>
<xsl:output method = "text" /> 
</xsl:stylesheet> 
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE Bug3 [
<!ELEMENT root (person+)>
<!ELEMENT person (name, amount, value)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT amount (#PCDATA)>
<!ELEMENT value (#PCDATA)>
]>

<root>
    <person>
        <name>Fred</name>
        <amount>1</amount>
        <value>17</value>
    </person>

    <person>
        <name>Barney</name>
        <amount>3</amount>
        <value>25</value>
    </person>

    <person>
        <name>Wilma</name>
        <amount>2</amount>
        <value>11</value>
    </person>
</root>
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0">
    <xsl:output method="text"/>
    <xsl:template match="root">
        <xsl:apply-templates select="//person"/>
        <xsl:variable name="total">0</xsl:variable>
        <xsl:for-each select="//person">
            <xsl:variable name="total">
                <xsl:value-of select="$total + ./amount * ./value"/>
            </xsl:variable>
            <xsl:if test="position()=last()">
Total: <xsl:value-of select="$total"/>
            </xsl:if>
        </xsl:for-each>

    </xsl:template>
    <xsl:template match="person">
Name: <xsl:value-of select="./name"/>
Amount: <xsl:value-of select="./amount"/>
Value: <xsl:value-of select="./value"/>
Subtotal: <xsl:value-of select="./amount * ./value"/>
    </xsl:template>
</xsl:stylesheet>

Reply via email to