2017-09-03 153 views
1

使用Saxon 9.8包时遇到一些困难。撒克逊找不到我想使用的软件包,并在编译时失败。撒克逊找不到包

当使用命令行的-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) 

当氧19使用-lib选项与撒克逊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> 

这里是我的测试sylesheet:

<?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> 

提前非常感谢!

+1

当你得到这个异常时,你能告诉我们你的命令行吗? –

+0

感谢您的回复@MartinHonnen。我的命令是'java -cp C:\ SaxonEE9-8-0-3J \ saxon9ee.jar net.sf.saxon.Transform -lib:img_pkg.xsl -xsl:test.xsl -it'。包和样式表都在工作目录中。 – colibrisson

+1

当你将'xsl:package'捐献给显式'package-version'属性时会发生什么? –

回答

1

我认为,在命令行中的NullPointerException异常是由于错误3373

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

虽然你的情况的根本原因是,在错误的条目有一点不同,这是没有的包版本属性。这在9.8.0.4中得到了修正,但是从堆栈跟踪中的行号看来,就好像您正在使用早期的维护版本一样。

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