JSONSchema没有捕获不正确的其他字段?

时间:2017-08-07 18:17:25

标签: json jsonschema python-jsonschema

使用this schemathis file无法捕获name_en下的legalName_enparties/identifier字段,即使在additionalProperties: false上指定了identifier {1}}属性。

这是:

 jsonschema schema.json -i file.json

在OSX上,使用python-jsonschema

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

1 个答案:

答案 0 :(得分: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个多余的属性,但它仍然有效。所以它必须是别的东西。非常神秘。