XDMP-BADNCNAME :: XQuery中的链接错误

时间:2017-10-17 09:28:53

标签: xml xquery marklogic xbrl

使用MarkLogic的查询控制台时获得的错误代码段

  

[1.0-ml] XDMP-BADNCNAME :: link

     

堆栈跟踪

     

在第1行第18列:在xdmp:eval("声明命名空间   xmlns:link =" http://www.xbrl.org/2003/link ...",(),11967107844575880929 ...)

     
      
  1. 声明命名空间xmlns:link =" http://www.xbrl.org/2003/linkbase" ;;
  2.   
  3. 声明命名空间xmlns:bd-alg =" http://www.nltaxonomie.nl/nt11/bd/20161207/dictionary/bd-algemeen" ;;
  4.   
  5. 声明命名空间xmlns:bd-bedr =" http://www.nltaxonomie.nl/nt11/bd/20161207/dictionary/bd-bedrijven" ;;
  6.   

任何人都知道发生了什么事?

1 个答案:

答案 0 :(得分:1)

命名空间声明必须将命名空间绑定到必须是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语法已经清楚地表明这些是前缀。