用例是以文本格式对复杂对象图进行长期序列化.
如果您希望人类创建/读取文档(配置文件,报告等),那么您可以考虑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来维护错误列表).
如果需要将XML文档转换为另一种格式(XML,HTML,YAML,PDF),则可以使用XSLT,而对于YAML,则必须编写程序.