我们有一个工具需要读取特定结构的YAML文件。当我们获取到YAML文件后,我们需要知道以下信息:
映射是一个键值对象,seq 可以有多个构建版本,类型为 any 的键值对。我们使用这个开源工具来解析 yaml:https://github.com/go-yaml/yaml。一个好的想法是将其转换为 json,然后通过验证库进行验证。在我的环境中,任何示例都将非常有帮助:https://github.com/xeipuuv/gojsonschema。但我不确定如何处理。
例如,这是我们需要处理的验证示例。
- 检查YAML文件是否符合某些指南 - 语义检查
- 如果有语法错误,需要知道错误位置
_version: {required: true}
id: {required: true, pattern: '/^[A-Za_\-\.]+$/'}
release-version: {required: true}
type:
builds:
type:seq
sequence:
-type:map
mapping:
name:{required: true, unique: true, pattern: '/^[A-Za-z0-3_\-\.]+$/'}
params:
type: map
mapping: { =: {type: any} }
映射是一个键值对象,seq 可以有多个构建版本,类型为 any 的键值对。我们使用这个开源工具来解析 yaml:https://github.com/go-yaml/yaml。一个好的想法是将其转换为 json,然后通过验证库进行验证。在我的环境中,任何示例都将非常有帮助:https://github.com/xeipuuv/gojsonschema。但我不确定如何处理。
Type map
Type seq
docker
标签? - BMitch