Согласно спецификации (http://json-schema.org/schema) там не является взаимным исключением ключевых слов схемы. Например, я мог бы создать следующую схему:
{
"properties" : {
"foo" : {"type" : "string"}
}
"items" : [
{"type" : "integer" },
{"type" : "number" }
]
}
Будет ли эта схема проверяться как на объектах, так и на массивах? Если это так, это будет означать связь «ИЛИ» между ключевыми словами.
Но если мы рассмотрим следующую схему:
{
"anyOf" : [
{ "type" : "string",},
{ "type" : "integer"}
]
"not" : {
{ "type" : "string",
"maxLength" : 5
}
}
}
Наиболее практичный способ интерпретации - это отношение «И» между ключевыми словами anyOf, а не ключевыми словами.
В черновике версии 4 я не нашел никаких указаний на логическое взаимодействие ключевых слов. Может ли кто-нибудь указать мне на документацию / стандарт, которые ответят на этот вопрос?