共计 1805 个字符,预计需要花费 5 分钟才能阅读完成。
近十几年来唱衰 XML 的声音一直不曾间断过,作为曾经风靡一时的可扩展标记语言,似乎真的江河日下了。近期在跨部门合作过程中,有幸得以接触到以 XML 作为通用配置的大型工程项目,然而在开发过程中逐渐感受到这种面向 xml 配置的编程方式使得简单的问题变得复杂。同时,这种自定义的高度可配置化的方式对于项目管理又特别清晰高效。于是对关于如何正确看待 XML 这个问题陷入了思考….
1、XML 发展历史
首先来简单回顾下 XML 几个重要发展节点:
1978 年,ANSI 将 IBM 二十世纪 60 年代发展起来的 GML(Generalized Markup Language)标准化后,发布成为 SGML(The Standard Generalized Markup Language),这成为 XML 的前身。
1986 年,SGML 作为一种通用标记语言,为国际标准化组织 ISO 所采用,但由于 SGML 定义过于复杂,无法普及。
1995 年,考虑到当时 HTML 的缺陷,作为简化与优化的 XML 雏形已经形成,并向 W3C 提案
1998 年 2 月,XML1.0 发布,正式成为 W3C 的标准。
虽然 XML 生而是为解决 HTML 的一些弊病,并取而代之。但事与愿违,众所周知 XML 并没有取代 HTML 成为新的超文本标记语言。不过这丝毫不妨碍 XML 不断发展演化并被广泛用作跨平台数据交换的格式:主要针对数据的内容,通过不同的格式化描述手段(XSLT,CSS 等)可以完成最终的形式表达(生成对应的 HTML,PDF 或者其他的文件格式)。
注:HTML 也是基于 SGML,准确来说 HTML 是 SGML 的一个应用(基于 SGML 的超文本版本)。
没错,JSON 是一种优秀的数据交换格式,但是它仅仅是一种数据交换格式(与 XML 对比)。
2、XML VS JSON
很多开发者唱衰 XML 也并不是空穴来风,在 WEB 技术如此炙热的年代,JSON 似乎已经成为了一种事实上的 WEB 交换数据格式标准。
如果严格地从定义上来讲,XML 与 JSON 并不是同一样东西。XML 是一种标记元语言,而 JSON 则是一种轻量级的数据交换格式。从这个点上说,XML 与 JSON 是无法比较的。很多时候时候我们在说 XML VS JSON,实际上是指 XML 作为数据交换格式与 JSON 这种数据交换格式的比较。
虽然 JSON 是作为 JavsScript 的一个子集诞生的,但是它独立于语言。JSON 得益于其本身的小巧、简单以及浏览器内建快速解析支持的特性,使得其更适用于网络数据传输领域,在 web2.0 时代更是一路高歌猛进。
下面是 Google Trends 和 StackOverflow Insights 上的数据:
Google Trends:
StackOverflow Insights:
可以看出,在 2013 年左右 JSON 热度逐渐超过 XML。
尽管,JSON 在语义表达、数据存储以及检索方面远不及 XML,但就是因为其简单、轻量使得其大肆流行于市场。
注:从这个点上的启发是简单好用比全面更容易普及。比如当年的 OSI 七层网络协议与 TCP/IP 四层协议之争,同样的道理:简单是流行的前提。
3、XML 真的死了吗?
看着如此趋势,不免会心生疑问:XML 真的死了吗?答案当然是否定的。这其实是一种认知偏见,见得少不代表事实上不多。比如 segmentfault 上大都是偏前端类的技术文章,这说明难道后端技术都消失了嘛?明显不是。
曲线只能说明某种场景下未来的一种趋势,比如在 web 领域的确 xml 是不如 json 使用的广泛。但是在面向 SOA 架构的企业级软件应用中,XML 仍是信息交换的事实标准。XML 作为一个可以自定义标签的元标记语言,在描述复杂的业务逻辑时尤其特别适用。并且,在当今的出版业中,整个文档处理工作流程都要使用 XML。它也是标准的 Office 文件格式,例如 Word、Excel、PowerPoint 或 Google Docs 等。
故,XML 并没有死,只是某些领域应用减少,但是其他领域特别是企业级仍然有很多应用。
References
https://www.quora.com/Is-XML-…https://zh.wikipedia.org/zh-h…https://www.itcodemonkey.com/…http://www.cftea.com/c/444.asphttp://siddim.com/archives/47…https://zh.wikipedia.org/zh-h…