初探YAML

初探YAML

2005-10-06


YAML何许物也?在XML泛滥的情况下,YAML的出现的确让人眼前一亮,在初步学习了YAML以后,粗略的总结了一下,拿出来和大家分享。

[MindMap]



[参考文档]
YAML Specification
YAML 数据类型说明

[摘要]
YAML的设计目的
YAML描述: [注释, 文档, 数据结构, 数据类型, 其他]

YAML的设计目的

1、容易人类阅读
2、适合表示程序语言的数据结构
3、可用于不同程序间交换数据
4、支持泛型工具
5、支持串行处理?
6、丰富的表达能力和可扩展性
7、易于使用

粗看了specification以后感觉最好的是“容易人类阅读”,对比一下下面的xml和yaml的代码块:

# xml代码块:

<site>
    
<name>sina</name>
    
<url>http://www.sina.com.cn</url> 
</site>
<site>
    
<name>google</name>
    
<url>http://www.google.com</url>
</site>

# YAML代码块
---
site: 
    name: sina 
    url : http://www.sina.com.cn
---
site:
    name: google
    url : http://www.google.com
或:
---
site: {name: sina, url: http://www.sina.com.cn}
---
site: {name: google, url: http://www.google.com}


YAML利用缩进或者是explicit indicatior(如上面的{})来表示属性的嵌套,更为直观和simple。


YAML描述

“YAML Ain't Markup Language” (abbreviated YAML) is a data serialization language designed to be human-friendly and work well with modern programming languages for common everyday tasks.

先来看看YAML里的主要标记:

(1)注释:

举个例子:
# Comment Example
# Profile Of Mary
Mary:
    - name: Mary
    - age  : 19   # age property


(2)文档(document):

现在还不明白文档是什么意思,既然YAML定义是data serialization,暂时把一个doucment视为一个object序列化后得到的yaml配置信息
# documents example
    ---
site: {name: sina, url: http://www.sina.com.cn}
---
site: {name: google, url: http://www.google.com}


(3)数据结构:
YAML的设计者认为在配置文件中所要表达的数据内容有三种类型:标量(Scalar,如字符串和整数等)、序列(Sequence,如数组)和Mapping(类似hash的key/value pair)。

sequence型主要是用来表示数组类型的数据。下图描述了YAML中Sequence型数据的表示法:


mapping数据类型主要用来表示key: value对类型的数据。YAML描述方式见下图:


最后,我们用YAML来描述一本书《单元测试知道-c#版》
# 《单元测试之道-c#版》描述
---  # begin of document
书名  : '单元测试之道-C#版'
出版社: '电子工业出版社'
原作者: ['Andrew Hunt', 'David Thomas']
译者  : 
    - 陈伟柱
     - 陶文
前二章节  : 
    - 第一章: 序言
    - 第二章: 你的首个单元测试计划

  #end of document
YAML推荐使用空格作为缩进,避免了在不同编辑器中对tab的表示形式不同而可能产生误解。

posted on 2005-10-07 22:44 Aero 阅读(819) 评论(3)  编辑 收藏 网摘 所属分类: Script

评论

#1楼 2007-01-05 14:27 caray[未注册用户]

8错   回复  引用    

#2楼 2008-09-06 08:27 malaka[未注册用户]

非常不错的文章,本来想自己写一篇介绍yaml的文章,现在看了你的,我不打算再写了。   回复  引用    

#3楼 2009-03-01 16:58 CoderZh      

很不错!特别是上面的那个图   回复  引用  查看    




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 249924




相关文章:

相关链接:

导航

公告

从不了解到了解,从了解到熟悉,从熟悉到精通,这纪录了一个人思考和解决问题的成长过程。

转载请遵守 创作共用约定

关于语音参数分析平台: 毕设也博客

msn: wk_kevin at hotmail.com
email: chwkai at gmail.com
Free Website Counter
<2007年1月>
31123456
78910111213
14151617181920
21222324252627
28293031123
45678910

统计

与我联系

搜索

 

常用链接

留言簿

我参加的小组

我参与的团队

随笔分类(66)

随笔档案(59)

文章分类(18)

相册

about Aero

friendz

project bloggerz

project sitez

techz

积分与排名

最新评论

阅读排行榜

评论排行榜