MarkLogic 中的自动模式验证

问题描述 投票:0回答:1

有没有办法根据模式数据库中存储的模式自动验证 XML 文档?自动,我的意思是,如果尝试使用

xdmp:document-insert()
函数插入无效的 XML 文档(根据架构),它不应该允许它并抛出相关错误。

我尝试过,但即使 XML 文档与架构不匹配,插入时也不会出现任何错误。如果我使用

xdmp:validate()
函数验证相同的 XML,它会按预期显示错误。

注意:我已将

targetNamespace
属性添加到架构文档中,并在 XML 文档中使用相同的命名空间。

marklogic marklogic-11
1个回答
1
投票

您无法通过函数上的选项强制 MarkLogic 在

xdmp:document-insert()
期间进行验证。

我看到你有两个选择:

  1. 创建自己的函数,首先验证然后调用文档插入
  2. 作为预提交触发器的一部分进行验证。如果您以在验证失败时引发错误的方式编写此代码,则事务将回滚(对于事务中的所有文档)。这是因为预提交触发器在与插入的文档相同的事务和上下文中运行。请参阅此处:预提交触发器
© www.soinside.com 2019 - 2024. All rights reserved.