更改marklogic中的元数据模型

时间:2015-02-05 06:55:18

标签: metadata marklogic

Marklogic中的元数据类别(我在文档中找到的):
收藏,权限,属性,质量和元数据

有没有办法让我可以在元数据中创建其他类别?

示例:
ML文件的元数据:

<?xml version="1.0" encoding="UTF-8"?>
<rapi:metadata uri="/abc/123.xml" xsi:schemaLocation="http://marklogic.com/rest-api/database dbmeta.xsd" 
    xmlns:rapi="http://marklogic.com/rest-api" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <rapi:collections>
        <rapi:collection>numerics</rapi:collection>
    </rapi:collections>
    <rapi:permissions/>
    <prop:properties 
        xmlns:prop="http://marklogic.com/xdmp/property">
        <property1>1</property1>
        <property2>2</property2>
    </prop:properties>
    <rapi:quality>0</rapi:quality>
</rapi:metadata>

有没有办法在Marklogic中更改我的元数据,以便它就像:

<?xml version="1.0" encoding="UTF-8"?>
<rapi:metadata uri="/abc/123.xml" xsi:schemaLocation="http://marklogic.com/rest-api/database dbmeta.xsd" 
    xmlns:rapi="http://marklogic.com/rest-api" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <itemId>1</itemId>
    <itemName>abc</itemName>

    <rapi:collections>
        <rapi:collection>numerics</rapi:collection>
    </rapi:collections>
    <rapi:permissions/>
    <prop:properties 
        xmlns:prop="http://marklogic.com/xdmp/property">
        <property1>1</property1>
        <property2>2</property2>
    </prop:properties>
    <rapi:quality>0</rapi:quality>
</rapi:metadata>

在marklogic元数据中添加其他字段?

2 个答案:

答案 0 :(得分:3)

不,你不能这样添加新的类别。这也需要改变MLCP。

<prop:properties>的内容是免费格式,您可以根据需要添加任意数量的元素,并且它们不需要简单。您可以在其中添加整个XML文档。

HTH!

答案 1 :(得分:1)

关于Geert上面的好建议的脚注:对于JSON或XML内容,最佳做法是将元数据和内容放在文档本身中。这种方法为您提供了最大的搜索灵活性,并且表现最佳。

模拟文档以存储元数据和内容的一种方法是遵循与HTML相同的基本方法:

  • 根处的信封
  • 元数据的一个分区
  • 内容的一个bin

在HTML中,信封是&#34; html&#34;,元数据框是&#34; head&#34;,内容框是&#34; body。&#34;您可以关注HTML或使用适当的名称。

也就是说,对于二进制或文本文档,您只能将元数据放在属性中,如果您需要在包含二进制或文本以及JSON或XML的文档格式中一致地维护元数据,那么最佳做法是使用属性。