如何指定/引用JSON Schema的版本?

时间:2017-03-14 09:35:49

标签: json jsonschema

我试图为项目定义编码标准,并且我想指定使用JSON Schema版本4.

但是,从the offical JSON Schema website开始,如果您按照规范的链接,转到the github page,然后转到the IETF的第4版草稿。本文档明确指出它是一份Internet-Draft文档,并说:

  

互联网草案是有效期最长为六个月的草案文件      并可能被任何其他文件更新,替换或废弃      时间。使用Internet草案作为参考是不合适的      材料或引用它们而不是"正在进行中。"

由于似乎不是除了Internet-Draft状态之外的任何JSON Schema版本,我应该如何引用它?

编辑:这是在一个书面的项目文档中,而不是在JSON文件本身。我目前有这样的文字:

  

Python标准和风格
   - 必须写入所有Python源文件   Python 3.x,专门针对Python 3.5.1作为默认Python   3安装Ubuntu 16.04 LTS    - 所有Python源文件必须   符合PEP 8标准[脚注:   https://www.python.org/dev/peps/pep-0008/]。
   - 所有Python源文件   必须通过flake8 [脚注:   https://pypi.python.org/pypi/flake8/3.2.1]每次发货前都要检查。   检查器必须设置为超迂腐,它必须   如果检查员需要更改任何内容,则认为单元测试失败   在已检查的源文件中。
   - 所有Python源文件应该使用   符合PEP 257标准的Docstrings [脚注:   https://www.python.org/dev/peps/pep-0257/]。
   JSON标准和风格
   - 所有JSON源文件必须以JSON Schema版本4编写   [脚注: https://tools.ietf.org/html/draft-zyp-json-schema-04 ]    - 全部   JSON源文件必须符合Google JSON样式指南0.9   [脚注:https://google.github.io/styleguide/jsoncstyleguide.xml]
   - 所有JSON源文件必须传递jsonschema [脚注:   https://python-jsonschema.readthedocs.io/en]在每个之前检查   交货。检查器必须设置为超迂腐,它必须   如果检查员需要更改,则视为单元测试失败   已检查的源文件中的任何内容    TOML标准和风格
   - 所有TOML源文件必须遵守TOML标准的v0.4.0 [脚注:   https://github.com/toml-lang/toml]。
   - 所有TOML源文件必须是可加载的   使用pytoml解析器v0.1.11 [脚注:   https://github.com/bryant/pytoml],没有错误。
   - 所有TOML源文件应该是   在左边缘对齐 - 即不要缩进子部分。

对我而言,JSON Schema引用的斜体脚注将被视为引用Internet-Draft文档,在上面的摘录中明确指出该文档不合适。

1 个答案:

答案 0 :(得分:1)

  

因为似乎没有任何版本的JSON Schema   除了Internet-Draft状态以外的任何内容,我应该如何参考   此?

你这样做:

{
    "$schema":"http://json-schema.org/draft-04/schema#",
    ... // the rest of your schema
}

仅仅因为草案格式的标准不会使它成为标准。

现在,您还可以选择在没有$ schema声明的情况下创建模式,它仍然完全有效。如果您这样做并使用正确的JSON模式草案v4定义,那么所有支持草案v4的解析器都可以使用它。但是,惯例是使用$ schema声明。

  
      
  • 所有JSON源文件必须以JSON Schema版本4
  • 编写   

您不希望所有JSON文件都是基于架构的 - 这是荒谬的。但是,除了引用标准的版本之外,您需要的任何模式文件都无法从文档角度进行选择。而那个版本应该是草案4,即使它是草案。

另一种方法是完全删除对JSON Schema的任何引用,这可能就是我要采用的路径。