什么是XML?

描述

一、为什么出现XML?

还是从软件说起,其本质是信息处理以及对信息处理的自动化。在软件系统中,数据是信息的载体,是对客观事物所蕴含信息的抽象描述。软件对数据的处理包括:Define(定义)、Transfer(传递)、Transform(转换)、Store(存储)、Retrival(检索)和Show(展示)。

Transform

数据可以以二进制的形式表示也可以以文本的形式表示。二进制文件是一个0和1的序列,通常需要专用的程序进行识别和解析,由于占用带宽较少,适用于网络传输,但对于用户来说很难理解。而文本文件是一个由字符组成的文件,方便用户理解,但文件通常较大。

Transform

《杂谈:语言的鸿沟》一文中,我们曾讨论过人们总是在追求简单方便。同样地,在二进制文件和文本文件之间人们通常选择的是文本文件。但在文本文件中,人们还希望文本文件能够自表达所蕴含的意义,希望的是有格式的文本数据,于是就需要标记元数据以及所标识的原始数据。在这种情况下,SGML(Standard Generalized Markup Language,标准通用标记语言)以一种规范性的标准出现了,其官网简单示例如下所示:

Transform

SGML允许人们使用标准的语法语义创建他们自已的标记语言,例如,HTML使用<>来标识元数据,并且在标记内可以增加定义。SGML具有的这种灵活性,同时也带来了复杂性,事实上,这使得SGML的解析及处理变得十分困难,很难在网络上进行广泛地应用。所以SGML需要改变,需要简化。这种情况下,XML(eXtensible Markup Language,可扩展标记语言)作为SGML的一个简化子集出现了。

二、什么是XML?

  1. 基础

1998年2月,W3C发布了XML的推荐标准,XML继承了SGML的灵活性,没有预定义的标签,标签是由XML的编写人员根据业务需求进行编写的,如下图所示,、、都是自定义的标签,且都有一个对应的关闭标签:

Transform

一个基本的XML示例包含XML声明、根元素和子元素。其中,XML声明定义XML的版本和所用的编码;根元素是每个XML文档都必须包含的,并做为XML树的根而解析,如下所示:

Transform

XML的解析就是其内容进行分解并重建,通常情况下将其抽象为DOM模型--使用树型结构表示,该模型提供了内存中访问和修改XML信息的方法。需要说明的是,DOM消耗的内存较大。

XML允许自定义标签,同时如果XML文档存在错误,那么程序就不应当继续处理这个文档。那么我们如何来验证XML文档是正确的呢?有两种方式:

  • DTD(document type definitions,文件类型定义)

Transform

  • XML Schema

Transform

2. 应用场景

在XML出现的前部分时间,XML使用得较少。随着互联网的发展,网络服务大量地接收和发送数据,但数据格式由于技术体系的不同而呈现出较大的差异,数据格式多且大部分都是专有的,开发人员需要做很多数据转换的工作。这就需要实现数据格式的通用性。XML作为对人机友好的文件格式,可提高数据的通用性,使不同组件间的数据交互更容易,并使得开发人员聚焦于业务逻辑的开发与创新。XML在数据交换领域并得到了广泛的应用。除此之外,XML还应用于:

  • 配置文件:许多应用或框架的配置文件都采用XML格式,如Struct、Spring等框架;
  • 数据库系统:大多数数据库系统都能保存XML格式的文件。
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分