Я спрашиваю себя, могу ли я каскадировать несколько 'oneOf' или, возможно, есть лучший способ сделать мои дела действительными.
Я пытаюсь подтвердить следующее:
Использовать определение ObjectA или ObjectB как отдельных объектов или их массив
Дело 1:
Использование только определения ObjectA
{
"X": "test"
}
Случай 2:
Использование только определения ObjectB
{
"Y": "test"
}
Дело 3:
Использование определения ObjectA или ObjectB в массиве
[
{
"X": "test"
},
{
"Y": "test"
}
]
Дело 4:
Использование определения ObjectA дважды в массиве
[
{
"X": "test"
},
{
"X": "test"
}
]
Схема:
Я пытался использовать эту схему, IntelliSense MonacoEditor работает хорошо, но я все еще получаю сообщение об ошибке / предупреждение: «Соответствует нескольким схемам, когда требуется проверить только одну».
{
"definitions": {
"objectA": {
"type": "object",
"properties": {
"X": {
type: "string"
}
}
},
"objectB": {
"type": "object",
"properties": {
"Y": {
type: "string"
}
}
}
},
"oneOf":
[
{
"oneOf":
[
{
"$ref": "#definitions/objectA"
},
{
"$ref": "#definitions/objectB"
}
]
},
{
"type": "array",
"items":
{
"oneOf":
[
{
"$ref": "#definitions/objectA"
},
{
"$ref": "#definitions/objectB"
}
]
}
}
]
}
Ошибка / Предупреждение:
"Соответствует нескольким схемам, когда должна проверяться только одна."