2017-09-03 120 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的缺失有關。