1

我尝试了几个测试,我搜索任何解决方案,但我找不到任何东西。我必须在 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 XPath 语法错误,位于 {printAnno:isStampaAnno()} 中第 652 行的第 24 行:找不到名为 {StampaAnnoUtil}isStampaAnno() 的匹配 0 参数函数。

错在哪里?XSLl 在数据库中,但是当我转换它时,它就在我的路径中。

4

1 回答 1

0

您可能只是忘记使用 Oxygen 注册您的 jar 文件。它必须知道你的函数的实现。诸如您发布的定义之类的定义就像胶水一样,但是您仍然需要提供想要粘合在一起的东西。尝试以下(或类似的东西,自从我使用氧气以来已经很久了):

  • 单击工具栏中的“配置验证方案”按钮
  • 选中“使用自定义验证方案”框
  • 单击“新建”按钮以创建新场景
  • 点击“添加”按钮
  • 选择“引擎类型”以指定您的处理器,例如 Xalan
  • 点击扩展按钮
  • 单击“添加”,然后浏览您的 jar 文件
  • 在所有对话框上单击“确定”

资源

于 2013-01-22T12:28:50.160 回答