YAML架构验证?

Kla*_*aim 58 validation schema xsd yaml

是否有YAML的架构验证语言?我用谷歌搜索,但找不到任何有用的东西.

XSD格式之类的东西,使用语言本身来描述模式,在我的情况下是最好的选择.

vos*_*d01 26

JSON Schema可以与大多数YAML文档一起使用,从而产生比RxKwalify更易于移植且记录更好的解决方案.JSON Schema是我能够找到编辑器支持的三个中唯一的.

有关使用YAML和JSON Schema的更多信息,包括工具和编辑器支持,请在此页面上进行跟踪.在撰写本文时,Visual Studio Code中提供了编辑器支持,并提供了基于命令行的验证工具npm.


完全披露:我创作了上面链接的网站,试图让YAML的JSON Schema应用程序更容易被发现.我还为VS Code编写了一个编辑器扩展,后来被上面链接的RedHat扩展所取代.

  • 只是给后面的读者留下一个注释,您可能想要使用 [`ajv`](https://www.npmjs.com/package/ajv) 来验证 JSON,并且 [`js-yaml`]( https://www.npmjs.com/package/js-yaml)将 yaml 转换为 JSON。截至 2020 年,这些是用于这些目的的最健康的节点库。 (2认同)
  • @McKrassy,是的,JSON Schema 确实可以与 YAML 文件一起使用,而无需将它们转换为 JSON。考虑这一点时,您应该将 JSON 和 YAML 文件视为树结构。JSON Schema 对这些树结构施加了约束,因此它们适用于 JSON 和 YAML 文件。以下是用于 YAML 的 JSON 架构示例:https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml (2认同)

lee*_*ggs 18

试试Kwalify(仅限Ruby和Java)或Rx(多种语言)

  • `Kwalify`是一个很好的选择,不幸的是它不再维护了.[pykwalify](https://github.com/Grokzen/pykwalify)看起来很有希望 (8认同)
  • 使用不是标准的东西似乎不是一个好的解决方案.我宁愿使用jsonschema然后使用它来验证YAML,因为YAML有一对一映射到JSON.Swagger做了类似的事情. (4认同)