![YAML Tutorial](/yaml/images/yaml-mini-logo.jpg)
- YAML 教程
- YAML - 首页
- YAML – 简介
- YAML – 基础知识
- YAML – 缩进和分隔
- YAML – 注释
- YAML – 集合和结构
- YAML – 标量和标签
- YAML –完整示例
- YAML – 流程
- YAML – 信息模型
- YAML – 语法字符
- YAML – 语法基本元素
- YAML – 字符流
- YAML – 节点属性
- YAML – 块标量头部
- YAML – 流式风格
- YAML – 块式风格
- YAML – 序列风格
- YAML – 流式映射
- YAML – 块式序列
- YAML – 容错模式
- YAML – JSON 模式
- YAML 有用资源
- YAML - 快速指南
- YAML - 有用资源
- YAML - 讨论
YAML - 语法基本元素
在本节中,您将学习 YAML 中语法基本元素的以下方面:
- 生成参数
- 缩进空格
- 分隔空格
- 忽略的行前缀
- 折行
让我们详细了解每个方面。
生成参数
生成参数包括一组参数以及特定生成中使用的允许值的范围。YAML 中使用以下生成参数列表:
缩进
它用字符n 或 m 表示。字符流取决于其中包含的块的缩进级别。许多生成都将这些功能参数化。
上下文
它用c 表示。YAML 支持两组上下文:块风格和流式风格。
风格
它用 s 表示。标量内容可以以五种风格之一呈现:纯文本、双引号和单引号流、字面量和折叠块。
截断
它用t 表示。块标量提供了许多有助于修剪块的机制:去除、裁剪和保留。截断有助于格式化新行字符串。它用于块风格表示。截断过程在指示符的帮助下进行。指示符控制使用字符串的新行应产生什么输出。新行使用(-)运算符删除,并使用(+)运算符添加。
下面显示了一个截断过程的示例:
strip: |- text↓ clip: | text↓ keep: |+ text↓
解析指定的 YAML 示例后的输出如下:
![Output After Parsing the Specified YAML](/yaml/images/output_after_parsing_the_specified_yaml.jpg)
缩进空格
在 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": { "By one space": "By four\n spaces\n", "Flow style": [ "By two", "Still by two", "Again by two" ] } }
分隔空格
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 "quoted" : !!str "text lines", ? !!str "block" : !!str "text·®lines\n" }
块流获得的输出如下:
{ "plain": "text lines", "quoted": "text lines", "block": "text\u00b7\u00aelines\n" }
折行
折行允许为了可读性而断开长行。更多数量的短行意味着更好的可读性。通过记录长行的原始语义来实现折行。以下示例演示了折行:
%YAML 1.1 --- !!str "specific\L\ trimmed\n\n\n\ as space"
您可以看到以下 JSON 格式的折行输出:
"specific\u2028trimmed\n\n\nas space"
广告