Hi all, There seems to be a codebase implementation issue on the, XalanJ dev repos branch xalan-j_xslt3.0, as described below.
Please consider the following XSLT 3.0 stylesheet, <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="3.0"> <xsl:output method="xml" indent="yes"/> <xsl:variable name="isInteger" select="function($a as item()) as xs:boolean { $a instance of xs:integer }"/> <xsl:template match="/"> <result> <one><xsl:value-of select="$isInteger('abc') and $isInteger(5)"/></one> </result> </xsl:template> </xsl:stylesheet> The correct XSLT stylesheet transformation result of the above cited stylesheet is following, <?xml version="1.0" encoding="UTF-8"?><result> <one>false</one> </result> But the current XSLT 3.0 and XPath 3.1 implementations, on the XalanJ dev repos branch xalan-j_xslt3.0, produces following stylesheet transformation result for above cited stylesheet example, <?xml version="1.0" encoding="UTF-8"?><result> <one>true</one> </result> (i.e, boolean true instead of false) I'm able to see that, most of (I guess all) XPath 3.1 binary operators that have both operands as dynamic function calls, has the same issue as described above (for the XalanJ dev repos branch xalan-j_xslt3.0). For example, $func1(args) + $func2(args) shall also produce a wrong result with current XalanJ implementation on dev repos branch xalan-j_xslt3.0. If anyone could, look at XalanJ implementation on dev repos branch xalan-j_xslt3.0, and suggest a fix for above cited implementation issues, that'll be great and shall be helpful to the XalanJ project. -- Regards, Mukul Gandhi --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
