Значение oneOf
должно быть массивом, где каждый элемент - это JSON Схема (подсхема).
Вам необходимо вложить две схемы в подсхемы oneOf
...
Живая демонстрация: https://jsonschema.dev/s/ssosr
{
"definitions": {
"kosfn": true
},
"type": "object",
"oneOf": [
{
"properties": {
"name": {
"type": "string"
},
"function": {
"type": "null"
},
"address": {
"type": "string"
},
"kosfn": {
"$ref": "#/definitions/kosfn"
}
}
},
{
"properties": {
"name": {
"type": "string"
},
"function": {
"type": "string"
},
"address": {
"type": "string"
},
"kosfn": {
"type": "null"
}
}
}
]
}
Вы можете (и должны) извлекать определения, одинаковые для каждой подсхемы, в родительскую схему. Я оставил две подсхемы в том виде, в каком вы их предоставили, чтобы прояснить, что было сделано.