【问题标题】:Xalan call user Java functionXalan 调用用户 Java 函数
【发布时间】:2013-01-22 11:07:14
【问题描述】:

我尝试了几个测试并搜索了任何解决方案,但我找不到任何东西。 我必须在 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 缺少子元素。

在 {printAnno:isStampaAnno()} 中第 652 行的第 24 个字符处出现 F XPath 语法错误: 找不到名为 {StampaAnnoUtil}isStampaAnno() 的匹配 0 参数函数。

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

【问题讨论】:

  • 您是否使用 Oxygen 将 jar 文件注册为 XSLT 处理器扩展?

标签: java call xalan


【解决方案1】:

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

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

Source

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-21
    • 2012-05-21
    • 2016-12-25
    • 2014-03-31
    • 2010-12-26
    • 2014-09-04
    • 2018-10-05
    • 2016-06-12
    相关资源
    最近更新 更多