YAML的语法和编写规范
YAML 简介:
YAML,即 YAML Ain’t a Markup Language(YAML 不是一种标记语言)的递归缩写。YAML 其实意思是 Yet Another Markup Language(仍是一种标记语言)。它主要强度这种语言是以数据为中心,而不是以标记为中心,而像 XML 语言就使用了大量的标记。
YAML 可读性高,易于理解,用来表达数据序列化的格式。它的语法和其他高级语言类似,还可以简单表达数组、散列表,标量等数据形态。它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件。
YAML语法
1.YAML使用可打印的Unicode字符,可使用UTF-8或UTF-16
2.使用空白字符(不能使用Tab)分层,同层元素左侧对齐
3.单行注解由井字号( # )开始,可以出现在行中任何位置
4.每个清单成员以单行表示,并用短杠+空白(- )起始
5.每个杂凑表的成员用冒号+空白(: )分开键和值
6.杂凑表的键值可以用问号?(?)起始,表示多个词汇组成的键值
7.字串一般不使用引号,但必要的时候可以用引号框住
8.使用双引号表示字串时,可用倒斜线(\)进行特殊字符转义
9.区块的字串用缩排和修饰词(非必要)来和其他资料分隔,有新行保留(使用符号|)或新行折叠(使用符号>)两种方式
10.在单一档案中,可用连续三个连字号(---)区分多个档案
11.可选择性的连续三个点号(...)用来表示档案结尾(在流式传输时非常???有用,不需要关闭流即可知道到达结尾处)
12.重复的内容可使从参考标记星号 (*)复制到锚点标记(&)
13.指定格式可以使用两个惊叹号 ( !! ),后面接上名称
Yaml编写规范
规范一:文档使用?Unicode?编码作为字符标准编码,例如 UTF-8
规范二:使用“#”来表示注释内容
# 客户订单
date: 2015-02-01
customer:
??- name: Jai
items:
??- no: 1234 ????????# 订单号
??- descript: cpu
规范三:使用空格作为嵌套缩进工具。通常建议使用两个空格缩进,不建议使用 tab (甚至不支持)
规范四:序列表示
1、使用“-”(横线) + 单个空格表示单个列表项
--- # 文档开始
- 第一章 简介
- 第二章 设计目录
2、使用"[]"表示一组数据
--- # 文档开始
[blue, red, green]
3、组合表示。每个结构都可以嵌套组成复杂的表示结构
--- # 文档开始
- [blue, red, green] ????# 列表项本身也是一个列表
- [Age, Bag]
- site: {osc:www.oschina.net, baidu: www.baidu.com} ?# 这里是同 键值表 组合表示
规范五:键值表
1、使用?“:”(冒号) + 空格表示单个键值对
# 客户订单
date: 2015-02-01
customer:
??- name: Jai
items:
??- no: 1234 ????????# 订单号
??- descript: cpu
??- price: ¥800.00
2、使用"{}"表示一个键值表
# 客户订单
date: 2015-02-01
customer:
??- name: Jai
items: {no: 1234, descript: cpu, price: ¥800.00}
3、"? " 问号+空格表示复杂的键。当键是一个列表或键值表时,就需要使用本符号来标记
?# 使用一个列表作为键
?? [blue, reg, green]: Color
?# 等价于
?? - blue
???- reg
???- gree
?: Color
4、组合表示。每个结构都可以嵌套组成复杂的表示结构
Color:
????- blue
????- red
????- green
?
?# 相当于 (也是 JSON 的表示)
?{Color: [blue, red, green]}
?div:
????- border: {color: red, width: 2px}
????- background: {color: green}
????- padding: [0, 10px, 0, 10px]
?# 使用缩进表示的键值表与列表项
?items:
????- item: cpu
??????model: i3
??????price: ¥800.00
????- item: HD
??????model: WD
??????price: ¥450.00
?# 上面使用 “-” 前导与缩进来表示多个列表项,相当于下面的JSON表示
?items: [{item:cpu, model:i3, price:¥800.00}, {item:HD, model:WD, price: ¥450.00}]
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!