1

在 Saxon 9.8 中使用软件包时遇到了一些困难。Saxon 找不到我想使用的包并且编译失败。

-lib从命令行使用该选项时,我收到以下错误消息:

java.lang.NullPointerException
        at net.sf.saxon.style.PackageVersion.<init>(PackageVersion.java:71)
        at net.sf.saxon.trans.packages.VersionedPackageName.<init>(VersionedPackageName.java:29)
        at net.sf.saxon.trans.packages.PackageInspector.getNameAndVersion(PackageInspector.java:78)
        at et.sf.saxon.trans.packages.PackageInspector.getPackageDetails(PackageInspector.java:91)
        at net.sf.saxon.trans.packages.PackageLibrary.<init>(PackageLibrary.java:96)
        at net.sf.saxon.Transform.doTransform(Transform.java:404)
        at net.sf.saxon.Transform.main(Transform.java:81) Fatal error during transformation: java.lang.NullPointerException:  (no message)

-lib在 oXygen 19 中使用带有 Saxon 9.8 附加组件的选项时,我收到以下消息:

Nom du moteur: Saxon-EE 9.8.0.4 (External)
Gravité: fatal
Description: Cannot find package img_pkg (version *)
Emplacement de début: 7:52

当我使用配置文件声明包时,我在 oXygen 中收到完全相同的错误消息。

我很确定文件路径没有问题。由于在我进入 oXygen 的错误消息中似乎无法识别软件包版本,我认为这可能是语法问题,但我找不到它的来源。

这是测试我的包:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:package name="img_pkg" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:img="https://www.ephe.fr/annuaire/colin-brisson"
    exclude-result-prefixes="xs img" version="1.0">

    <xsl:function name="img:test" visibility="final" as="xs:string">
       <xsl:value-of select="'test ok'"/>
    </xsl:function>

</xsl:package>

这是我的测试样式表:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:img="https://www.ephe.fr/annuaire/colin-brisson" exclude-result-prefixes="xs"
    version="3.0">

    <xsl:use-package version="1.0" name="img_pkg"/>

    <xsl:template name="xsl:initial-template">

        <xsl:message>
            <xsl:value-of select="img:test()"/>
        </xsl:message>

    </xsl:template>

</xsl:stylesheet>

提前谢谢了!

4

1 回答 1

1

我认为命令行中的 NullPointerException 是由于错误 3373

https://saxonica.plan.io/issues/3373

尽管在您的情况下,根本原因与错误条目中的根本原因略有不同,但它是缺少 package-version 属性。这在 9.8.0.4 中已修复,但从堆栈跟踪中的行号来看,在我看来,就像您使用的是早期维护版本一样。

oXygen 中的问题可能完全不同,但它可能再次与缺少@package-version 有关。

于 2017-09-04T13:41:13.687 回答