触发器的范围配置是可选的

时间:2019-05-20 09:58:24

标签: marklogic marklogic-9

触发器配置中的目录作用域/文档作用域/集合作用域是可选的。我有一种情况,我需要考虑集合范围和目录范围的和组合来创建触发器配置。

我需要考虑特定集合下某个目录的文档。在触发器创建期间,我无法在触发器配置中定义这两个作用域。

当我尝试同时创建具有两个范围的触发器时,出现以下错误:

    {"<xs:complexType name="data-event" abstract="false" mixed="false">
        <xs:annotation>
          <xs:documentation>
            A description of triggering events.
          </xs:documentation>
          <xs:appinfo/>
        </xs:annotation>
        <xs:sequence minOccurs="1" maxOccurs="1">
          <xs:choice minOccurs="1" maxOccurs="1">
            <xs:element ref="document-scope" minOccurs="1" maxOccurs="1"/>
            <xs:element ref="collection-scope" minOccurs="1" maxOccurs="1"/>
            <xs:element ref="directory-scope" minOccurs="1" maxOccurs="1"/>
          </xs:choice>"}

我查看了manage-trigger-properties.xsd文件,该文件显示了架构定义如下:

{" {
  "name": "trg-create-policy-esb-harmonization",
  "description": "Harmonize the documents from PREP as soon as documents are created in edh-PREP",
  "event":
    {
      "data-event":
      {
        "directory-scope":
        {
          "uri":"<sample Uri>",
          "depth": "infinity"
        },
        "collection-scope":
          {
            "uri":"<sample Collection>"
          },
        "document-content":
          {
            "update-kind":"create"
          },
        "when": "post-commit"
      }
    },
  "module":"<sample Modules file>",
  "module-db": "%%MODULES_DATABASE%%",
  "module-root": "/",
  "enabled": true,
  "recursive":false,
  "task-priority": "normal"
}"}

我无法更改marklogic定义的架构

我们尝试创建的示例触发器配置:

\r\n

我们希望触发器将同时具有集合范围和目录范围。

原因:如果我只想考虑特定目录下的文档集,这些文档属于一个公共集合,那么我需要这种情况才能解决。

0 个答案:

没有答案