I am trying to use example provided on
http://xml.apache.org/xalan-j/extensions.html (modified it to
simplify). The code is attached:
<?xml version="1.0"?>
<!--Namespaces are global if you set them in the stylesheet element-->
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns:xalan="http://xml.apache.org/xalan"
xmlns:my-ext="ext1"
extension-element-prefixes="my-ext">
<!--The component and its script are in the xalan namespace and define the
implementation of the extension.-->
<xalan:component prefix="my-ext" elements="timelapse" functions="getdate">
<xalan:script lang="javascript">
var multiplier=1;
// The methods or functions that implement extension elements
always take 2
// arguments. The first argument is the XSL Processor context; the second
// argument is the element node.
function timelapse(xslProcessorContext, elem)
{
multiplier=parseInt(elem.getAttribute("multiplier"));
// The element return value is placed in the result tree.
// If you do not want a return value, return null.
return null;
}
function getdate()
{
return "TEST";
}
</xalan:script>
</xalan:component>
<xsl:template match="/">
<p>We have logged your enquiry and will
respond by <xsl:value-of select="my-ext:getdate()"/>.</p>
</xsl:template>
</xsl:stylesheet>
When i try to use commandline to do transformation:
java -classpath
c:\work\lib\bsf.jar;c:\work\lib\js.jar;c:\work\lib\xalan.jar
org.apache.xalan.xslt.Process -IN testData.xml -XSL testXSL.xsl -OUT
testout.xml
I am getting following error:
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
org.apache.xalan.extensions.ExtensionHandlerGeneral.callFunction(ExtensionHandlerGeneral.java:361)
at
org.apache.xalan.extensions.ExtensionsTable.extFunction(ExtensionsTable.java:227)
at
org.apache.xalan.transformer.TransformerImpl.extFunction(TransformerImpl.java:461)
at
org.apache.xpath.functions.FuncExtFunction.execute(FuncExtFunction.java:233)
at
org.apache.xpath.Expression.executeCharsToContentHandler(Expression.java:357)
at org.apache.xalan.templates.ElemValueOf.execute(ElemValueOf.java:319)
at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2339)
at
org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:710)
at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2339)
at
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2160)
at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1213)
at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:668)
at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1129)
at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1107)
at org.apache.xalan.xslt.Process.main(Process.java:1041)
Caused by: com.ibm.bsf.BSFException: JavaScript Error: Internal Error:
java.lang.IllegalArgumentException
at
com.ibm.bsf.engines.javascript.JavaScriptEngine.handleError(JavaScriptEngine.java:182)
at
com.ibm.bsf.engines.javascript.JavaScriptEngine.call(JavaScriptEngine.java:122)
... 19 more
(Location of error unknown)XSLT Error
(javax.xml.transform.TransformerException): Could not create
extension: getdate because of:
java.lang.reflect.InvocationTargetException
Had anyone on this list encountered this error?
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--