YAML – 语法基础

YAML – 语法基础

在本章中,您将学习有关YAML语法基础的以下方面:

 * Production parameters
 * 缩进空格
 * 分离空间
 * 忽略行前缀
 * 行折叠

让我们详细了解每个方面。

Production参数

Production参数包括一组参数和允许使用特定production的值范围。以下是在YAML中使用的生产参数列表 –

缩进

它由字符n或m表示。字符流依赖于其中包含的块的缩进级别。许多production已经为这些功能参数化了它们。

上下文

它由c表示。YAML支持两组上下文:块样式和流样式。

样式

它由s表示。标量内容可以以五种样式之一呈现:明文,双引号和单引号流,文字和折叠块。

咀嚼

它由t表示。块标量提供许多机制,可帮助修剪块:strip,clip 和keep。咀嚼有助于格式化新行字符串。它用于块样式表示。使用指示符进行咀嚼处理。指示器控制应输出带有字符串换行符的内容。换行符使用(-)运算符移除,并使用(+)运算符添加。

下面显示了一个咀嚼过程的示例

strip:|-
   text↓
clip:|
   text↓
keep:|+
   text↓

解析指定的YAML示例后输出如下 –

YAML - 语法基础

缩进空格

在YAML字符流中,缩进定义为零个或多个字符的换行符。要记住的最重要的一点是缩进不应包含任何制表符。缩进中的字符不应被视为节点内容信息的一部分。观察以下代码以更好地理解 –

YAML 1.1
---
!!map {
   ?!!str“Not indented”
   :!!map {
      ?!!str“By one space”
      :!!str“By four\n spaces\n”,
      ?!!str“Flow style”
      :!!seq [
         !!str“By two”,
         !!str“Still by two”,
         !!str“Again by two”,
      ]
   }
}

缩进后可见的输出如下 –

{
   “Not indented”:{
      “在一个空间下”:“在四个空间下”,
      “流样式”:[
         “通过两个”,
         “仍旧是两个”,
         “再次两个”,
      ]
   }
}

分离空格

YAML使用空格字符分隔标记。最重要的注意事项是,YAML中的分离不应包含制表符。

以下代码行显示了分离空间的用法 –

{ · first: · Sammy, · last: · Sosa · }

上面显示的语法给出以下输出:

{
   “\ u00b7 last”:“\ u00b7 Sosa \ u00b7”,
   “\ u00b7 first”:“\ u00b7 Sammy”
}

忽略的行前缀

空前缀始终包括取决于标量类型的缩进,也包括前导空格。明文标量不应包含制表符。另一方面,引用标量可能包含制表符。块标量完全依赖于缩进。

以下示例以系统方式显示了忽略行前缀的工作 –

YAML 1.1
---
!!map {
   ?!!str“plain”
   :!!str“text lines”,
   ?!!str“引用”
   :!!str“文本行”,
   ?!!str“block”
   :!!str“text·®lines\n”
}

块流的输出结果如下 –

{
   “PLAIN”:“文本行”,
   “引用”:“文本行”,
   “block”:“text \ u00b7 \ u00aelines \ n”
}

行折叠

使用行折叠允许更容易地折断长行。更多数量的短行意味着更好的可读性。通过注意长行的原始语义来实现行折叠。以下示例演示了行折叠 –

%YAML 1.1
--- !!str
“具体\L\
修剪\n\n\n\
作为空格”

您可以查看JSON格式的行折叠输出如下 –

“具体\u2028修剪\n\n\n作为空格”

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程