zoukankan      html  css  js  c++  java
  • javeEE第二周

    XML(可扩展标记语言)

    1、什么是xml?

     扩展标记语言 XML(Extensible Markup Language) 的规范定义:用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。XML是标准通用标记语言 (SGML) 的子集,非常适合 Web 传输。XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。

      简单说,XML就是一种数据的描述语言,虽然它是语言,但是通常情况下,它并不具备常见语言的基本功能——被计算机识别并运行。只有依靠另一种语言,来解释它,使它达到你想要的效果或被计算机所接受。XML是独立于软件和硬件的信息传输工具。 目前,XML在Web中起到的作用不会亚于一直作为 Web 基石的 HTML,XML无所不在。XML是各种应用程序之间进行数据传输的最常用的工具,并且在信息存储和描述领域变得越来越流行。

    便于理解。我对Xml、Html、Json进行了比较:

    • XML不是HTML的替代。
    • XML和HTML为不同的目的而设计:XML被设计为传输和存储数据,其焦点是数据的内容;HTML被设计用来显示数据,其焦点是数据的外观。
    • HTML旨在显示信息,而 XML 旨在传输信息。
    • XML是一种重量级的数据交换格式语言(详细的解释会在JSON的介绍中提及)
    • 可读性方面:JSON和XML的数据可读性基本相同,JSON和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,XML可读性较好些。 

    • 可扩展性方面:XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。

    • 编码难度方面:XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML就不太容易了。

    • 解码难度方面:XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。这一点XML输的真是没话说。

    • 流行度方面:XML已经被业界广泛的使用,而JSON才刚刚开始,但是在Ajax这个特定的领域,未来的发展一定是XML让位于JSON。到时Ajax应该变成Ajaj(Asynchronous Javascript and JSON)了。

    • 解析手段方面:JSON和XML同样拥有丰富的解析手段。、

    • 数据体积方面:JSON相对于XML来讲,数据的体积小,传递的速度更快些。

    • 数据交互方面:JSON与JavaScript的交互更加方便,更容易解析处理,更好的数据交互。
    • 数据描述方面:SON对数据的描述性比XML较差。
    • 传输速度方面:JSON的速度要远远快于XML。

    2、解析xml文件的几种方法和原理

    第一种方法 
    对象模型 API 定义了层次化对象模型来表示 XML 文档。换句话说,对应 XML 语法中的每个概念定义相应的类:元素、属性、实体、文档。解析器读入 XML 文档的时候,建立 XML 语法和类之间的一对一映射。比如,每遇到一个标记,就实例化一个元素类。 

    第二种方法 

    第二种选择是事件 API,比如 SAX。这个概念是上述对象模型方式的一种反映。只不过这种方法不根据 XML 语法定义通用的数据模型,其解析器依赖应用程序程序员建立定制的数据模型。 

    第三种方法 

    如果不提到另一种选择,即 XML 编组库形式的解析,如 Castor,本文就不完整。该方法介于对象模型和事件方法之间。 
    其思想是从 XML Schema 生成一个对象模型而不是通用模型(如 DOM),解析器生成更加针对所用词汇表的数据模型。比方说,如果词汇表处理的是发货单,那么可以预料其中会包含发送方、接收方、日期、产品类别、产品标识、单价和总价。DOM 将这些元素映射到一个一般性的元素类。编组库 为发送方、接收方、日期、产品类别、产品标识、单价、总价和文档中出现的其他元素创建专门的类。 

    3、Xml未来走向

    Xml主要功能还是对数据的处理,比如在安卓里,我们用xml来处理界面,在server里用xml来封装数据,功能是不会变得,的,但是应用场景会发展变化,未来it的发展当然会落在大数据云计算和物联网上来,这些肯定离不开数据的传输,所以肯定还有Xml的一席之地的。

  • 相关阅读:
    [转]C#进阶系列——WebApi 接口参数不再困惑:传参详解
    Netty中的三种Reactor(反应堆)
    I/O模型之三:两种高性能 I/O 设计模式 Reactor 和 Proactor
    【转】第8章 前摄器(Proactor):用于为异步事件多路分离和分派处理器的对象行为模式
    mysql 数据库 自动截取数据的问题---mysql的sql_model的四种模式:宽松模式、严格模式
    spring-session之四:Spring Session下的Redis存储结构
    Mysql auto_increment总结
    mysql实战优化之一:sql优化
    mysql字符集和校对规则(Mysql校对集)
    Oracle B-tree、位图、全文索引三大索引性能比较及优缺点汇总
  • 原文地址:https://www.cnblogs.com/csdns/p/8558858.html
Copyright © 2011-2022 走看看