Я очень сомневаюсь, что есть «приемлемый» ответ на этот вопрос.
Ничто не мешает вам использовать атрибут $ schema как часть вашего личного соглашения.
Есть некоторый реальный прецедент этому. Некоторые шаблоны быстрого запуска Azure используют схему $ для ссылки на схему JSON, которой они придерживаются, например: https://github.com/Azure/azure-quickstart-templates/blob/master/101-azure-bastion/azuredeploy.parameters.json (благодаря Mark T за его комментарий)
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"bastion-host-name": {
"value": "GEN-UNIQUE-8"
},
"location": {
"value": "southcentralus"
}
}
}
Однако сиз-за отсутствия официального руководства нам, возможно, следует просто признать, что концепция схема-экземпляр (взятая из XSD) не очень подходит для облегченного языка определений, такого как jsonschema.
Мне было бы интересно понять ваш вариант использования, где обязательным является явное связывание экземпляров JSON с их схемами.