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 лишних свойства, но он все еще работает. Так что должно быть что-то еще. Очень таинственный

Другие вопросы по тегам