Xslt 在ApacheFopXSL文档中使用Barcode4J的动态消息

Xslt 在ApacheFopXSL文档中使用Barcode4J的动态消息,xslt,barcode,xsl-fo,apache-fop,barcode4j,Xslt,Barcode,Xsl Fo,Apache Fop,Barcode4j,在Apache FOP xsl文档中使用Barcode4J ean-13生成动态消息时遇到问题。我确实用硬编码信息生成了条形码。但是,我想将条形码号作为参数传递给xsl文档。我该怎么做呢 此外,我还参考了barcode4J的帮助页面,但运气不佳。我尝试过使用描述的技术,但没有成功 这就是我的xsl文档的样子 <fo:block-container left="1000" top="1000" z-index="1" position="relative">

在Apache FOP xsl文档中使用Barcode4J ean-13生成动态消息时遇到问题。我确实用硬编码信息生成了条形码。但是,我想将条形码号作为参数传递给xsl文档。我该怎么做呢

此外,我还参考了barcode4J的帮助页面,但运气不佳。我尝试过使用描述的技术,但没有成功

这就是我的xsl文档的样子

<fo:block-container left="1000" top="1000"
            z-index="1" position="relative">
            <fo:block>
                <fo:instream-foreign-object>
                    <bc:barcode xmlns:bc="http://barcode4j.krysalis.org/ns"
                        message="123456789789">
                        <bc:ean-13 />
                    </bc:barcode>
                </fo:instream-foreign-object>
            </fo:block>
        </fo:block-container>

您不能说您正在使用哪个XSLT版本

如果要将参数传递给XSLT,则需要将该参数声明为
xsl:stylesheet
的子元素,例如:

<xsl:param name="barcode" />

有关XSLT 1.0中的属性值模板,请参见

,谢谢您的帮助。因此,我将参数添加到XSLT表中。但是,当我给参数一个静态值“”时,它会工作。但是,如果删除静态值并在XSLT转换器上用java设置参数,则在生成XSLT文档时不会显示该值。而是说“java.lang.NullPointerException:参数msg不得为空”,这是指barcode4j上不允许为空的消息。是“msg”还是“message”?要测试样式表参数,能否暂时返回到对
@message
值进行硬编码,并在其他地方使用参数值?例如,您可以将
放在其他模板中,您可以在输出中检查参数设置是否正确。感谢您的反馈。它之所以说“msg”,是因为它指的是未设置消息时Barcode4j库中的隐式实现。如果您执行“”-那么它将给出相同的NullPointerException错误。是的,正如您所提到的,我已经尝试在其他地方使用该参数,并且它实际上会打印生成文档时在java中设置的值。例如,当我给参数指定一个静态值并用java设置值时,对于ex-“”,则生成的条形码显示静态值,“”显示java值。
中重复的
select
属性不是格式良好的XML,因此在获得条形码之前很久就应该收到错误消息。如果将FO生成为文件,则
@message
会显示什么?
<fo:block-container left="1000" top="1000"
        z-index="1" position="relative">
        <fo:block>
            <fo:instream-foreign-object>
                <bc:barcode xmlns:bc="http://barcode4j.krysalis.org/ns"
                    message="{$barcode}">
                    <bc:ean-13 />
                </bc:barcode>
            </fo:instream-foreign-object>
        </fo:block>
    </fo:block-container>