在 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>
提前谢谢了!