XSLT 内で JavaScript を呼び出そうとしていますが、失敗し続けます。Xalan 名前空間を使用しています。私も Java を呼び出していますが、それは問題なく動作しますが、何らかの理由で JavaScript は動作しません。
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:java="http://xml.apache.org/xalan/java" xmlns:xalan="http://xml.apache.org/xalan" xmlns:counter="MyCounter" extension-element-prefixes="counter">
<xsl:template match="/">
<xalan:component prefix="counter" functions="response">
<xalan:script lang="javascript">
function response(name) {
// Return a string.
return "" + (name);
}
</xalan:script>
</xalan:component>
<xsl:value-of select="counter:response('hello')"/>
<xsl:variable name="rightNow" select="java:java.util.Date.new()"/><!-- Get date object -->
<xsl:variable name="formatter" select="java:java.text.SimpleDateFormat.new('MM')"/> <!-- double digit format: append 0 to less than ten -->
<xsl:variable name="formattedMonth" select="java:format($formatter, $rightNow)"/> <!-- format it -->
<p><xsl:value-of select="$formattedMonth"/></p>
</xsl:template>
</xsl:stylesheet>
XML トランスフォーマーで次のエラーが発生します。
<Location of error unknown>java.lang.NoSuchMethodException: For extension function, could not find method java.lang.String.response<ExpressionContext, ]>.