用于验证空条目的架构

问题描述

我是 yml 的新手。

我的 yml 数据文件中的“reference:”标签下可能包含也可能不包含名称。基本上,它可能只是空的,因此为了成功验证,我将其设为 'required: no'

type: map
mapping:
  file:
    type: seq
    sequence:
      - type: map
        mapping:
          project:
            type: str
            required: yes
          sub:
            type: str
            required: yes
          source:
            type: str
            required: yes
          reference:
            type: seq
            required: no
            sequence:
              - type: map
                mapping:
                  name:
                    type: str
                    required: no
                    unique: yes

当我尝试使用 Kwalify.pm 验证 yml 时,它失败并出现问题:-

 warning: Use of uninitialized value $data in concatenation (.) or string at /home/nv/utils/MFT/perl/lib/Kwalify-1.22/lib/Kwalify.pm

在这方面需要 yml 专家的帮助。谢谢!

解决方法

sequence: 单独站立而不跟随更多缩进的内容,产生一个键值对,其中 sequence 作为键,一个空标量作为值。空标量将被处理为空字符串或 null,这两者都不是您的架构所要求的序列。

要获得空映射,请编写 sequence: []