1

我将 DHF 与实体服务一起使用。我想知道一个信封是否包含多个实体实例,我可以将信封设计如下

<envelope xmlns="http://marklogic.com/entity-services">
  <headers>
  </headers>
  <triples>
  </triples>
  <instance>
        <info>
          <title>target</title>
          <version>1.0.0</version>
        </info>
        <target:target xmlns:target="http://schemas.abbvienet.com/entity/target">
            ....
        </target>
  </instance>
  <instance>
        <info>
          <title>core</title>
          <version>1.0.0</version>
        </info>
        <core:core xmlns:core="http://schemas.abbvienet.com/entity/core">
            ....
        </core>
  </instance>
  <attachments>
  </attachments>
</envelope>

注意 2instance个实例的 2 个标签。

这是有效的吗,因为我找不到信封设计的推荐,比如xsd?这是信封中实例的一个好的设计还是有更好的方法?或者我可以有这样的

<envelope xmlns="http://marklogic.com/entity-services">
  <headers>
  </headers>
  <triples>
  </triples>
  <instance>
    <info>
      <title>target</title>
      <version>1.0.0</version>
    </info>
    <target:target xmlns:target="http://schemas.abbvienet.com/entity/target">
                    ....
    </target>
    <core:core xmlns:core="http://schemas.abbvienet.com/entity/core">
                    ....
    </core>
  </instance>
  <attachments>
  </attachments>
</envelope>

我想使用esapi 来规范化实体

4

2 回答 2

1

从另一个角度来看,我会说信封设计中没有任何东西可以阻止您的方法,尤其是第一个方法。为了确保实体服务生成专注于es:instance元素范围的代码,我们付出了一些努力。

我预计人们会设计像你这样的信封。但是,我不明白是什么激发了它。请分享您的进一步经验。

于 2018-02-24T02:11:27.673 回答
1

目前,DHF(和实体服务)支持遵循信封模式的每个文档一个实例的范例。

如果您需要为一个实体(或多个实体)的多个实例提供相同的附件/三元组/标题支持 - 只需将它们拆分并附加它们。

此外,您真的不应该修改生成的信封的实例部分:

<es:envelope xmlns:es="http://marklogic.com/entity-services">
  <es:instance>
    <es:info>
      <es:title>Person</es:title>
      <es:version>1.0.0</es:version>
    </es:info>
    <Person>
      <id>1234</id>
      <firstName>George</firstName>
      <lastName>Washington</lastName>
      <fullName>George Washington</fullName>
    </Person>
  </es:instance>
  <es:attachments>
    <person>
      <pid>1234</pid>
      <given>George</given>
      <family>Washington</family>
    </person>
  </es:attachments>
</es:envelope>

但是您可以根据需要在实例之外的其他位置添加信息。可以在此处找到有关与您的问题相关的实体服务的更多信息:https ://docs.marklogic.com/guide/entity-services/instances#id_67461

目前,我们正在积极努力关闭 ES 和 DataHub 之间的一些差距,这就是为什么我鼓励您不要修改默认实例设置并为每个信封文档保留一个实例。

于 2018-02-23T17:36:42.833 回答