Hi,

I think I just found a bug in XalanJ's implementation of the object-type
function from EXSLT Common.

>From the EXSLT documentation and Xalan's Javadoc: "The possible object types
are: 'string', 'number', 'boolean', 'node-set', 'RTF', or 'external'." The
problem is that it will return 'unknown' instead of 'external'.

You can easily reproduce the error with the following stylesheet:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0"
                xmlns:except="java.lang.Exception"
                xmlns:exsl="http://exslt.org/common";
                xmlns:str="java.lang.String"
                exclude-result-prefixes="except  exsl  str">

        <xsl:output indent="yes" method="text"/>

        <xsl:template match="/">
                <xsl:value-of select="exsl:object-type(/..)"/><xsl:text>
</xsl:text>
                <xsl:value-of select="exsl:object-type(str:new())"/><xsl:text>
</xsl:text>
                <xsl:value-of select="exsl:object-type(except:new())"/>
        </xsl:template>
</xsl:stylesheet>

Which should return (it works ok in Saxon for example):
node-set
string
external

But it returns:
node-set
string
unknown

The problem seems to be in ExsltCommon.java and was introduced in June 2002 by
dleslie (see revision 336508 in SVN).

I found no reference anywhere for that problem so I thought it would be useful
for other people if I documented it here.

Regards,

Eric

Reply via email to