XDMP-BADNCNAME: :link XQuery 错误

XDMP-BADNCNAME: :link error in XQuery

我在使用 MarkLogic 的查询控制台时得到的错误片段

[1.0-ml] XDMP-BADNCNAME: :link

Stack Trace

At line 1 column 18: In xdmp:eval("declare namespace xmlns:link="http://www.xbrl.org/2003/link...", (), 11967107844575880929...)

  1. declare namespace xmlns:link="http://www.xbrl.org/2003/linkbase";
  2. declare namespace xmlns:bd-alg="http://www.nltaxonomie.nl/nt11/bd/20161207/dictionary/bd-algemeen";
  3. declare namespace xmlns:bd-bedr="http://www.nltaxonomie.nl/nt11/bd/20161207/dictionary/bd-bedrijven";

有人知道发生了什么事吗?

命名空间声明必须将命名空间绑定到前缀,该前缀必须是 NCName,没有 xmlns: 部分,如下所示:

declare namespace link="http://www.xbrl.org/2003/linkbase";
declare namespace bd-alg="http://www.nltaxonomie.nl/nt11/bd/20161207/dictionary/bd-algemeen";
declare namespace bd-bedr="http://www.nltaxonomie.nl/nt11/bd/20161207/dictionary/bd-bedrijven";

绑定命名空间的 XML 语法可能存在混淆,它使用 xmlns: 前缀来区分绑定与常规属性:

<link:calculationLink xmlns:link="http://www.xbrl.org/2003/linkbase">
  ...
</link:calculationLink>

在 XQuery 中,这不是必需的,因为 declare namespace 语法已经清楚地表明这些是前缀。