我需要使用 TDE 创建模板。最终我希望能够使用我的 View 查看数据。我看到的问题是因为我的 xml 中有多个重复元素。任何人都可以帮助我如何创建这样的模板。以下是 xml 示例:
<entity>
<id>id-2</id>
<name>pub-2</name>
<series name="s-21">s-21</series>
<series name="s-22">s-22</series>
<series name="s-23">s-23</series>
<location>loc-1</location>
<location>loc-2</location>
</entity>
我想看到 6 行可重复字段的组合,即本例中的系列和位置。任何帮助都将非常感激。
最佳答案
找到了一种使用嵌套模板的方法。这是一个示例模板:
<template xmlns="http://marklogic.com/xdmp/tde">
<context>entity</context>
<rows>
<row>
<schema-name>main</schema-name>
<view-name>root</view-name>
<view-layout>sparse</view-layout>
<columns>
<column>
<name>id</name>
<scalar-type>string</scalar-type>
<val>id</val>
</column>
<column>
<name>name</name>
<scalar-type>string</scalar-type>
<val>name</val>
</column>
</columns>
</row>
</rows>
<templates>
<template>
<context>series</context>
<rows>
<row>
<schema-name>main</schema-name>
<view-name>series</view-name>
<view-layout>sparse</view-layout>
<columns>
<column>
<name>idParent</name>
<scalar-type>string</scalar-type>
<val>../id</val>
</column>
<column>
<name>series</name>
<scalar-type>string</scalar-type>
<val>fn:string(.)</val>
<nullable>true</nullable>
</column>
</columns>
</row>
</rows>
</template>
<template>
<context>location</context>
<rows>
<row>
<schema-name>main</schema-name>
<view-name>location</view-name>
<view-layout>sparse</view-layout>
<columns>
<column>
<name>idParentlocation</name>
<scalar-type>string</scalar-type>
<val>../id</val>
</column>
<column>
<name>name</name>
<scalar-type>string</scalar-type>
<val>fn:string(.)</val>
<nullable>true</nullable>
</column>
</columns>
</row>
</rows>
</template>
</templates>
</template>
这是sql查询:
select * from main.root
join main.location on main.location.idParentlocation = main.root.id
join main.series on main.series.idParent = main.root.id
关于xml - 多个重复字段上的 MarkLogic TDE xpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50622119/