当我尝试使用包含新行的处理指令在MarkLogic(8.0-6.1)中存储文档时,将删除换行符。例如:
let $fileURI := "/some/place/file.xml"
let $doc :=
document {
<?foo bar
another bar ?>,
<a/>
}
return
xdmp:document-insert($fileURI, $doc)
这导致存储以下文档:
<?foo bar another bar ?>
<a/>
当我更喜欢这样的文件时:
<?foo bar
another bar ?>
<a/>
有没有办法让MarkLogic在插入时保留这些新行?
答案 0 :(得分:1)
MarkLogic使用内部树表示以规范形式存储XML(和JSON)。这些新行可能被认为是无关紧要的,因此被删除,就像XML pi,本地doctype信息,其他无关紧要的空白一样。命名实体在启用repair
或根据本地doctype信息转换为UTF-8。
如果您需要能够使用原始空白和所有内容导出文档,最好将其保存为MarkLogic中的二进制文本或文本。
HTH!
答案 1 :(得分:0)
不确定为什么要这样做,但新行的xml编码由

处理
let $doc :=
document {
<?foo bar

another bar ?>,
<a/>}