YAML - 节点属性

每个表示节点包括两个主要特征,称为锚点标签。节点属性可以用节点内容指定,从字符流中省略。

节点表示的基本示例如下−

%YAML 1.1
---
!!map {
   ? &A1 !!str "foo"
   : !!str "bar",
   ? !!str &A2 "baz"
   : *a1
}

节点锚点

锚点属性表示一个节点,以供将来引用。节点中 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",
}

节点标签

标签属性表示完全定义节点的本机数据结构的类型。标签用 (!) 指示符表示。标签被视为表示图的固有部分。以下示例详细解释了节点标签 −

%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
"