每个表示节点包括两个主要特征,称为锚和标记。可以使用节点内容指定节点属性,从字符流中省略。
节点表示的基本示例如下 -
%YAML 1.1
---
!!map {
? &A1 !!str "foo"
: !!str "bar",
? !!str &A2 "baz"
: *a1
}
节点锚点
anchor
属性表示将来参考的节点。 节点中YAML表示的字符流用&
符号表示。 YAML处理器不需要保留锚名称以及其中包含的表示细节。以下代码解释了这一点 -
%YAML 1.1
---
!!map {
? !!str "First occurence"
: &A !!str "Value",
? !!str "Second occurence"
: *A
}
锚节点生成的YAML输出如下所示 -
---
!!map {
? !!str "First occurence"
: !!str "Value",
? !!str "Second occurence"
: !!str "Value",
}
节点标签
tag
属性表示完全定义节点的本机数据结构的类型。 标签用(!
)指示符表示。 标签被视为表示图的固有部分。 以下示例详细说明了节点标签 -
%YAML 1.1
---
!!map {
? !<tag:yaml.org,2002:str> "foo"
: !<!bar> "baz"
}
节点内容
节点内容可以以流内容或块格式表示。 块内容延伸到行尾并使用缩进来表示结构。 每种集合类型可以以特定的单流集合样式表示,或者可以视为单个块。 以下代码详细解释了这一点 -
%YAML 1.1
---
!!map {
? !!str "foo"
: !!str "bar baz"
}
%YAML 1.1
---
!!str "foo bar"
%YAML 1.1
---
!!str "foo bar"
%YAML 1.1
---
!!str "foo bar\n"