У меня есть схема, к которой я хочу добавить ключевое слово "format", но только в определенных случаях.У меня есть jsconschema draft 07, и я пытаюсь использовать операторы if / else, однако, я думаю, что начинаю понимать, что вы не можете добавить форматирование при использовании ключевых слов if / else.
Вот моя схема:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://json-schema.org/draft-07/schema#",
"title": "Core schema meta-schema",
"type": "object",
"additionalProperties": false,
"properties": {
"theToggler": {
"type": "string"
},
"mysession": {
"$ref": "#/definitions/mysession"
}
},
"definitions": {
"mysession": {
"type": "object",
"properties": {
"theID": {
"type": "string",
"example": "test@email.om",
"description": "no format"
}
}
}
},
"if": {
"theToggler": "testme"
},
"then": {
"definitions": {
"mysession": {
"type": "object",
"properties": {
"theID": {
"type": "string",
"format": "email"
}
}
}
}
}
}
и вот мой ввод:
{
"theToggler": "testme",
"mysession": {
"theID": "test"
}
}
Вы могли бы подумать, что это бросает стрелку (если 'theToggler' = "testme "тогда theID должен иметь знак @, потому что я определяю формат" электронной почты ". Я делаю что-то не так, или это не поддерживается, или вы видите что-то еще, что я мог бы пропустить?
Спасибо!
PS Я тестирую его в https://www.jsonschemavalidator.net