首页 > 解决方案 > 收到“尚未声明命名空间前缀 'bin'”错误 - Saxon 的 XSL3

问题描述

我尝试在 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”库吗?

谢谢!

标签: xsltbit-manipulationsaxonxslt-3.0

解决方案


您需要添加命名空间声明

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

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


推荐阅读