YAML

来自软件开发
跳转至: 导航搜索

什么是YAML?

YAML 官方网站称 YAML 是"一种所有编程语言可用的友好的数据序列化标准"。YAML Ain't Markup Language,和GNU一样,YAML是一个递归着说"不"的名字。不同的是,GNU对UNIX说不,YAML说不的对象是XML。

YAML不是XML。

为什么不是XML呢?因为:

  • YAML的可读性好。
  • YAML和脚本语言的交互性好。
  • YAML使用实现语言的数据类型。
  • YAML有一个一致的信息模型。
  • YAML易于实现。

上面5条也就是XML不足的地方。同时,YAML也有XML的下列优点:

  • YAML可以基于流来处理;
  • YAML表达能力强,扩展性好。

总之,YAML试图用一种比XML更敏捷的方式,来完成XML所完成的任务。更多的内容及规范参见 http://www.yaml.org

YamlDotNet

YAML的C# 实现

YAML已经有了不少实现,详细的实现列表参见 http://www.yaml.org/download.html 。列表中并没有.net的实现, 其实.NET也有 YamlDotNet 是YAML的C#实现。YAML文件格式主要集中于空格缩进的概念,它用于指出数据的层次结构 而不是使用XML嵌套标记或JSON的大括号({})和方括号([]),实际上,它是JSON的一个超集,因此,在使用的时候,你可能需要采用JSON风格的语法来跳出空格流,它的创始人将其形容为 为所有编程语言提供人性化的数据序列化标准 ,以我的经验来看,其重点是人性化, 这篇文章Human readable and editable config files with YAML (http://blog.codeinside.eu/2015/02/09/yaml-dot-net ) 简要介绍了YamlDotNet。

官网:https://github.com/aaubry/YamlDotNet