一、为什么出现XML?
还是从软件说起,其本质是信息处理以及对信息处理的自动化。在软件系统中,数据是信息的载体,是对客观事物所蕴含信息的抽象描述。软件对数据的处理包括:Define(定义)、Transfer(传递)、Transform(转换)、Store(存储)、Retrival(检索)和Show(展示)。
数据可以以二进制的形式表示也可以以文本的形式表示。二进制文件是一个0和1的序列,通常需要专用的程序进行识别和解析,由于占用带宽较少,适用于网络传输,但对于用户来说很难理解。而文本文件是一个由字符组成的文件,方便用户理解,但文件通常较大。
在《杂谈:语言的鸿沟》一文中,我们曾讨论过人们总是在追求简单方便。同样地,在二进制文件和文本文件之间人们通常选择的是文本文件。但在文本文件中,人们还希望文本文件能够自表达所蕴含的意义,希望的是有格式的文本数据,于是就需要标记元数据以及所标识的原始数据。在这种情况下,SGML(Standard Generalized Markup Language,标准通用标记语言)以一种规范性的标准出现了,其官网简单示例如下所示:
SGML允许人们使用标准的语法语义创建他们自已的标记语言,例如,HTML使用<>>来标识元数据,并且在标记内可以增加定义。SGML具有的这种灵活性,同时也带来了复杂性,事实上,这使得SGML的解析及处理变得十分困难,很难在网络上进行广泛地应用。所以SGML需要改变,需要简化。这种情况下,XML(eXtensible Markup Language,可扩展标记语言)作为SGML的一个简化子集出现了。
二、什么是XML?
- 基础
1998年2月,W3C发布了XML的推荐标准,XML继承了SGML的灵活性,没有预定义的标签,标签是由XML的编写人员根据业务需求进行编写的,如下图所示,、、都是自定义的标签,且都有一个对应的关闭标签>:
一个基本的XML示例包含XML声明、根元素和子元素。其中,XML声明定义XML的版本和所用的编码;根元素是每个XML文档都必须包含的,并做为XML树的根而解析,如下所示:
XML的解析就是其内容进行分解并重建,通常情况下将其抽象为DOM模型--使用树型结构表示,该模型提供了内存中访问和修改XML信息的方法。需要说明的是,DOM消耗的内存较大。
XML允许自定义标签,同时如果XML文档存在错误,那么程序就不应当继续处理这个文档。那么我们如何来验证XML文档是正确的呢?有两种方式:
- DTD(document type definitions,文件类型定义)
- XML Schema
2. 应用场景
在XML出现的前部分时间,XML使用得较少。随着互联网的发展,网络服务大量地接收和发送数据,但数据格式由于技术体系的不同而呈现出较大的差异,数据格式多且大部分都是专有的,开发人员需要做很多数据转换的工作。这就需要实现数据格式的通用性。XML作为对人机友好的文件格式,可提高数据的通用性,使不同组件间的数据交互更容易,并使得开发人员聚焦于业务逻辑的开发与创新。XML在数据交换领域并得到了广泛的应用。除此之外,XML还应用于:
- 配置文件:许多应用或框架的配置文件都采用XML格式,如Struct、Spring等框架;
- 数据库系统:大多数数据库系统都能保存XML格式的文件。
-
软件系统
+关注
关注
0文章
62浏览量
9494 -
Transform
+关注
关注
0文章
3浏览量
5643 -
define
+关注
关注
0文章
15浏览量
3734
发布评论请先 登录
相关推荐
评论