JSONSchema не ловит неправильные дополнительные поля?
Используя эту схему, этот файл не перехватывает name_en
а также legalName_en
поля под parties/identifier
, даже если additionalProperties: false
указан на identifier
имущество.
Это с:
jsonschema schema.json -i file.json
на OSX, используя python-jsonschema.
Я что-то не так делаю, или это ошибка?
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 в определении препятствует работе проверки дополнительных свойств, это все, что я могу предположить.
Кроме того, это не просто существование patternProperties, которое действует как переключатель. Я добавил свойство patternProperties в определение packageInfo, чтобы проверить, не мешает ли он валидатору проверить 4 лишних свойства, но он все еще работает. Так что должно быть что-то еще. Очень таинственный