いくつかのテストを試み、解決策を検索しましたが、何も見つかりません。XSLT で Java 関数を呼び出す必要があります。私の最後の解決策は、次のとおりです。クラスを次のように宣言します
シャラン:
<xsl:stylesheet version="2.0" xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xalan="http://xml.apache.org/xalan"
xmlns:printAnno="StampaAnnoUtil"
extension-element-prefixes="printAnno">
<xalan:component prefix="printAnno"
elements="isStampaAnno" functions="isStampaAnno">
<xalan:script lang="javaclass" src="java:it.dpe.common.util.StampaAnnoUtil"/>
</xalan:component>
私は自分の関数を呼び出します:
<xsl:value-of select="printAnno:isStampaAnno()"/>
Oxygen エディターで直接エラーが発生し、レポートをコンパイルしようとすると、次のようになります。
fo:page-sequence に子要素がありません。
F {printAnno:isStampaAnno()} の 652 行目の char 24 にある XPath 構文エラー: {StampaAnnoUtil}isStampaAnno() という名前の一致する引数なしの関数が見つかりません。
障害はどこにありますか?XSLl は DB にありますが、変換すると自分のパスにあります。