Я только что присоединился к проекту, где они все еще используют старый XSLT 1.0 / 1.1 для печати документов. Я должен написать еще несколько логи c, поэтому я провел некоторое исследование о xalan.java/js, но я не знаю, почему я не могу внедрить код java прямо в мой xsl-файл, он всегда выдает ошибку. Я трачу на исследования целый день, и мне пришлось спросить здесь.
Мой вопрос, возможно ли даже распечатать значение функции, как в примере ниже?
Я заметил импорт java встроенные функции работают хорошо
<xsl:template match="/">
<fo:block>
test over there:
<xsl:call-template name="currentTime"/>
</fo:block>
</xsl:template>
<xsl:template name="currentTime" xmlns:java="http://xml.apache.org/xslt/java">
<xsl:value-of select="java:java.util.Date.new()"/>
</xsl:template>
Но когда я пытаюсь вызвать java с помощью ксалана, он трескается
<xsl:template match="/">
<fo:block>
java test over there:
<xsl:call-template name="currentTime"/>
</fo:block>
</xsl:template>
<xsl:template name="currentTime" xmlns:java="http://xml.apache.org/xslt/java" xmlns:xalan="http://xml.apache.org/xalan" xmlns:counter="MyCounter" extension-element-prefixes="counter">
<xalan:component prefix="counter" functions="response">
<xalan:script lang="java">
public String response(name) {
return "" + (name);
}
</xalan:script>
</xalan:component>
<xsl:value-of select="counter:response('hello')"/>
</xsl:template>