我想学习如何创建Marklogic TDE。我有Marklogic 9.0-1.1并在下面的顶级歌曲数据库中插入了一个文档。
xdmp:document-insert("/songs/Akon-featuring-Snoop-Dogg-I-Wanna-Love-
You.xml",
<top-song xmlns="http://marklogic.com/MLU/top-songs">
<title href="http://en.wikipedia.org/wiki/I_Wanna_Love_You"
xmlns:ts="http://marklogic.com/MLU/top-songs">I Wanna Love You</title>
<artist href="http://en.wikipedia.org/wiki/Akon"
xmlns:ts="http://marklogic.com/MLU/top-songs">Akon featuring
Snoop Dogg</artist>
<weeks last="2006-12-09">
<week>2006-12-02</week>
<week>2006-12-09</week>
</weeks>
<album>Jade to the Max</album>
<formats>
<format>CD single</format>
<format>Cassette single</format>
<format>7" vinyl</format>
</formats>
<genres>
<genre>R&B</genre>
</genres>
<label>Giant Records</label>
<descr>
<p>“I Wanna Love You” is the title of a top-ten R&B
single by Jade. It was the groups debut single, it was featured on
the Class Act soundtrack.”</p>
</descr>
</top-song>
)
现在我在热门歌曲数据库中创建了Marklogic模板视图。但我得到错误“TDE-INVALIDTEMPLATE :(错误:FOER0000)无效的TDE模板:TDE-INVALIDTEMPLATENODE:无效的提取模板节点:/ tde:template / tde:context [2]”。我错过了什么?
xquery version "1.0-ml";
import module namespace tde = "http://marklogic.com/xdmp/tde"
at "/MarkLogic/tde.xqy";
let $top-songs :=
<template xmlns="http://marklogic.com/xdmp/tde">
<context>/songs</context>
<rows>
<row>
<schema-name>top-songs</schema-name>
<view-name>songs</view-name>
<columns>
<column>
<name>title</name>
<scalar>string</scalar>
<val>title</val>
</column>
<column>
<name>artist</name>
<scalar>string</scalar>
<val>artist</val>
</column>
<column>
<name>weeks</name>
<scalar>string</scalar>
<val>weeks</val>
</column>
<column>
<name>week</name>
<scalar>string</scalar>
<val>week</val>
</column>
<column>
<name>album</name>
<scalar>string</scalar>
<val>album</val>
</column>
<column>
<name>format</name>
<scalar>string</scalar>
<val>format</val>
</column>
<column>
<name>genres</name>
<scalar>string</scalar>
<val>genres</val>
</column>
<column>
<name>label</name>
<scalar>string</scalar>
<val>label</val>
</column>
<column>
<name>descr</name>
<scalar>string</scalar>
<val>descr</val>
</column>
</columns>
</row>
</rows>
</template>
return tde:template-insert("/top-songs.xml",$top-songs)
答案 0 :(得分:0)
模板中的context
节点应该是ML必须在您插入的文档中查找的节点。
您的上下文文档具有<top-song>
作为根节点,并且没有名称为<songs>
的节点。
因此,您的上下文节点应该是:<context>/top-song</context>
或您的上下文文档应该有<songs>
作为节点(在其下面有列和行元素)。
请参阅您的架构名称是唯一的且不包含范围视图。