xsl-list
[Top] [All Lists]

RE: calling extension java functions. ( Saxon Vs Xalan)

2003-01-17 12:08:45
I have a java extension method that i call from my XSL
the way i call is
<xsl:value-of select="str-utils:upperCase($mystring)"/>
it works fine with Xalan but fails with Saxon.
saxon gives
 Transform failed:  At xsl:value-of on line 264 of
file:/tests/saxon-test.xsl: No method matching upperCase with 
1 parameter found in class com.myutils.util.StringUtils

the namespace declaration is:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                xmlns:saxon="http://icl.com/saxon"; 
xmlns:str-utils = "com.myutils.utils.StringUtils"
                extension-element-prefixes="saxon str-utils"  
version="1.0"> It however doesnt give any error with the 
Xalan ( with a different namespace
declaration)
Am i calling it correctly?? is there any difference in the 
way you call extension functions with xalan and saxon? Thanks

I can't see why this is failing. It appears to be loading the class
correctly, so the problem is in matching the method. You haven't shown
us the Java class in question.

One possible explanation is that the method is not static. Perhaps Xalan
creates an instance of the class using the default constructor and then
calls the method: Saxon will only call static methods, unless you supply
an instance of the class as the first argument.

Yes, there are differences in the way different Java processors call
extension functions. It isn't standardised.

Michael Kay
Software AG
home: Michael(_dot_)H(_dot_)Kay(_at_)ntlworld(_dot_)com
work: Michael(_dot_)Kay(_at_)softwareag(_dot_)com 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list