用例是文本格式的复杂对象图的长期序列化。
最佳答案
简答
如果您希望人工创建/读取文档(配置文件、报告等),那么您可以考虑使用 YAML,否则选择 XML(用于机器对机器的通信)。
长答案
长度
XML 和 YAML 大致相同。好的 XML 库可以跳过所有空格,而对于 YAML,它是必需的。一个复杂的 YAML 包含很多缩进空格(不要使用制表符!)
网络故障
YAML 文档的一部分通常是有效文档,因此如果 YAML 文档不完整,则无法自动检测它。 XML 解析器将始终检查文档是否至少是格式正确的,并且可以自动检查架构的有效性。
语言支持
许多主要的编程语言都支持YAML和 XML。
一般知识
您无需向开发人员(即使是初级)解释什么是 XML。 YAML 还没有被广泛使用。
架构
使用 XML,生产者和消费者都可以就 Schema 达成一致,以建立可靠的数据交换格式。
语法
XML 非常丰富:命名空间、实体、属性。
外部依赖
Java 和 Python 在标准库中支持 XML。 YAML 需要这些语言的外部依赖项。
成熟度
XML 规范较旧且坚如磐石;而 YAML 仍在 build 中。 YAML 1.1 包含不一致(甚至有一个 wiki 来维护错误列表)。
XSLT
如果您需要将 XML 文档转换为另一种格式(XML、HTML、YAML、PDF),您可以使用 XSLT,而对于 YAML,您必须编写程序。
关于java - yaml vs xml 用于对象图反序列化的优缺点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/561286/