2017-01-31 3 views
2

Когда я пытаюсь сохранить документ в MarkLogic (8.0-6.1) с инструкциями по обработке, которые содержат новые строки, символы новой строки удаляются. Например:xdmp: document-insert удаляет новые строки в инструкциях по обработке

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 для сохранения этих новых строк при вставке?

ответ

1

MarkLogic хранит XML (и JSON) в их канонической форме, используя внутреннее представление дерева. Эти новые строки, вероятно, считаются незначительными, поэтому удаляются так же, как XML pi, локальная информация о doctype, другие незначительные пробелы. Именованные объекты преобразуются в UTF-8 с включенным repair или в соответствии с информацией о локальном doctype.

Если вам нужно экспортировать документ с оригинальными пробелами и всем, лучше всего сохранить его как двоичный или текст в MarkLogic.

HTH!

0

Не знаю, почему вы хотите сделать это, но кодировка XML для новой линии обрабатывается с &#xA;

let $doc := 
    document { 
    <?foo bar&#xA; 
    another bar ?>, 
    <a/>} 
+0

Вы правы, я не хочу этого делать ... но причины. К сожалению, этот файл хранится как '' Без перерыва. – Walt

Смежные вопросы