2017-01-31 1 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 파이, 로컬 Doctype 정보, 기타 중요하지 않은 공백과 같이 무시 될 수 있으므로 무시됩니다. 명명 된 엔티티는 repair이 활성화 된 UTF-8로 변환되거나 로컬 Doctype 정보에 따라 변환됩니다.

원본 공백과 모든 것을 포함하여 문서를 내보낼 수 있어야하는 경우 MarkLogic에서 이진 또는 텍스트로 저장하는 것이 가장 좋습니다.

HTH!

0

당신이 그렇게하기를 원하지만 새로운 라인에 대한 XML 인코딩이 내부 트리 표현을 사용하여 표준 형태로 &#xA;

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

당신 말이 맞아요, 나는 그걸하고 싶지 않습니다 ...하지만 이유. 불행하게도 ''로 저장됩니다. – Walt