是的,XML是人类可读的,但是逗号分隔的文本和属性文件也是人类可读的。
XML很臃肿,很难解析,很难在代码中修改,再加上我可以用它考虑的其他一大堆问题。
我的问题是XML最吸引人的特性是什么使它如此流行?
发布于 2008-09-22 17:30:22
与CSV文件相比,它的主要优势之一是可以轻松地表示分层数据。要做到这一点,您需要一个像XML这样的自描述树结构,或者像SWIFT或EDI这样的预定义格式(如果您曾经处理过这两种格式中的任何一种,那么您就会意识到与之相比,XML的解析是微不足道的)。
它实际上很容易解析的原因之一是因为它“臃肿”。这些结束标记意味着您可以准确地将元素的结束与开始匹配,并计算出树何时变得不平衡。你不能在像JSON这样的“轻量级”替代方案中做到这一点。
它易于解析的另一个原因是,它从一开始就完全支持Unicode编码,因此您不必担心目标系统上的默认代码页是什么,或者如何编码多字节字符,因为这些信息都包含在文档中。
我们不要忘记随之而来的其他构件,比如定义的描述和验证机制(XSD)以及强大的声明性转换机制(XSLT)。
发布于 2008-09-22 17:25:35
当时是90年代末,互联网非常火热,但公司的系统却无法接近互联网。他们花了无数的时间处理CORBA,并使用企业JavaBeans进行规划,以使这些旧系统与新系统进行通信。
随之而来的是SGML,它是几乎所有标记语言的前身(我跳过GML)。SGML已经被用来定义如何定义HTML,但是为了使Netscape正确地显示给定的网页,必须使用HTML的特定标记。
但是,如果我们有其他需要解释的数据呢?啊哈!
因此,既然XML是结构化的,您可以随意定义该结构,它自然允许您构建接口(从非面向对象的角度来看)。它实际上并没有做其他接口语言已经做过的任何事情,但它给了人们设计自己定义的能力。
像X12和HL7这样的接口语言确实存在,但人们可以根据自己的AIX或AS/400系统对其进行定制。
由于HTML的存在,标记语言占据了主导地位,因此XML的易用性自然会被推向前台。
发布于 2008-09-22 17:47:06
直接从horse's mouth开始,XML的设计目标是:
它之所以流行,是因为人们需要一个跨平台数据交换格式的标准。XML可能有点臃肿,但它是一种非常简单的分隔文本数据的方法,并且向后兼容现有SGML系统的大量内容。
您确实不能将XML与CSV相提并论,因为CSV是表示数据的一种极其有限的方式。CSV不能处理基本行-列表之外的任何东西,并且没有层次结构的概念。
XML并不难解析,一旦您编写或找到一个像样的XML实用程序,在代码中处理它也不难。
https://stackoverflow.com/questions/116195
复制相似问题