【问题标题】:Receiving "Namespace prefix 'bin' has not been declared" error - Saxon's XSL3收到“尚未声明命名空间前缀 'bin'”错误 - Saxon 的 XSL3
【发布时间】:2020-07-21 06:40:40
【问题描述】:

我尝试在 Saxon 的 XSL3 (-PE) 上使用按位库,但一直收到以下错误消息:

XPST0081: Namespace prefix 'bin' has not been declared

包含 bin 代码的行如下所示:

<xsl:variable name="firstCharPos" select="bin:shift(bin:hex('000001'), 17)"/>

我的样式表部分如下所示:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:saxon="http://saxon.sf.net/"
    xmlns:mf="http://example.com/mf"
    extension-element-prefixes="saxon"
    exclude-result-prefixes="xs saxon mf"
    version="3.0">

我错过了什么吗?我应该以某种方式包含“bin”库吗?

谢谢!

【问题讨论】:

  • 您想使用 EXPath bin 模块吗?我认为PE和EE支持它。但是当然你需要声明它的命名空间。
  • 是的,这就是我要使用的模块。我应该如何在命名空间上声明它?找不到它的正确文档,只是将 'bin' 添加到 'exclude-result-prefixes' 不起作用......
  • 命名空间声明看起来像xmlns:bin="http://expath.org/ns/binary",就像您在样式表元素上声明的其他命名空间一样。

标签: xslt bit-manipulation saxon xslt-3.0


【解决方案1】:

你需要添加命名空间声明

 xmlns:bin="http://expath.org/ns/binary"

您可能还想将“bin”添加到 exclude-result-prefixes 中的前缀列表中(或将其更改为 exclude-result-prefixes="#all")。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-31
    • 2019-09-26
    • 2014-03-21
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多