Xalan调用用户Java函数

时间:2013-01-22 11:07:15

标签: java call xalan

我尝试了几个测试,我搜索任何解决方案,但我找不到任何东西。 我必须在XSLT中调用我的Java函数。我最后的解决方案,我认为最好的是以下,我用

宣布我的班级

的Xalan:

    <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:页面序列缺少子元素。

     

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

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

1 个答案:

答案 0 :(得分:0)

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

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

Source