[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: calling extension java functions. ( Saxon Vs Xalan

Subject: RE: calling extension java functions. ( Saxon Vs Xalan)
From: Cams Ismael <Ismael.Cams@xxxxxxxxxxxxxxx>
Date: Fri, 17 Jan 2003 15:12:50 +0100
xalan uppercase
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


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.