XML究竟是什么?
Posted 汽车电控与无人驾驶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XML究竟是什么?相关的知识,希望对你有一定的参考价值。
在计算机行业,没听说过 XML 这个词的人恐怕不存在吧。诸位也一定都知道 XML 这个词,而且也应该能深切地体会到,XML 作为一种诞生不到 10 年的新技术,却不断地渗透到了计算机的各个领域。例如,这个应用程序能够把文件保存成XML 格式;那个 DBMS(数据库管理系统)的下一个版本将支持 XML ;而那个 Web 服务是基于 XML 实现的……本章的主题将围绕“XML 究竟是什么”来展开。XML 其格式本身就是既简单又通用的。也正因为如此,XML 才会被扩充成各种各样的形式,应用于各种各样的场景。而且今后对 XML 的利用方式也将不断地进化下去。为了不至于对进化后的 XML 形态感到吃惊,趁着现在我们就先来整理一下 XML 的基础知识吧。
就从 XML 这个词的含义开始讲起吧。XML 是 eXtensible MarkupLanguage 的缩写, 译为可扩展标记语言。下面先介绍什么是“标记语言”, 接着再说明何谓“可扩展”。其实诸位已经在享用标记语言所带来的便利了。例如用于编写网页的 html( Hypertext Markup Language, 超文本标记语言) 就是一种标记语言。请看图 11.1, 这个网页实际上是一个名为 index.html 的HTML 文件, 部署在日经 BP 公司的 Web 服务器上。一般情况下,HTML 文件的扩展名是 .html 或 .htm。
只要从 Internet Explorer Web 浏览器的“查看” 菜单中选择“源文件”, 就会自动打开浏览器所附带的“原始源” 窗口, 上面显示的正是index.html 的内容( 如图 11.2 所示)。可以看到里面有很多用“<” 和“>” 括起来的单词, 例如 <html>、 <head>、 <title>、 <body> 等。通常把它们称作“标签”。<html> 是用于表示这是 HTML 文件的标签。同样,其他标签也分别被赋予了意义, <head> 表示网页的头部, <title> 表示网页的标题, <body> 表示网页的主体。除此之外还有很多标签, 例如使文字加粗显示的 <b>、 在网页中插入图片的 <img>, 等等。通常把通过添加标签为数据赋予意义的行为称为“标记”。为这种给数据赋予意义的行为定义规则的语言就是“标记语言”。HTML 是用于编写网页的标记语言, 更简单地说法就是 HTML 决定了可用于编写网页的标签。也可以这样说, 可使用的标签的种类决定了标记语言的规范。Web浏览器会对 HTML 的标签进行解析, 把由它们标记的信息渲染成在视觉上可以阅读的网页。
正如其名, XML 是一种标记语言。XML 文件的扩展名一般是 .xml( 使用别的也可以)。下面请诸位从 Windows 的“开始” 菜单中打开“搜索” 功能, 找找各自的计算机中有没有 XML 文件。笔者就在自己的计算机中找到了一个名为 iuhist.xml 的 XML 文件, 该文件位于文件夹 C:\Programe Files\WindowsUpdate\V4 中。接下来就试着用记事本打开这个文件( 也请诸位试着打开自己找到的 XML 文件)( 如图 11.3 所示)。
可 以 看 到 XML 文 件 也 使 用 了 标 签。在 iuhist.xml 中 就 有<publisherName> 和 <processorArchitecture> 等标签, 而且很有可能这两个标签表示的就是“发行者的名字” 和“处理器的架构”。那么是 XML 规定了这些标签吗?答案是否定的。XML 本身并不会限定标签的种类, 反倒是允许 XML 的使用者随心所欲地创建标签。也就是说, 在“<” 和“>” 中的单词可以是任意的。这就是所谓的“可扩展”。在 HTML 中, 我们只能使用由 HTML 定义出的那若干种标签,因此 HTML 是固定的标记语言。与此相对, XML 是可扩展的标记语言。也许诸位会感到有些混乱, 但是只要回顾之前的讲解, 就应该能清楚地区分 HTML 和 XML 了。
XML 是元语言,XML 并没有限定标签的使用方式, 使用什么样的标签都可以。可以说 XML 仅仅限定了进行标记时标签的书写格式( 书写风格)。也就是说通过定义要使用的标签种类, 就可以创造出一门新的标记语言。通常把这种用于创造语言的语言称作“元语言”。例如, 我们可以使用<dog> 和 <cat> 等标签, 创造一种属于自己的标记语言——宠物语言。不过, 就算新语言是自己创造的, 也毕竟属于 XML 格式的标记语言,所以不遵循一定的规范是不行的。如果只是在文档中胡乱地堆积标签,则无法称之为符合 XML 格式的语言。表 11.1 中列出了作为元语言的XML 中的约束。因为这些约束都很简单, 所以请诸位先来粗略地浏览一下。
XML 的数据是纯文本格式的, 也就是说只包含字符。通常把遵循了 XML 的约束编写出的文档称为“XML 文档” ;把保存着 XML 文档的文件称为“ XML 文件”。可以使用记事本等文本编辑器编写XML 文件。
图 11.4 展示了一个用描述宠物的标记语言编写的 XML 文件示例。其中使用了 3 种标签:<pet>、 <cat> 和 <dog>。虽然标签的名字是由笔者自己决定的, 但是在标签排列和 XML 声明等方面遵循了 XML 的约束, 所以是一个良好的 XML 文件。
我们把图 11.4 所示的文件命名为 MyPet.xml 并保存, 然后再用Web 浏览器打开该文件看看。当然, 由于它不是 HTML 文件, 所以不会显示成网页。但是现在的 Web 浏览器都集成了 XML 解析器, 可以用这个功能来检查 XML 文件的书写格式。如果用 Internet Explorer Web浏览器打开 MyPet.xml, 就可以看到为了便于理解, 里面的关键词、 标签以及其他信息都用不同的颜色区分了出来。虽然图 11.5 是黑白的,但实际在屏幕上最开始的 1 行是蓝色的。在 <pet> 等标签中, 表示标签开始和结束的符号“ <”“ </” 和“ >” 也都是蓝色的, 而 pet 和 cat等标签的名字是褐色的。用标签括起来“小玉” 和“小不点儿” 则是黑色的。
通常把遵循 XML 约束、 正确标记了的文档称作“格式良好的XML 文档”( Well-formed XML Document)。换言之, 只要能通过 XML解析器的解析, 就是格式良好的 XML 文档。下面我们做一个实验, 将MyPet.xml 中的 </cat> 删除, 保存后用 Web 浏览器再次加载该文件。因为 XML 约束中规定, 标签必须以 < 标签名 >、 </ 标签名 > 的形式成对儿出现, 所以如果删除了 </cat> 而只留下 <cat> 的话, 就不再是格式良好的 XML 文档了。这导致 XML 解析器不能正确解析, 在 Web 浏览器上自然也就无法正确显示了( 如图 11.6 所示)。诸位在自己手动创建XML 文档的时候, 也可以利用 Web 浏览器带有的 XML 解析器, 检查XML 文档的格式是否正确。
现在, 诸位已经充分理解为什么说 XML 是可扩展的标记语言了吧?但是随之又产生出了一个新的疑问——XML 到底有什么用呢?要想了解 XML 的用途, 就要先了解 XML 的诞生过程。众所周知, 网页的出现使互联网得到了普及。网页是指使用HTML 规定好的标签, 将字符串和图片显示在 Web 浏览器上的页面。毫无疑问的是浏览网页的是计算机的用户, 也就是人。例如一个购物网站, 浏览网站中页面的是人, 确认商品价格的是人, 最后下单订购商品的还是人。既然是用计算机来购物又学会编程了, 就会想编写这样一个程序让购物变得更轻松:能够自动检查多个购物网站上的商品价格, 然后自动在报价最低的网站上下单。但是如果网站只提供了 HTML, 那么这个程序几乎不可能完成。因为 HTML 中规定的各种标签只能用来指定信息的呈现样式, 而不能表示信息的含义。
请看图 11.7 所示的 HTML 文件。如果把这个 HTML 文件显示在Web 浏览器上( 如图 11.8 所示), 那么对人来说, 商品编号、 商品名称和价格是可以区分出来的。例如, 虽然 1234 和 19800 都是数字, 但是人们还是知道 1234 是商品编号, 而 19800 是价格。但是, 在 HTML 的标签中, 并没有可以区分商品编号、 商品名称和价格的标签。<table>、<tr> 和 <td> 只表示会以表格的形式呈现信息。作为程序要处理的数据格式, 从图 11.7 所示的 HTML 文件中提取出商品编号、 商品名称和价格的过程将非常繁琐。 那么像下面这样做如何呢?首先定义出<productId>、 <productName>、 <price> 等标签, 然后用它们表示商品编号、 商品称、 价格等信息。程序加载了带有这些标签的文件后,就能够轻松地识别出商品编号、 商品名称和价格了, 因为信息的含义已经用这些标签标记出来了。
在商业领域中存在着不计其数的信息, 蕴涵着各种各样的意义。行业不同, 信息的类型也就不同。并且随着时代的发展, 新兴行业还在不断地涌现。如果要适用于所有行业, 那么就算 HTML 的标签再多也还是不够用。于是就发明出了 XML 这种元语言, 而 HTML的用途就仅限于信息的可视化了, 自始至终都用于展现网页。这也就是要告诉大家:今后请使用更加灵活的 XML 为各个行业、 各个特殊用途创建标记语言。 也就是说, XML 的主要用途是为在互联网上交换的信息赋予意义( 如图 11.9 所示)。当然, 互联网以外的场景也可以使用 XML。只不过在 XML 诞生的过程中互联网一直伴随其左右。
在互联网的世界中, 有一个叫作 W3C( World Wide Web Consortium,万维网联盟) 的机构。该机构以“W3C 推荐标准” 的形式制定了一系列标准。XML 于 1996 年成为了 W3C 的推荐标准( XML 1.0)。这之后, 人们使用 XML 这种元语言, 又定义出了新的网页标记语言XHTML( Extensible Hypertext Markup Language, 可扩展超文本标记语言 ), 该 语 言 也 于 2000 年 成 为 了 W3C 推 荐 标 准。早 晚 有 一 天,XHTML 会取代现行的 HTML( HTML 4.0), 成为编写网页的主流标记语言 A。
以上是关于XML究竟是什么?的主要内容,如果未能解决你的问题,请参考以下文章