Как обратиться к корневой схеме другого файла schema.json? - PullRequest
0 голосов
/ 01 мая 2019

Я использую этот валидатор для проверки правильности ввода json. В настоящее время я пытаюсь создать следующую схему JSON, которая будет описывать отношения между отцом и сыном. Итак, у меня есть 2 файла, хранящиеся в одной папке (Parent.json, Son.json), и их содержимое:

Parent.json

{
  "$id": "D:\\Java_projects\\JsonValidationTraining\\src\\main\\res\\json\\Parent.json",
  "type": "object",
  "title": "Parent",
  "properties": {
    "name" : {
      "$ref": "#/definitions/name"
    },
    "son" : {"$ref": "Son.json"}
  },
  "definitions": {
    "name" : {
      "type": "string",
      "minLength": 1
    }
  },
  "required": ["name"]
}

Son.json

{
  "$id": "D:\\Java_projects\\JsonValidationTraining\\src\\main\\res\\json\\Son.json",
  "type": "object",
  "title": "Son",
  "properties": {
    "name" : {
      "$ref": "#/definitions/name"
    },
    "age" : {"$ref": "#/definitions/age"}
  },
  "definitions": {
    "name" : {
      "type": "string",
      "minLength": 1
    },
    "age" : {
      "type": "integer",
      "minimum" : 0
    }
  }
}

Проблема в для ссылки на корневую схему Son.json из Parent.json. Когда я пытаюсь подтвердить ввод, используя примеры выше, я получаю исключение

  • java.io.UncheckedIOException: java.net.MalformedURLException: no protocol: Son.json

. В то же время мне удается передать определения внутри схемы Son.json, например, Son.json#/definitions/name Я прочитал спецификацию валидатора , , эту , , эту и эту статьи, но все же я не могу правильно ссылаться на любой другой *.json root схемы. Не могли бы вы посоветовать, как правильно создать ссылку? Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...