2017-09-20 1 views
0

일부 데이터를 추출하기 위해 .xml 파일과 템플릿을 만들었지 만 속성 만 표시됩니다. 해당 템플릿 여기MarkLogic의 XQuery 템플릿에 값이없고 속성 (TDE) 만 표시됩니다.

<user id="1234" email="[email protected]" password="1234"> 
<type>Human</type> 
<notes> 
    <note reference="5432" id="753" xmlns="http://testnamespace.de/note"> 
     <text>example</text> 
     <username>John Doe</username> 
     <groups> 
      <group id="42">Avengers</group> 
      <group id="55">JLA</group> 
     </groups> 
     <distinctiveTitle>title</distinctiveTitle> 
     <personNameInverted>Doe John</personNameInverted> 
    </note> 
</notes> 

과 :

내 .XML-testfile 위이다 (?) 내가 올바른 경로를 사용하는 컨텍스트를 변경
import module namespace tde = "http://marklogic.com/xdmp/tde" at "/MarkLogic/tde.xqy"; 
declare namespace testns = "http://testnamespace.de/note"; 

let $userNoteTDE:= 
<template xmlns="http://marklogic.com/xdmp/tde" xmlns:testns="http://testnamespace.de/note"> 
    <context>/user/notes/testns:note</context> 
    <rows> 
     <row> 
      <schema-name>user</schema-name> 
      <view-name>notes</view-name> 
      <columns> 
       <column> 
        <name>reference</name> 
        <scalar-type>string</scalar-type> 
        <val>@reference</val> 
        <nullable>true</nullable> 
        <default>""</default> 
       </column> 
       <column> 
        <name>id</name> 
        <scalar-type>string</scalar-type> 
        <val>@id</val> 
        <nullable>true</nullable> 
        <default>""</default> 
       </column> 
       <column> 
        <name>text</name> 
        <scalar-type>string</scalar-type> 
        <val>text</val> 
        <nullable>true</nullable> 
        <default>""</default> 
       </column> 
       <column> 
        <name>username</name> 
        <scalar-type>string</scalar-type> 
        <val>username</val> 
        <nullable>true</nullable> 
        <default>""</default> 
       </column> 
       <column> 
        <name>distinctiveTitle</name> 
        <scalar-type>string</scalar-type> 
        <val>distinctiveTitle</val> 
        <nullable>true</nullable> 
        <default>""</default> 
       </column> 
       <column> 
        <name>personNameInverted</name> 
        <scalar-type>string</scalar-type> 
        <val>personNameInverted</val> 
        <nullable>true</nullable> 
        <default>""</default> 
       </column> 
      </columns> 
     </row> 
    </rows> 
</template> 

과 네임 스페이스 (이 부분은 다른 템플릿에 중첩되어야하므로) :

<context>/user/notes/testns:note</context> 
,451,515,

나는 TDE와 템플릿을 선택하면 : 노드 데이터 추출 (FN : 문서 (TESTFILE의 PATH), $ userNoteTDE) 나는 다음과 같은 출력을 얻을 :

{ 
"TESTFILE PATH": [ 
    { 
    "row": { 
    "schema": "user", 
    "view": "notes", 
    "data": { 
     "rownum": "1", 
     "reference": "5432", 
     "id": "753", 
     "text": "", 
     "username": "", 
     "distinctiveTitle": "", 
     "personNameInverted": "" 
    } 
    } 
    } 
    ] 
} 

이 보여주고, 그 속성이 올바르게 표시되지만 요소의 값 (text, username, distinctiveTitle, personNameInverted)이 작동하지 않습니다. 내 생각 엔 값에 좀 더 세련된 경로 나 표현식이 필요하지만 정보를 찾을 수 없다고 생각합니다. (ERR : XPST0081) 접두어 testns 그래서 어떻게 든

바인딩 네임 스페이스가없는 요소 수 없습니다 XDMP-UNBPRFX : 내 템플릿에 <val>testns:text</val>에 예를 들어 텍스트 값을 변경하면 , 나는 오류 선언 된 네임 스페이스를 사용하지만 속성은이를 사용할 수 있습니다.

또한 내 템플릿의 <groups> 섹션을 건너 뛰었습니다. 문맥이 필요하기 때문에 필요하지 않습니다.

도움이되는 통찰력에 미리 감사드립니다.

답변

관련 문제