YAML 架构验证?
YAML 是否有模式验证语言?我用谷歌搜索但找不到任何有用的东西。
像 XSD 格式这样的东西,使用语言本身来描述模式,对我来说是最好的选择。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
YAML 是否有模式验证语言?我用谷歌搜索但找不到任何有用的东西。
像 XSD 格式这样的东西,使用语言本身来描述模式,对我来说是最好的选择。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(6)
JSON Schema 可与大多数 YAML 文档一起使用,从而产生比 Rx 或 夸化。 JSON Schema 是我能够找到的三个中唯一的编辑器支持< /a>.
有关使用 YAML 和 JSON Schema 的更多信息(包括工具和编辑器支持)可在此页面上跟踪。在撰写本文时,Visual Studio Code 中提供了编辑器支持,并且通过
npm
提供了基于命令行的验证工具。全面披露:我创建了上面链接的网站,试图使 JSON 模式在 YAML 中的应用更容易被发现。我还为 VS Code 编写了一个编辑器扩展,该扩展已被上面链接的 RedHat 扩展所取代。
JSON Schema can be used with most YAML documents resulting in a more portable and better documented solution than Rx or Kwalify. JSON Schema is the only of the three for which I have been able to find editor support.
More information on using YAML and JSON Schema including tools and editor support is tracked on this page. At the time of writing, there is editor support in Visual Studio Code and a command-line based validation tool available via
npm
.Full Disclosure: I authored the web site linked above to try to make the application of JSON Schema to YAML more discoverable. I also wrote an editor extension for VS Code that has since been superseded by the RedHat extension linked above.
尝试 Kwalify(仅限 Ruby 和 Java),或 Rx(多种语言)
Try Kwalify (Ruby and Java only), or Rx (many languages)
我想知道为此重用 JSON 模式是否有意义。 YAML 可以轻松转换为 JSON,而不会丢失任何信息(?),因此理论上 YAML 可以通过相同的工具链进行验证,从而允许开源社区专注于一个好的模式工具链。架构本身也可以用 YAML 编写并转换为 JSON。
I wonder if it would make sense to reuse JSON schema for this. YAML can be easily converted to JSON without loosing any information (?), so in theory YAML could be validated by the same tool chain, allowing open source community to concentrate on one good schema tool chain. The schema itself could also be written in YAML and converted to JSON.
好主意。谷歌搜索这个,因为我正在寻找相同的东西。
可以按照定义的方式将 YAML 转换为 XML(类似于 JSON <-> XML)并使用标准 XML 验证器进行验证。
根据您的平台,有用于该转换的工具或片段: JavaScript ( NPM)、Ruby、Java (Jackson), Java (TestNG) (您需要查看其所需参数的源代码)。
如果使用 API 完成,错误位置甚至可以映射回原始 YAML 文件。
Good idea. Googled this up because I was looking for the same.
It's possible to convert YAML to XML in a defined manner (similarly to JSON <-> XML) and validate with a standard XML validator.
Depending on your platform, there are tools or snippets for that conversion: JavaScript (NPM), Ruby, Java (Jackson), Java (TestNG) (you'll need to see the source for what parameters it wants).
If done using an API, the error positions can even be mapped back to the original YAML file.
您可以使用此 python ysd 项目来验证您的 yaml 文件。 https://github.com/yonahd/ysd
使用超级简单
规则文件示例:
yaml 文件示例(helm 值文件):
You can use this python ysd project to validate your yaml files. https://github.com/yonahd/ysd
Super simple to use
Example rule file:
Example yaml file (helm values file):
如果您的项目是 C++ 语言,您还可以使用 yaml-schema- cpp 库。它允许使用 C++ 代码中的架构文件(扩展名为
.schema
的 YAML 文件)来验证(并完成).yaml
输入文件。If your project is in C++, you can also use the yaml-schema-cpp library. It allows to validate (and complete) the
.yaml
input files using schema files (YAML files with extension.schema
) from your C++ code.