У меня есть подсхема, определенная во вложенных объектах, и я не могу заставить работать ограничение enum. См. Здесь ....
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"Top level": {
"type": "object",
"properties": {
"State": {
"type": "object",
"description": "stuff",
"properties": {
"Value": {
"type": "string",
"enum:": [
"A",
"B",
"C"
]
},
"readOnly": true
},
"required": [
"Value"
]
}
},
"required": [
"State"
]
}
},
"required": [
"Top level"
]
}
Это должно завершиться ошибкой, но вместо этого оно проверяется. Ниже ...
{
"Top level": {
"State": {
"Value": "not supposed to validate but does anyway"
}
}
}
Как ни странно, эта схема работает и блокирует нежелательные строки, но у нее нет более глубокой структуры подсхемы ...
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"Value": {
"type": "string",
"enum": [
"A",
"B",
"C"
]
}
}
}
, и это пример правильно отклоняется ...
{
"Value": "D"
}
Что я делаю не так? Это должно быть что-то фундаментальное для вложенных объектов. Я знаю, что если я изменяю имя значения, оно обнаруживает, что оно отсутствует, и отклоняет его во время проверки в первом примере ... почему оно не обнаруживает недопустимые строки перечисления?
Любая помощь будет оценена!