Я использую jsonschema для проверки типов записей, которые описывают, как отображаются записи (заданных типов). эти записи могут иметь страницы и разделяться на аспекты.
Обе страницы и аспекты могут быть обусловлены, и я хочу повторно использовать базовую схему, даже если условие для аспектов может иметь 2 других свойства, которые не соответствуют условиям страницыhave.
Это общая проблема, с которой я всегда сталкиваюсь. Я хочу расширить схему, но в любом случае иметь возможность установить для «AdditionalProperties» значение false.
Я также не вижу возможности исправить ее с помощью anyOf, allOf без дубликатов.
Или мне лучше отпустить additionalProperties
или принять дубликаты?
{
"$comment": "page condition",
"type": "object",
"properties": {
"condition": {
"type": "object",
"properties": {
"aspect": {
"type": "string"
},
"value": {
"type": "string"
},
"compare": {
"type": "string"
}
},
"required": [
"aspect",
"value"
],
"additionalProperties": false
}
}
}
...
{
"$comment": "aspect condition",
"type": "object",
"properties": {
"condition": {
"type": "object",
"properties": {
"aspect": {
"type": "string"
},
"value": {
"type": "string"
},
"compare": {
"type": "string"
},
"disabled_text": {
"type": "string"
},
"default_pass": {
"type": "boolean"
}
},
"required": [
"aspect",
"value"
],
"additionalProperties": false
}
}
}