[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: calling extension java functions. ( Saxon Vs Xalan
Laura, I have tried to reproduce your problem, but I didn't succeed in it. I think the best way to encounter what the problem is, you write a stylesheet that uses only saxon. e.g. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:str-utils="java:com.myutils.utils.StringUtils"> <xsl:template match="/"> <<xsl:value-of select="str-utils:upperCase('test')"/> </xsl:template> If you still encounter the same problem I am almost 100% sure it has to do something with your Java code. Maybe SAXON is more strict than Xalan. The only way to find out what's wrong here I think is too get it as easy as possible. Ismaël -----Original Message----- From: Laura [mailto:xsl_list@xxxxxxxxxxx] Sent: vrijdag 17 januari 2003 14:58 To: Cams Ismael Subject: Re: calling extension java functions. ( Saxon Vs Xalan) Thanks Dave and Cams.. I did the stuff and had it running with Xalan..and everything is fine with XALAN. Fails with Saxon. The saxon.jar and the str-utils.jar( this contains my specific java stuff) are in classpath. The following is the Dos Result Screen D:\tests>java org.apache.xalan.xslt.Process -IN str.xml -XSL str.xsl -OUT RED BLUE BLACK GREEN With Saxon: Transform failed: At xsl:value-of on line 18 of file:/D:/tests/str.xsl: No method matching upperCase with 1 parameter found in class com.myutils.utils.StringUtils This was just to test the extension functions in saxon. I know I could have used translate() method to get the uppercase. But this is kind of a test to get the Java thing running with Saxon. The bit that calls the extension element: <xsl:value-of select="str-utils:upperCase($colors)"/> and the namespace is: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:str-utils = "com.myutils.utils.StringUtils" extension-element-prefixes ="str-utils"> I cant understand why this fails with Saxon thanks ----- Original Message ----- From: "Cams Ismael" <Ismael.Cams@xxxxxxxxxxxxxxx> To: "'Laura'" <xsl_list@xxxxxxxxxxx> Sent: Friday, January 17, 2003 12:57 PM Subject: RE: calling extension java functions. ( Saxon Vs Xalan) Sorry I misread the xsl a little bit. Indeed you have to use the saxon namespace for extension functions of Saxon. So probably there is a problem somewhere with the Java code. Did you place the class on the classpath ? -----Original Message----- From: Laura [mailto:xsl_list@xxxxxxxxxxx] Sent: vrijdag 17 januari 2003 13:30 To: Cams Ismael Subject: Re: calling extension java functions. ( Saxon Vs Xalan) Cams, But isnt the namespace prefix for that purpose?? I need to declare the saxon namespace because I am using one of its extension elements as well. ----- Original Message ----- From: "Cams Ismael" <Ismael.Cams@xxxxxxxxxxxxxxx> To: <xsl_list@xxxxxxxxxxx> Sent: Friday, January 17, 2003 11:47 AM Subject: FW: calling extension java functions. ( Saxon Vs Xalan) The way I call extension functions in Saxon is: <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:str-utils="java:com.myutils.utils.StringUtils"> <xsl:value-of select="str-utils:upperCase($mystring)"/> Somewhere in the documentation you can find: The SAXON namespace URI "http://icl.com/saxon" is recognised as a special case, and causes the function to be loaded from the class com.icl.saxon.functions.Extensions. This class name can be specified explicitly if you prefer. So I think you shouldn't refer to the SAXON namespace. Probably it looks in the Extensions class for this method, and of-course it doesn't exist in this class. Hope this helps. Kind regards, Ismaël -----Original Message----- From: Laura [mailto:xsl_list@xxxxxxxxxxx] Sent: vrijdag 17 januari 2003 12:30 To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: calling extension java functions. ( Saxon Vs Xalan) 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 XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|