当前位置: 首页 > 知识库问答 >
问题:

当我已经导入EXSLT时,为什么Saxon需要逐月功能?

祝宾白
2023-03-14

我已导入EXSLT日期包:

<xsl:import href="str/str.xsl" />
<xsl:import href="date/date.xsl" />

当我这样做时:

<xsl:variable name="month" select="date:month-in-year($pDate)" />

我得到:

XPST0017 XPath syntax error at char 0 on line 186 in {date:month-in-year($pDate)}:
Cannot find a matching 1-argument function named
{http://exslt.org/dates-and-times}month-in-year().
There is no Saxon extension function with the local name month-in-year

“并没有本地名称为month in year的Saxon扩展函数”是什么意思?我已经导入了EXSLT日期包。

共有1个答案

裴彦
2023-03-14

导入EXSLT模块时,功能是以命名模板而不是函数的形式提供的,因此需要使用xsl:call-template而不是XPath函数调用来调用它们。如果查看要导入的模块的内容,您将看到它不包含函数,只包含模板。

EXSLT日期包中的大多数函数/模板都被XPath 2.0中的函数所取代,因此不清楚为什么您仍在使用EXSLT版本。

Saxon 6.5支持EXSLT日期包(作为XPath函数),但它们在9.5之前的某个时间退出了产品,因为XPath 2.0不再需要它们。

可能仍有相当多的人在使用Saxon 6.5,但我不推荐使用它。您说您喜欢Saxon 9中的诊断,而且您显然想要的特性比XSLT 1.0中的更多,所以请继续。。。

 类似资料:
  • 我和同事一起创建了一个Angular 5应用程序。我为我的所有界面创建了一个文件夹,并按功能进行分组。然而,我没有在它们上包含任何导出符号,并且在使用它们时,我从不需要导入它们……它们只存在,不会产生任何编译错误。我喜欢这种方式,因为它使代码更干净,但我只是在利用一些bug吗?我的同事以“正确”的方式完成了它,并且需要在任何时候导入他想要使用的界面。有什么想法吗?您应该如何创建存在于单独文件中的接

  • 但代码不起作用。我是否需要将launchActivity定义为一个规则,或者是否存在我需要在Gradle中导入的库? 这些是我已经有的进口品

  • 问题内容: 在下面的代码中,为什么我需要导入但可以不导入就可以使用? 问题答案: 为了方便起见,Java编译器会为每个源文件自动导入两个完整的软件包: java.lang包和 当前包(当前文件的包)。 请参考 oracle.com了解更多信息(http://docs.oracle.com/javase/tutorial/java/package/usepkgs.html)

  • 问题内容: 我到处都是(例如博客文章,代码),我看到了React无状态功能组件的代码,即使从未使用过,也可以导入其中。 我认为没有必要将其导入功能组件,并且一直假设这只是从组件成为类时的痕迹而已,不再需要。 我还感到惊讶的是,我的短毛绒没有抱怨未使用的进口(通常,当我进口未使用的东西时会抱怨)。 是否有某些原因需要导入我不知道的功能组件? 问题答案: 就在这里。Babel转译JSX以 使用 : 至

  • 我正在使用XSpec(与Saxon EE 9一起)来测试一些XSLT 1.0转换。它们在大多数情况下工作正常,除了以下EXSLT扩展: 我收到一个错误,说: {http://exslt.org/dates-and-times}format-date()。没有本地名称format-date的Saxon扩展函数 我理解这意味着Saxon没有从EXSLT实现format-date()方法。有没有办法在不

  • 问题内容: 我使用类只有很短的时间,编写方法时,我使所有变量都引用了self,例如self.foo。 但是,我在浏览《 wxPython in Action》 一书时发现,“ self”并没有一直使用。例如: 下面的一个确实使用“自我”。 如果我没记错的话,“自我”是指该类的特定实例,那么什么时候没有必要?有一般的经验法则吗? 问题答案: 您用于引用当前实例的属性。 您用于引用父类的方法。 如果仅