当前位置:  开发笔记 > 编程语言 > 正文

对象图形/序列化的yaml vs xml有哪些优点和缺点?

如何解决《对象图形/序列化的yamlvsxml有哪些优点和缺点?》经验,为你挑选了1个好方法。

用例是以文本格式对复杂对象图进行长期序列化.



1> Andrey..:

简短的回答

如果您希望人类创建/读取文档(配置文件,报告等),那么您可以考虑YAML,否则选择XML(用于机器到机器的通信).

答案很长

长度

XML和YAML大致相同.好的XML库可以跳过所有空格,而对于YAML则是必需的.复杂的YAML包含很多缩进空格(不要使用制表符!)

网络故障

YAML文档的一部分通常是有效文档,因此如果YAML文档不完整,则无法自动检测它.XML解析器将始终检查文档是否至少格式良好,并且可以自动检查模式的有效性.

语言支持

许多主要的编程语言都支持YAML和XML.

基本知识

您不需要向开发人员(甚至是初级)解释什么是XML.YAML还没有被广泛使用.

架构

使用XML,生产者和消费者都可以就Schema达成一致,以建立可靠的数据交换格式.

句法

XML非常丰富:名称空间,实体,属性.

外部依赖

Java和Python在标准库中支持XML.YAML需要这些语言的外部依赖.

到期

XML规范较旧,而且非常坚固; 然而,YAML仍在建设中.YAML 1.1包含不一致性(甚至还有一个wiki来维护错误列表).

XSLT

如果需要将XML文档转换为另一种格式(XML,HTML,YAML,PDF),则可以使用XSLT,而对于YAML,则必须编写程序.


+1,虽然我不同意网络故障:有足够的层能够在涉及解析器之前检测错误,即使它们失败,解析器也只能检测到破坏xml-well-formedness的那些错误(基本上:弄乱<,>,=,'或标签名称).
推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有