放弃XML做为配置文件,转投Yaml怀抱

[ 2007-04-22 10:09:31 | 作者: progame ]
文字大小: | |

Yaml -- yaml ain't markup language,又是一个这样风格的命名,它的出发点就是为了作为使用者的人来说,更加易读好写,支持层级结构,所以从理论上来说,是可以代替XML的

对yaml支持最好的当然就是ruby了,因为ruby配置都采用yaml格式,同时也会做为对象的序列化存储来使用,因为我C#和Java都准备采用Yaml代替XML做为我的配置文件格式使用(也就是说我不用它去代替web.config或app.config的,毕竟.net中相应的handle去处理,可以直接存取使用,不需要我去用xpath来查找定位xml节点),Java有jyamljvyaml,试了一下jyaml,想来大概够用,而C#的就是Yaml.net,晕,发现不支持从对象到yaml的dump以及从yaml中load一个对象实例,我发邮件给两位作者,问是否有计划去做这个,结果他们说对于Yaml.net已经没兴趣了,因为官方的 Specification?变得越来越复杂,现在他们已经放弃Yaml而使用XML了

一个半成品的轮子放在面前,怎么办呢,基于他们的改还是自己另外写?由于他们说这个Yaml.net本身对yaml支持特性不完全,而不仅仅是序列化和反序列化的问题了,我于是决定自己重新写一个parser,在写的过程中,为了让我的配置文件更容易书写以及更直观,我开始更改了一些语法要求,因为.Net中泛型存在,所以我不需要在yaml中对类型加tag来标识,而且我的paser在组装对象时完全可以通过泛型来判定List和Dictionary里存储的对象来是简单类型还是自定义类型,这意味着我这是一个改头换面了的Yaml,况且由于时间不允许,我只有一天时间来完成它,结果最后它支持的特征有:
1、单行注释,使用'#'
2、简单类型,包括string,int,float,double,datetime,bool
3、集合支持,必须使用泛型,支持list和dictionary
4、引用和继承

评论Feed 评论Feed: /feed.asp?q=comment&id=715

标签: Yaml

您可能感兴趣的文章:

  • 让我们一起YAML吧 (progame at 2007-08-18)

  • 这篇日志没有评论.

    发表
    表情图标
    [smile] [confused] [cool] [cry]
    [eek] [angry] [wink] [sweat]
    [lol] [stun] [razz] [redface]
    [rolleyes] [sad] [yes] [no]
    [heart] [star] [music] [idea]
    UBB代码
    转换链接
    表情图标
    悄悄话
    用户名:   密码:   (非注册用户不需要输入密码) 注册?
    验证码(不区分大小写) * 请输入验证码