Hi,

 

I’m trying to use xalan-j-2-5-2 to transform with an XSLT that uses the evaluate() extension.  This works with the default transformer, but not with translets.  Whenever I try to use a translet I get the error:  'Cannot find external method 'org.apache.xalan.lib.Extensions.evaluate' (must be public).'  for xalan:evaluate(), and the error: 'The first argument to the non-static Java function 'evaluate' is not a valid object reference.' for dyn:evaluate().

 

Here are the XML and XSL files I wrote to test this:

 

<?xml version='1.0' encoding='UTF-8'?>

<TestElement>

            <data someAttribute="5"/>

            <data someAttribute="10"/>

</TestElement>

 

 

 

<xsl:stylesheet version = '1.0'

                        xmlns:xsl='http://www.w3.org/1999/XSL/Transform'

                        xmlns:xalan='http://xml.apache.org/xalan'

                        xmlns:dyn="http://exslt.org/dynamic">   

                       

                        <xsl:template match="/">

                                    <xsl:value-of select="xalan:evaluate('//TestElement/data[1]/@someAttribute')"/>                 

                                    <xsl:value-of select="dyn:evaluate('//TestElement/data[1]/@someAttribute')"/>                   

                        </xsl:template>

</xsl:stylesheet>

 

For transforming without tranlets I used the SimpleTransform sample program that comes with xalan-j, and for tranlets I used JAXPTranletOneTransformation.  I’m using J2SE 1.4.2 and J2EE 1.4 final, with the endorsed xalan jars.  SimpleTransform works, JAXPTranletOneTransformation  doesn’t, though it works if the evaluate() extension calls are taken out.  Following is the result of running java org.apache.xalan.xslt.EnvironmentCheck:

 

#---- BEGIN writeEnvironmentReport($Revision: 1.23 $): Useful stuff found: ----

version.DOM.draftlevel=2.0fd

java.class.path=.\;C:\j2eesdk1.4\lib\j2ee.jar;C:\Program Files\Apache Group\Tomc

at 4.1\webapps\Yuriy\WEB-INF\classes\;C:\Documents and Settings\yzilbergleyt\My

Documents\MyJSP\Classes\;C:\Program Files\Apache Group\Tomcat 4.1\common\lib\ser

vlet.jar;C:\Documents and Settings\yzilbergleyt\My Documents\JavaClasses\;c:\tc;

 C:\Blazix\Blazix.jar;C:\xalan-j\xalan-j_2_5_2\bin\bsf.jar;C:\xalan-j\xalan-j_2_

5_2\bin\xalan.jar;C:\xalan-j\xalan-j_2_5_2\bin\xalansamples.jar;C:\xalan-j\xalan

-j_2_5_2\bin\xercesImpl.jar;C:\xalan-j\xalan-j_2_5_2\bin\xml-apis.jar;

version.JAXP=1.1 or higher

java.ext.dirs=C:\j2sdk_nb\j2sdk1.4.2\jre\lib\ext

#---- BEGIN Listing XML-related jars in: foundclasses.sun.boot.class.path ----

xalan.jar-path=C:\j2sdk_nb\j2sdk1.4.2\jre\lib\endorsed\xalan.jar

xercesImpl.jar-apparent.version=xercesImpl.jar from xerces-2_4

xercesImpl.jar-path=C:\j2sdk_nb\j2sdk1.4.2\jre\lib\endorsed\xercesImpl.jar

xml-apis.jar-apparent.version=xml-apis.jar present-unknown-version

xml-apis.jar-path=C:\j2sdk_nb\j2sdk1.4.2\jre\lib\endorsed\xml-apis.jar

#----- END Listing XML-related jars in: foundclasses.sun.boot.class.path -----

version.xerces2=Xerces-J 2.4.0

version.xerces1=not-present

version.xalan2_2=Xalan Java 2.5.2

version.xalan1=not-present

version.ant=not-present

java.version=1.4.2

version.DOM=2.0

version.crimson=present-unknown-version

sun.boot.class.path=C:\j2sdk_nb\j2sdk1.4.2\jre\lib\endorsed\xalan.jar;C:\j2sdk_n

b\j2sdk1.4.2\jre\lib\endorsed\xercesImpl.jar;C:\j2sdk_nb\j2sdk1.4.2\jre\lib\endo

rsed\xml-apis.jar;C:\j2sdk_nb\j2sdk1.4.2\jre\lib\rt.jar;C:\j2sdk_nb\j2sdk1.4.2\j

re\lib\i18n.jar;C:\j2sdk_nb\j2sdk1.4.2\jre\lib\sunrsasign.jar;C:\j2sdk_nb\j2sdk1

.4.2\jre\lib\jsse.jar;C:\j2sdk_nb\j2sdk1.4.2\jre\lib\jce.jar;C:\j2sdk_nb\j2sdk1.

4.2\jre\lib\charsets.jar;C:\j2sdk_nb\j2sdk1.4.2\jre\classes

#---- BEGIN Listing XML-related jars in: foundclasses.java.class.path ----

xalan.jar-path=C:\xalan-j\xalan-j_2_5_2\bin\xalan.jar

xalansamples.jar-apparent.version=xalansamples.jar present-unknown-version

xalansamples.jar-path=C:\xalan-j\xalan-j_2_5_2\bin\xalansamples.jar

xercesImpl.jar-apparent.version=xercesImpl.jar from xerces-2_4

xercesImpl.jar-path=C:\xalan-j\xalan-j_2_5_2\bin\xercesImpl.jar

xml-apis.jar-apparent.version=xml-apis.jar present-unknown-version

xml-apis.jar-path=C:\xalan-j\xalan-j_2_5_2\bin\xml-apis.jar

#----- END Listing XML-related jars in: foundclasses.java.class.path -----

version.SAX=2.0

version.xalan2x=Xalan Java 2.5.2

#----- END writeEnvironmentReport: Useful properties found: -----

# YAHOO! Your environment seems to be OK.

 

 

Please let me know if this is a bug, or if I'm doing something wrong.

 

Thanks in advance!

Yuriy Zilbergleyt

Reply via email to