引用来自外部远程 JSON 架构的子项

Reference subkeys from external, remote JSON schema

我已经开始在我的一个项目中使用 JSON 架构。我仍然无法理解 $id$ref 如何协同工作,以及 tools$idbase_uri 等在哪里。com一起。这是一个场景:

我在文件 schema.json 中定义了我的模式。 此文件托管在我的网站 https://example.com/schema.json 上。 架构的 $idhttps://example.com/schema/$schema"http://json-schema.org/draft-07/schema".

我可以在 https://www.jsonschemavalidator.net/ 的验证器中使用这个模式,方法是给它一个引用 URL 的模式,并且验证工作(无效实例失败等)。

{
  "$ref": "https://example.com/schema.json"
}

我可以使用 "$ref": "https://example.com/schema.json#/properties/subkey" 解析子键。 "$ref": "https://example.com/schema#/properties/subkey" 没有解析,可能是因为在架构存储中找不到它?

所以现在,如果我想让它工作 - "$ref": "https://example.com/schema#/properties/subkey",我是否必须将文件重命名为简单的 schema?或者还有其他方法吗?

"schema" 和 "schema.json" 指向不同的文件,因此您需要重命名文件以匹配 $ref 中的 uri,或者更改 $ref 以引用正确的文件名。

本指南可能会有所帮助:Structuring a complex schema