zoukankan      html  css  js  c++  java
  • 对XML的学习和理解

    xml定义:

      XML即可扩展标记语言(eXtensible Markup Language)。标记是指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。如何定义这些标记,既可以选择国际通用的标记语言,比如HTML,也可以使用象XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性。

      上面这段是对XML的一个基本定义,一个被广泛接受的说明。简单说,XML就是一种数据的描述语言,虽然它是语言,但是通常情况下,它并不具备常见语言的基本功能——被计算机识别并运行。只有依靠另一种语言,来解释它,使它达到你想要的效果或被计算机所接受。

      总结:

      XML是一种标记语言,很类似HTML

      XML的设计宗旨是传输数据,而非显示数据

      XML标签没有被预定义。您需要自行定义标签。

      XML被设计为具有自我描述性。

      XML是独立于软件和硬件的信息传输工具。 目前,XML在Web中起到的作用不会亚于一直作为 Web 基石的 HTML。XML无所不在。XML是各种应用程序之间进行数据传输的最常用的工具,并且在信息存储和描述领域变得越来越流行。

    用途: 

      如果你需要在 HTML 文档中显示动态数据,那么每当数据改变时将花费大量的时间来编辑 HTML。

      通过 XML,数据能够存储在独立的 XML 文件中。这样你就可以专注于使用 HTML 进行布局和显示,并确保修改底层数据不再需要对 HTML 进行任何的改变。

    工作原理:

      比如,我们要给对方传输一段数据,数据内容是“too young,too simple,sometimes naive”,要将这段话按照属性拆分为三个数据的话,就是,年龄too young,阅历too simple,结果sometimes naive。

      我们都知道程序不像人,可以体会字面意思,并自动拆分出数据,因此,我们需要帮助程序做拆分,因此出现了各种各样的数据格式以及拆分方式。

      比如,可以是这样的数据为“too young,too simple,sometimes naive”,然后按照逗号拆分,第一部分为年龄,第二部分为阅历,第三部分为结果。

      也可以是这样的,数据为“too_young**too_simple*sometimes_naive”,从数据开头开始截取前面十一个字符,去掉*号并把下划线替换为空格作为第一部分,再截取接下来的十一个字符同样去掉*并替换下划线为空格作为第二部分,最后把剩下的字符同样去*号体会空格作为第三部分。

      这两种方式都可以用来容纳数据并能够被解析,但是不直观,通用性也不好,而且如果出现超过限定字数的字符串就容纳不了,也可能出现数据本身就下划线字符导致需要做转义。

    基于这种情况,出现了xml这种数据格式, 上面的数据用XML表示的话
    可以是这样
    <person age="too young" experience="too simple" result="sometimes naive" />
    

    也可以是这样
    <person>
        <age value="too young" />
        <experience value="too simple" />
        <result value="sometimes naive" />
    </person>
    

      两种方式都是xml,都很直观,附带了对数据的说明,并且具备通用的格式规范可以让程序做解析。

    如果用json格式来表示的话,就是下面这样
    {
        "age":"too young",
        "experience":"too simple",
        "result":"sometimes naive"
    }
    
      看出来没,其实数据都是一样的,不同的只是数据的格式而已,同样的数据,我用xml格式传给你,你用xml格式解析出三个数据,用json格式传给你,你就用json格式解析出三个数据,还可以我本地保存的是xml格式的数据,我自己先解析出三个数据,然后构造成json格式传给你,你解析json格式,获得三个数据,再自己构造成xml格式保存起来,说白了,不管是xml还是json,都只是包装数据的不同格式而已,重要的是其中含有的数据,而不是包装的格式。
       

    Future of XML:

      永远不会过时的

        

      

  • 相关阅读:
    JVM活学活用——GC算法 垃圾收集器
    JVM活学活用——类加载机制
    JVM活学活用——Jvm内存结构
    优化springboot
    Java基础巩固计划
    Java自定义注解
    记一次内存溢出的分析经历
    redis学习笔记-redis的安装
    记一次线程池调优经历
    Python中关于split和splitext的差别和运用
  • 原文地址:https://www.cnblogs.com/qiangzai/p/8594872.html
Copyright © 2011-2022 走看看