我试图为项目定义编码标准,并且我想指定使用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文档,在上面的摘录中明确指出该文档不合适。
答案 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的任何引用,这可能就是我要采用的路径。