Я пытаюсь проверить небольшой фрагмент JSON, например:
{
"success": true,
"message": "all's good!"
}
который работает со схемой:
{
"type": "object",
"properties": {
"success": { "type": "boolean" },
"message": { "type": "string" }
}
}
однако это терпит неудачу со схемой
{
"definitions": {
"response": {
"type": "object",
"properties": {
"success": { "type": "boolean" },
"message": { "type": "string" }
}
}
},
"type": { "$ref": "#/definitions/response" }
}
с ошибкой
java.lang.AssertionError: ресурс схемы:/json-schema/sample.schema.json был > недопустим: фатальный: недопустимая схема JSON, не может продолжаться Синтаксические ошибки:
[ {
"level" : "error",
"message" : "value has incorrect type (found object, expected one of [array, string])",
"domain" : "syntax",
"schema" : {
"loadingURI" : "resource:/json-schema/sample.schema.json#",
"pointer" : ""
},
"keyword" : "type",
"found" : "object",
"expected" : [ "array", "string" ]
} ]
уровень: "фатальный"
вам не разрешено использовать ссылку для типа вне раздела определений? Моя мотивация заключается в том, что это ответ на единичный случай, но бывают случаи, когда эта структура вложена и в другие.
Если это важно, я использую json-schema-validator версии 2.2.6.
PS - это упрощенный пример, фактическая схема более сложна, чтобы обосновать, почему желательно повторное использование, а не копирование и вставка.