Вы уверены, что ваша вторая схема допустима?
Например, согласно спецификации JSON Schema Core , свойство $id
должно быть строкой
Если присутствует, значение для этого ключевого слова ДОЛЖНО быть строкой
Поэтому мне кажется неправильным следующее:
"slash/field": {
"$id": {
"$id": "test/b",
"$ref": "document.json"
}
}
Тогда я думаю, что ваш первый $ref
тоже не правильно:
"attributes": {
"$ref": "#/tilda~0field/slash~1field/$id"
}
Вероятно, следует читать:
"attributes": {
"$ref": "#/tilda~0field/slash~1field"
}
В том же документе спецификации также говорится о $id
и $ref
: Cf этот пример
Ключевое слово "$ id" определяет URI для схемы и базовый URI, для которого разрешены другие ссылки URI в схеме.
Или, как просто Ajv :
$ ref разрешается как ссылка на uri с использованием схемы $ id в качестве базового URI […].
Учитывая текущее состояние вашей схемы, я могу только приблизительный ответ на ваш вопрос, но ссылка будетвероятно, решите что-то вроде t/inner.json#document.json