Самый простой способ объяснить, почему эталонное разрешение не работает так, как вы ожидаете, - это поговорить об измененном примере из самой базовой спецификации draft-07.
{
"definitions": {
"A": { },
"B": {
"definitions": {
"X": { },
"Y": { }
}
}
}
}
Документ root объект, имеющий свойство definitions
.
Для доступа к #/definitions/A
вы можете использовать ссылку #/definitions/A
.
Для доступа к #/definitions/B/definitions/X
вы можете использовать ссылку #/definitions/B/definitions/X
.
Ссылка в вашей схеме должна знать полный путь к подсхеме из документа root.
Я думаю, вы предположили, что URI относительно ближайшая подсхема или подсхема, в которой она используется, но это не так.
Ссылка: https://tools.ietf.org/html/draft-handrews-json-schema-01#section -8.2.4
Пример включает в себя более исчерпывающий множество примеров. Думайте о ссылках на URI так, как если бы вы привязывали тег к HTML. Когда доменная часть URI не включена, он «воображается» на своем месте для выполнения разрешения URI.
Дайте мне знать, если у вас есть какие-либо дополнительные вопросы.