【问题标题】:The URI urn:this-stylesheet does not identify an external Java classURI urn:this-stylesheet 不识别外部 Java 类
【发布时间】:2021-03-15 05:54:21
【问题描述】:

我正在调试 XSLT 并看到以下错误

 <xsl:function name="this:sendquotedvalue" as="xs:string">
calling using the below lines
<xsl:value-of select="this:sendquotedvalue($emptyString)"/>

我得到的错误是

The URI urn:this-stylesheet does not identify an external Java class

还有如下的骨灰盒

xmlns:this="urn:this-stylesheet"

任何建议

-Prasanna.K

【问题讨论】:

  • 如果您想使用 xsl:function,请使用 XSLT 2 或 3 处理器,例如 Saxon 9 或 10。

标签: xml xslt


【解决方案1】:

我怀疑您的样式表指定了 version="2.0"(或更高版本),但您在 XSLT 1.0 处理器下运行它。

如果样式表版本大于 1.0(这称为“向前兼容模式”),则需要 1.0 处理器来忽略像 xsl:function 这样的声明。所以xsl:function 不存在,这使得调用这个函数的尝试出错。对于 1.0 Java 处理器,它只知道两种函数:内置核心函数(在无命名空间中)和外部 Java 函数。它排除了第一类,因为有一个命名空间,现在它告诉你它也不能是一个外部 Java 函数,因为命名空间没有映射到任何外部 Java 类。

请注意,在样式表中指定 version="2.0" 并不会神奇地为您提供 XSLT 2.0 处理器。加载 XSLT 处理器的规则(例如 JAXP 工厂规则)不考虑样式表版本。

【讨论】:

  • 非常感谢迈克尔。可能是原因。我正在使用氧气 XML 编辑器,请您提供一些我需要更改或安装 XSLT 处理器 2.0 的设置。
  • @PrasannaK,它可能取决于您使用的确切 oXygen 版本,但是在设置转换场景时oxygenxml.com/doc/versions/23.1/ug-editor/topics/xslt-tab.html 然后确保选择 Saxon 9 或 Saxon 10 作为 XSLT 处理器,而不是 Xalan 或 Saxon 6
猜你喜欢
  • 2011-03-03
  • 2017-01-24
  • 1970-01-01
  • 1970-01-01
  • 2016-11-11
  • 2015-05-24
  • 2019-03-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多