使用查询控制台编辑时 MarkLogic 10 文档格式发生变化

MarkLogic 10 document format change when editing with Query Console

升级到 MarkLogic 10 后,我们发现查询控制台存在问题,如果我们从 QC 对其进行编辑,文档格式会发生变化。

重建步骤:-

第 1 步:- 使用 QC

插入一个小 XML 文档
xquery version "1.0-ml";
let $doc := 
<Football>
<Team><ManchesterUnited> United finished 2nd in PL </ManchesterUnited></Team>
</Football>
for $i in 1 to 5
return xdmp:document-insert ('/England/PL/ManchesterUnited/'||$i||'', $doc)

第 2 步:- 检查一个文档格式,如下所示

let $x:= doc("/England/PL/ManchesterUnited/1")/node()
return
typeswitch ( $x )
 case element() return "xml element node"
 case text() return "text node"
 case binary() return "binary node"
default return "don't know"

输出将是“xml元素节点”

第 3 步:- 从查询控制台编辑文档,单击“编辑”,然后更改元素值。

前任

<ManchesterUnited> United finished 2nd in PL </ManchesterUnited>

<ManchesterUnited> Manchester United are the new champions </ManchesterUnited>

第 4 步:- 运行 再次执行第 2 步,现在文档格式更改为“文本节点”。

关于我们如何避免这种情况的任何建议?

这是由于查询控制台中的一个错误,在该错误中,URI 中没有文件扩展名的文档被保存为 text()。它将在未来的 MarkLogic 版本中解决。

目前,避免对 URI 没有文件扩展名的文档使用查询控制台编辑功能,或者考虑为此类 XML 文档应用“.xml”后缀。