java - yaml vs xml 用于对象图反序列化的优缺点是什么?

标签 java xml serialization yaml

用例是文本格式的复杂对象图的长期序列化。

最佳答案

简答

如果您希望人工创建/读取文档(配置文件、报告等),那么您可以考虑使用 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/

相关文章:

java - 在 Java 中发送和接收序列化对象 - Socket 编程

java - Jackson:在序列化时抑制 JsonTypeinfo?

java - 在 Java 中使用数据库 mysql

java - 编码/解码 REST 路径参数

xml - 我如何从 Google Maps API 获取行车时间?

javascript - 如何使用node.jsexpress响应XML?

java - 使用 Java 8 Optional - 转换逻辑

java - Mulesoft Dataweave 转换为 MongoDB - 转换失败 "com.mulesoft.weave.mule.WeaveMessageProcessor$WeaveOutputHandler"

sql-server - 将 Inserted 和 Deleted 行转换为 Xml 以供审计

c++ - 使用分配器对 HashMap 进行高效序列化和反序列化