Json架构相对$ ref为当前" id"

时间:2015-12-29 10:53:34

标签: json jsonschema

我已经搜索了SO和JSON架构文档几天了,但是我很难让我的JSON Schema引用在同一目录中的多个文件中工作。

我的根模式将是oneOf对象:

{
  "$schema": "http://json-schema.org/draft-04/schema",
  "id": "http://localhost/json-editor/schema/function.json",
  "title": "Function",
  "oneOf": [
    {
      "$ref": "./fn_md5.json"
    },
    {
      "$ref": "fn_sha1.json"
    }
  ]
}

现在,在阅读了文档和大多数问题之后,我假设./fn_md5.jsonfn_sha1.json都将被解析为http://localhost/json-editor/schema/fn_....json(其中...代表他们的各自的名字,当然)。但是,解析器一直在查看http://localhost/json-editor/fn_....json,这似乎与应用程序的网址(JDorn's JSON Editor http://localhost/json-editor/运行相对)。

我是否理解架构并且id错误,或者编辑器的网址解析器是否会出错?

谢谢!

1 个答案:

答案 0 :(得分:0)

要找到相对引用,您需要使用$ id像这样:

{
  "$schema": "http://json-schema.org/draft-04/schema",
  "id": "http://localhost/json-editor/schema/function.json",
  "$id":"https://www.baseurl.com/"
  "title": "Function",
  "oneOf": [
    {
      "$id": "./fn_md5.json"
    },
    {
      "$id": "fn_sha1.json"
    }
  ]
}

来源:https://tools.ietf.org/html/draft-handrews-json-schema-01#section-8.2.4