如何在XML文档上创建MarkLogic TDE

如何在XML文档上创建MarkLogic TDE,marklogic,Marklogic,我想学习如何创建Marklogic TDE。我有Marklogic 9.0-1.1,并在下面的top songs数据库中插入了一个文档 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.wiki

我想学习如何创建Marklogic TDE。我有Marklogic 9.0-1.1,并在下面的top songs数据库中插入了一个文档

 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&amp;B</genre>
    </genres>

   <label>Giant Records</label>

   <descr>
       <p>&ldquo;I Wanna Love You&rdquo; is the title of a top-ten R&amp;B 
        single by Jade. It was the groups debut single, it was featured on 
        the Class Act soundtrack.&rdquo;</p> 
    </descr>
</top-song>
)
xdmp:documentinsert(“/songs/Akon-featured-Snoop-Dogg-I-want-Love-
您可以使用“.xml”,
我想爱你
阿肯特色
嗅探犬
2006-12-02
2006-12-09
玉石俱备
CD单曲
单盒式磁带
7“乙烯基
R&B
巨唱片
&“我想爱你”是十大R&;B的标题
杰德的单曲。这是乐队的首张单曲,它在
课堂表演配乐。

)
现在我在top songs数据库中创建了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)
xquery版本“1.0-ml”;
导入模块命名空间tde=”http://marklogic.com/xdmp/tde"
位于“/MarkLogic/tde.xqy”;
让我们来看看顶级歌曲:=
/歌曲
热门歌曲
歌曲
标题
一串
标题
艺术家
一串
艺术家
周
一串
周
周
一串
周
专辑
一串
专辑
格式
一串
格式
体裁
一串
体裁
标签
一串
标签
描述
一串
描述
返回tde:template insert(“/top songs.xml”,$top songs)
  • 模板中的
    上下文
    节点应该是ML必须在插入的文档中查找的节点。 您的上下文文档将
    作为根节点,没有名为
    的节点。 因此,您的上下文节点应该是:
    /top song
    ,或者您的上下文文档应该有
    作为节点(在该节点下有列和行元素)

  • 请确保您的架构名称是唯一的,并且不包含范围视图


  • 错误消息似乎表明模板中有两个tde:context元素。是否确实共享了完整的模板?与错误消息无关(?),整个“scalar”应为“scalar type”。