5 validation schema yaml go dockerfile

我们有工具需要读取具有特定结构的YAML文件。当我们获得YAML文件时,我们需要知道

  1. 根据一些准则检查YAML文件是否有效-语义检查
  2. 语法错误在哪里(如果有)

例如,这是我们需要解决的验证示例

 _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可以具有多个构建
类型,包括is和键值

我们使用此开放源代码解析yaml https://github.com/go-yaml/yaml

一个想法(很好)是像下面这样转换为json:将文件转换为json并验证它具有支持它的库,在我的上下文中的任何示例都将非常有用https://github.com/ xeipuuv / gojsonschema

但不确定我该如何处理

Type map
Type seq