JSON模式是否具有用于将实例文档与其所遵循的模式相关联的任何标准或约定?

时间:2018-10-08 00:25:57

标签: json schema jsonschema

我是Json Schema的新手,但过去在xsd(xml模式)上做过很多工作。
使用xml模式,可以在一个人的xml文档中标记一个元素 带有“ schemaLocation”属性。验证xml可以使用此属性 解析器,以验证元素的内容和结构是否与其元素关联 模式。在xml中,您可以执行以下操作:

<animal 
    xsi:schemaLocation="
        http://www.zippy.com 
        http://foo.bar.com/animal.xsd">
    type="dog"
    name="rover"/>

我想知道:在JSON模式中有一些标准的方法吗?
我在规范中找不到任何东西,或者 我看过的教程。
我希望可能是这样的:

{
    "schema": "http://foo.bar.com/animal.schema.json",

    "animal": {
        "type": "dog",
        "name": "rover",
    }
}

我的目标是让我的REST服务返回的每个JSON文档都包含一个注释 (属性“模式”或类似内容)指向架构 验证该特定实例...然后我可以选择在“验证”中启动该服务 模式”,它会自动验证出站响应以确保它们符合架构。

任何建议都非常感谢。

1 个答案:

答案 0 :(得分:2)

JSON文档没有标准的方法来识别描述它的模式。 JSON Schema的设计目标之一是,它不对要验证的JSON文档的结构施加任何影响。

但是,JSON Schema确实定义了一种在HTTP响应的上下文中将JSON Schema链接到文档的方法。您可以使用describedby链接标头来识别模式。

HTTP/1.1 200 OK
Content-Type: application/json
Link: <http://foo.bar.com/animal.schema.json>; rel="describedby"

{
    "animal": {
        "type": "dog",
        "name": "rover"
    }
}

http://json-schema.org/latest/json-schema-core.html#rfc.section.10.1