Я пытаюсь написать схему для проверки файла yaml после анализа его в JSON.
Предположим, что это мой файл .yml с двумя свойствами верхнего уровня, автомобилями и гаражом.
машины необязательны, а гараж требуется.
Тем не менее, одно из подразделений гаража - автомобили. Если автомобили под гаражом определены, я хочу, чтобы схема обеспечивала определение автомобилей на верхнем уровне. В противном случае схема не будет действительной
cars:
- BMW
- Mercedes-Benz
- Audi
garage:
location: Miami
cars:
- BMW
- Audi
Моя схема:
{
properties: {
cars: {
type: 'array',
items: {
type: 'string'
}
},
garage: {
type: 'object',
properties: {
location: {
type: 'string'
},
cars: {
type: 'array'
}
},
required: ['garage']
}}
Так что я попытался сделать if-else на верхнем уровне
{
if: { properties: { garage: { cars: {type: 'array'}}}},
then: {required:['cars']},
properties: {
cars: {
type: 'array',
items: {
type: 'string'
}
},
garage: {
type: 'object',
properties: {
location: {
type: 'string'
},
cars: {
type: 'array'
}
},
required: ['garage']
}}
Но похоже, что я делаю это неправильно или это не служит этой цели.
Также выполнение anyOf на верхнем уровне для соответствия подсхемам не работает для меня ..
Любая помощь?