'')时不返回任何文档,我想知道这是否是一个错误。--- false,从而引发了空字符串是否实际上是输入的问题。那么,一般来说,空字符串是有效的 YAML 文档吗?
YAML 文件被解析器解析为YAML 流。一个 YAML 流可以包含多个文档。规范中对该流的定义如下:
\n\nl-yaml-stream ::= l-document-prefix* l-any-document?\n ( l-document-suffix+ l-document-prefix* l-any-document?\n | l-document-prefix* l-explicit-document? )* \nRun Code Online (Sandbox Code Playgroud)\n\n正如您所看到的,由于 和l-document-prefix都是l-any-document可选的,所以空的 YAML 流是有效的 \xe2\x80\x93 但不包含 document。
如果你问是否l-any-document可以产生空字符串,答案是否定的。如果没有起始---,则l-bare-document必须包含至少一个节点。一个普通标量由 生成ns-plain(n,c),如果您深入其中,您会注意到它必须至少包含一个由 生成的字符ns-plain-first(c)。
如果您想要一个包含一个文档的 YAML 流,该文档包含一个空标量作为根节点,您有以下选项:
\n\n""或\'\')\xe2\x80\x93,因为未带引号的空标量应根据!!null规范中定义的架构解析。---)。由于文档显式地以指令结束标记开始,因此允许没有内容,这在顶层被解释为空标量。--- !!str可确保空标量作为字符串加载。编辑:YAMLlint 站点上的注释:不要使用它。它不会告诉您它正在使用哪个实现、它期望哪个 YAML 版本等。它的输出表明它将空输入解析为具有空标量的单个文档,并将该标量解析为布尔值false。虽然这是规范允许的(因为规范不会在实现上强制任何特定模式),但它不符合任何官方方案。
| 归档时间: |
|
| 查看次数: |
4575 次 |
| 最近记录: |