2015-12-15 20 views
2

我想要的xsl:包的第一次,但得到一个错误的命令线 -可能的圆形包的依赖 - XSLT 3.0

XML(没有真正使用) -

<woot/> 

包。 xsl-

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:package name="http://example.org/package.xsl" 
    package-version="1.0" version="3.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:f="http://example.org/package"> 

    <xsl:function name="f:woot" visibility="public"> 
     <xsl:value-of select="'DANGGGG'"/> 
    </xsl:function> 

</xsl:package> 

包use.xsl

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:package name="http://example.org/package-use.xsl" 
    package-version="1.0" version="3.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:f="http://example.org/package"> 

    <xsl:use-package name="http://example.org/package.xsl" package-version="1.0"/> 

    <xsl:template match="/"> 
     <xsl:variable name="output-text" select="f:woot()"/> 
     <xsl:value-of select="$output-text"/> 

    </xsl:template> 
</xsl:package> 

在命令行(使用撒克逊9.7)

> java -jar saxon9ee.jar woot.xml package-use.xsl;package.xsl 

returns-

可能的圆形包依赖

我试图对氧XML相似变换与撒克逊9.6,并得到显示java.lang.NullPointerException 。

回答

1

我已经记录了撒克逊错误的位置:

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

恐怕直到我们发出补丁没有比运行从s9api API的转变,而不是在命令行中其他的解决方法。

当你遇到这个问题时,你会遇到另一个问题:你的包需要声明它使用的模式。添加一个空的<xsl:mode/>声明是最小修复。

+0

感谢您关注此事,并指出模式问题。期待下一个版本。 – Vinit