xdmp:document-insert 删除处理指令中的新行
xdmp:document-insert removes new lines in processing instructions
当我尝试使用包含换行的处理指令在 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 在插入时保留这些新行?
不确定为什么要这样做,但是 xml 新行的编码是用 

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

another bar ?>,
<a/>}
MarkLogic 使用内部树表示以规范形式存储 XML(和 JSON)。这些换行符可能被认为是无关紧要的,因此被删除,就像 XML pi、本地文档类型信息和其他无关紧要的空格一样。命名实体在启用 repair
的情况下或根据本地文档类型信息转换为 UTF-8。
如果您需要能够导出包含原始空白和所有内容的文档,最好将其保存为二进制文件或 MarkLogic 中的文本文件。
HTH!
当我尝试使用包含换行的处理指令在 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 在插入时保留这些新行?
不确定为什么要这样做,但是 xml 新行的编码是用 

let $doc :=
document {
<?foo bar

another bar ?>,
<a/>}
MarkLogic 使用内部树表示以规范形式存储 XML(和 JSON)。这些换行符可能被认为是无关紧要的,因此被删除,就像 XML pi、本地文档类型信息和其他无关紧要的空格一样。命名实体在启用 repair
的情况下或根据本地文档类型信息转换为 UTF-8。
如果您需要能够导出包含原始空白和所有内容的文档,最好将其保存为二进制文件或 MarkLogic 中的文本文件。
HTH!