对复杂模式使用json-validate

时间:2019-01-03 20:27:05

标签: marklogic jsonschema hl7-fhir

尝试使用MarkLogic的shopt -s globstar for z in **/*.zip; do unzip -d output-dir "$z"; done 根据已加载到Schemas数据库中的已发布的FHIR JSON Schema来验证FHIR格式的资源实例。当存在无效元素时,我在查询控制台中的输出始终是相同的:

  

[1.0-ml] XDMP-JINVNODE:oneOf fn:doc(“ / documents / examples / ml_loaded_member_1.json”)/ object-node()“ fhir.schema.json” {...}

其中xdmp:json-validate似乎是巨大模式的完整转储。

如何获得有意义的消息,指示确切的模式验证错误?

更新:在对使用json模式的常规验证进行了更多研究之后,我假设此问题与FHIR模式中“ discriminator / propertyName”关键字的使用有关。该关键字值(“ resourceType”)通知验证者如何确定要针对哪个定义(在我的示例中为“ Patient”)进行验证。我怀疑它没有得到很好的支持,因此错误报告列出了给定节点不符合的架构中的所有定义。 (或类似的东西)

1 个答案:

答案 0 :(得分:2)

似乎缺少一个错误定义,因此您没有收到格式化的错误消息。对于它的价值,“ oneOf”告诉您这是失败的约束,第二件事是失败的节点的路径。我们仍在努力改进一些错误报告:通过支持提供的错误报告会很有帮助。