美文网首页
XML学习(一)

XML学习(一)

作者: 一许青衫一 | 来源:发表于2019-01-05 11:46 被阅读0次

    前言

        无意间看到阮一峰老师的一篇介绍SVG图像的博客,开头说道SVG是基于XML语法的一种图像格式,看到这里心里产生了疑问:XML到底是什么?是干什么用的。之前,也接触到了一点XML,但是概念上模模糊糊的,只知道XML的标签可以自定义,其他的也就一无所知了。加上基本也没碰到用XML的地方,所以也就没有花功夫学习了。现在好奇心上来了,也希望好好的学习一下XML。

    为什么需要XML呢?

        几天前,我在学习互联网协议簇的时候,想通了一个道理,学习东西不能孤立、撕裂的去学习。意思就是说,看到什么东西,就死扣细节,光看这里了,只见树木不见森林。(推荐一本书《暗时间》)要学会将知识串联起来,给知识赋予生机,让他能够自我生长,延伸,发育。
        你已经是个成熟的知识树,要学会自己学习了,摸摸头.jpg
        要做到这种理想的状态,需要一步一步,慢慢来。首先要带有疑问的去学习,了解知识所处的背景与环境。每件东西或者知识被发明出来,都是为了解决当前面临的问题。清楚了要解决的问题,才能更加符合逻辑的理解知识的目的。
        那么XML的发明是为了解决什么问题呢?那就是程序之间的通讯问题。
        程序之间的通讯,我们需要制定一个通讯的规则,确保不同的程序之间都能使用同一个规则去相互通讯,而不会发生不兼容的问题。正如春秋战国时期,诸侯林立,每个国家都有自己的文字语言,国与国之间交流很是不方便。秦始皇的书同文,车同轨真正的将国家的统一从文化上确立了。
        出于这个目的,最开始的程序之间的通讯,采用的是字符串,因为字符串属于各个编程语言的基础数据结构,具有通用性。程序之间的通讯,本质上就是交换数据和解析数据。字符串在这上面有着本身的缺陷。那就是不能很好的表示关系型结构的数据,这样带来的后果就是,输入端和接收端的程序员无法很好的第一时间理解数据的结构信息。同时,对于复杂的数据,字符串更是要让人眼瞎了。
        为了解决这个问题,需要一个新的通讯规则。这个规则需要能够方便传输结构化数据

    传输结构化数据

    HTML本身的缺陷

        一般来说,为了省事偷懒,能够用现成的,我们就不会花更多的精力和时间发明一个新的东西。基于这样的想法,我们首先会想到使用现成的HTMl进行数据传输,因为HTML也能表示关系型结构的数据。
        但是为什么不用HTML呢?那是因为HTML本身有着缺陷,不能完全符合我们的要求。


    HTML自身缺陷

        因为上图所说的HTML的缺陷,我们只能重新定义一套程序之间的通讯规则,来传输数据,那就是XML(extionsiable markup language)可扩展标记语言。

    HTML与XML的设计宗旨区别

        我们首先要明白,XML不是HTML的替代,XML和HTML是为不同的目的而设计出来的。HTML被设计用来显示数据,其焦点是数据的外观。而XMl的设计宗旨是传输和存储数据,而不是显示数据。这样也就可以理解,HTML中标签是预定义的,因为他需要规范数据显示的外观,如果标签是自定义的话,解析器就无法识别对应的外观。这一点却正是XML作为传输关系型结构的数据所需要的,所以XML中标签是自定义的,区分大小写。


    image.png

    XML的定义

        (XML(可扩展标记语言)是W3C的推荐标准,是一种很像超文本标记语言的标记语言,它的设计宗旨是传输数据,而不是显示数据;它的标签没有被预定义,需要自行定义标签;具有自我描述性。

    标记语言的定义

        标记语言(也称置标语言、标记语言、标志语言、标识语言、markup language)是一种将文本(Text)以及文本相关的其他信息结合起来,展现出关于文档结构和数据处理细节的计算机文字编码。

    JSON与XML的区别

        JSON是轻量级的数据交换格式,脱胎于JS中,但是已经被各个语言广泛应用。与XML最大的区别是,XML是一个完整的标记语言,具有扩展性,而JSON只是数据格式,或者说就是一个简单的数据书写模板。这使得XML在程序判读上需要比较多的功夫。
        XML的设计理念与JSON不同,XML利用标记语言的特性提供了绝佳的延展性(如XPath,作用就是可以通过将XML文档映射为DOM,通过DOM来操作XML中的数据,这是JSON无法做到的。但是这也是JSON的优势,那就是轻量啊!),在数据存储,扩展及高级检索方面具备对JSON的优势。而JSON则由于比XML更加小巧,以及浏览器的内建快速解析支持,使得其更适用于网络数据传输领域。
        JSON格式取代了XML给网络传输带来了很大的便利,但是却没有了XML的一目了然,尤其是JSON数据很长的时候,会让人陷入繁琐复杂的数据节点查找中。
        这里也说明了一个道理,一件事情有得必有失,XML使得复杂数据结构鲜明,人可以一目了解,数据的结构关系。但是机器就不容易理解了。而JSON结构不清晰,但是机器却能更加的理解。

    相关文章

      网友评论

          本文标题:XML学习(一)

          本文链接:https://www.haomeiwen.com/subject/gwfrrqtx.html