1

使用此架构此文件不会捕获 下的name_enlegalName_en字段parties/identifier,即使在属性additionalProperties: false上已指定。identifier

这是与:

 jsonschema schema.json -i file.json

在 OSX 上,使用python-jsonschema

我做错了什么,还是这是一个错误?

4

1 回答 1

1

我不认为这是一个错误 - 至少如果它也是http://www.jsonschemavalidator.net/使用的处理器中的一个错误。

奇怪的是,还有其他一些实例additionalProperties:false已经指定了验证器兑现它的位置。packageInfo 部分中有四个属性被捕获,例如:

尚未定义属性“documentation_en”,并且架构不允许其他属性。架构路径: http ://standard.open-contracting.org/schema/1__1__0/release-schema.json#/properties/packageInfo/properties/publisher/additionalProperties

如果我从 packageInfo 部分中删除多余的属性,则整个有效负载都可以正常验证。

然后我从定义中删除了该patternProperties属性,Identity验证器开始工作。因此,关于定义中 patternProperties 的存在或值的某些事情正在阻止 additionalProperties 验证工作,这是我所能推测的。

此外,作为开关的不仅仅是 patternProperties 的存在。我在 packageInfo 定义中添加了一个 patternProperties 属性,以查看它是否阻止了验证器验证 4 个多余的属性,但它仍然有效。所以它必须是别的东西。很神秘。

于 2017-08-08T08:36:10.930 回答