一、为什么出现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文章
66浏览量
9690 -
Transform
+关注
关注
0文章
3浏览量
5722 -
define
+关注
关注
0文章
16浏览量
3956
发布评论请先 登录
OpenHarmony语言基础类库【@ohos.xml (xml解析与生成)】
XML介绍
xml文件如何打开?怎样打开XML文件?
PowerDesigner 与XML建模

xml教程pdf (XML终极教程下载)
XML Reference Material
An Eagle’s Eye View of XML
An Introduction to XML Applica
Microsoft Core XML Services (M
XML数据相似度研究

基于节点集的XML查询

XML基础——XML必须知道的入门知识

评论