JSON模式验证错误在MarkLogiC语言 XDMP-VALIDATEERRORS



使用MarkLogic版本10.0-4.2,我试图验证一个简单的JSON记录对一个简单的JSON模式。

JSON模式:

{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"SourceSystemName": {
"type": "string"
},
"BatchDtTm": {
"type": "string"
},
"SubjectArea": {
"type": "string"
},
"DocumentType": {
"type": "string"
},
"LastUpdatedDt": {
"type": "string"
},
"required": [
"SourceSystemName",
"BatchDtTm",
"SubjectArea",
"DocumentType",
"LastUpdatedDt",
]
}
}

查询控制台正在运行的代码:

let jsonRecord = {"SourceSystemName":"ODH","BatchDtTm":"09/17/21 08:51:48:472723","SubjectArea":"Customer","DocumentType":"Preference","LastUpdatedDt":"09/17/21 03:59:53:629707"};
xdmp.jsonValidate(jsonRecord, cts.doc('/schemas/NewSchema.json').toString());

当我运行上面的代码时,我得到错误XDMP-JSVALIDATEBADSCHEMA:无效模式";">

我不太确定我的模式中什么是"无效的"。有人能提供一些关于MarkLogic认为什么是"无效"的见解吗?

$schema的第二个参数应该是模式文档的URI。

$schema用于验证的JSON模式的URI。

您正在尝试传入字符串化的内容。

试题:

xdmp.jsonValidate(jsonRecord, '/schemas/NewSchema.json');

并确保将模式文档插入Schemas数据库,而不是内容数据库。

最新更新