对我来说可用意味着:
>它正在被实际使用
>它有工具支持。 (至少是一些简单的编辑)
>它具有人类可读的语法(请不要使用尖括号)
我还希望它尽可能接近XML,即必须支持属性和属性。所以,请不要YAML。目前,只有一种匹配的语言出现在我的脑海里 – JSON。你知道其他任何替代方案吗?
YAML是JSON的100%超集,因此拒绝YAML然后再考虑JSON是没有意义的。 YAML完成了JSON所做的一切,但是YAML也提供了更多功能(如引用)。
我想不出任何XML可以做到YAML不能做的事情,除了用DTD验证文档,根据我的经验,从来没有值得开销。但是YAML比XML更快更容易打字和阅读。
至于属性或属性,如果你考虑它,它们并不真正“添加”任何东西……它只是一个符号的快捷方式,可以将某些内容写为节点的属性,而不是将其放在自己的子节点中。但是如果您喜欢这种便利,您通常可以使用YAML的内联列表/哈希来模拟它。例如:
<!-- XML --> <Director name="Spielberg"> <Movies> <Movie title="Jaws" year="1975"/> <Movie title="E.T." year="1982"/> </Movies> </Director> # YAML Director: name: Spielberg Movies: - Movie: {title: E.T.,year: 1975} - Movie: {title: Jaws,year: 1982}
对我来说,无需编写每个节点标签两次的奢侈,加上所有角度支架垃圾的自由,使YAML成为首选。我实际上也喜欢缺乏正式的标签属性,因为在我看来,这似乎是一个灰色的XML区域,它不必要地引入了两组语法(在编写和遍历时),基本上是相同的概念。 YAML完全消除了这种困惑。