XML概览

原创 2004年06月24日 14:42:00

什么是XML

XML代表Extensible Markup LanguageeXtensible Markup Language的缩写,意为可扩展的标记语言)。XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。

1.1.1 XML是元标记语言

关于XML要理解的第一件事是,它不只是像超文本标记语言(Hypertext Markup LanguageHTML)或是格式化的程序。这些语言定义了一套固定的标记,用来描述一定数目的元素。如果标记语言中没有所需的标记,用户也就没有办法了。这时只好等待标记语言的下一个版本,希望在新版本中能够包括所需的标记,但是这样一来就得依赖于软件开发商的选择了。

但是XML是一种元标记语言。用户可以定义自己需要的标记。这些标记必须根据某些通用的原理来创建,但是在标记的意义上,也具有相当的灵活性。例如,假如用户正在处理与家谱有关的事情,需要描述人的出生、死亡、埋葬地、家庭、结婚、离婚等,这就必须创建用于每项的标记。新创建的标记可在文档类型定义(Document Type Definition,在以后的篇幅中常简称为DTD)中加以描述。在本书的第二部分中将会学到有关DTD的更多的知识。现在,只需把DTD看作是一本词汇表和某类文档的句法。例如,在Peter Murray-RustChemical Markup Language (化学标记语言,简写为CML)中的MOL.DTD文件中描述了词汇表和分子科学的句法:其中包括chemistry(化学)、crystallography(结晶学)、solid state physics(固体物理)等词汇。它包括用于atoms(原子)、molecules(分子)、bonds(化学键)、spectra(光谱)等的标记。这个DTD可与分子科学领域中的许多不同的人共享。对于其他领域也有其他的DTD,用户还可以创建自己的DTD

XML定义了一套元句法,与特定领域有关的标记语言(如MusicMLMathMLCML)都必须遵守。如果一个应用程序可以理解这一元句法,那么它也就自动地能够理解所有的由此元语言建立起来的语言。浏览器不必事先了解多种不同的标记语言使用的每个标记。事实是,浏览器在读入文档或是它的DTD时才了解了给定文档使用的标记。关于如何显示这些标记的内容的详细指令是附加在文档上的另外的样式单提供的。例如,考虑薛定格(Schrodinger)方程:

科学论文中充满了这一类方程,但是科学家还必须等待多年,才能让浏览器的开发商支持书写最基本的数学公式所需的标记。音乐家也有同样的局限性,因为Netscape NavigatorInternet Explorer还都不支持乐谱。

有了XML就意味着不必等待浏览器的开发商来满足用户的需要了。用户可以创建自己需要的标记,当需要时,告诉浏览器如何显示这些标记就可以了。

1.1.2 XML描述的是结构和语义,而不是格式化

关于XML要了解的第二件事是,XML标记描述的是文档的结构和意义。它不描述页面元素的格式化。可用样式单为文档增加格式化信息。文档本身只说明文档包括什么标记,而不是说明文档看起来是什么样的。

作为对照,HTML文档包括了格式化、结构和语义的标记。就是一种格式化标记,它使其中的内容变为粗体。是一种语义标记,意味着其中的内容特别重要。是结构标记,指明内容是表中的一个单元。事实上,某些标记可能具有所有这三种意义。

标记可同时表示20Helvetica字体的粗体、第一级标题和页面标题。

例如,在HTML中,一首歌可能是用定义标题、定义数据、无序的列表和列表项来描述的。但是事实上这些项目没有一件是与音乐有关的。用HTML定义的歌曲可能如下:

Hot Cop

by Jacques Morali Henri Belolo and Victor Willis

  • Producer: Jacques Morali

  • Publisher: PolyGram Records

  • Length: 6:20

  • Written: 978

  • Artist: Village People

而在XML中,同样的数据可能标记为:

Jacques Morali

Henri Belolo

Victor Willis

Jacques Morali

PolyGram Records

6:20

978

Village People

在这个清单中没有使用通用的标记如

  • ,而是使用了具有意义的标记,如
  • UML行为建模图———交互概览图

    交互概览图 一个交互概览图是活动图的一种形式,它的节点代表交互图。交互图包含顺序图,通信图,交互概览图和时间图。 大多数交互概览图标注与活动图一样。例如:起始,结束,判断,合并,分叉和结合节点是完全相...
    • jasonsix
    • jasonsix
    • 2016年09月17日 18:30
    • 1039

    Oracle的体系结构概览

    声明:版本11gR2,CentOS5.8 1 物理结构(文件) 主要性能影响在IO上 (1)controlfile select * from v$controlfile (2)datafi...
    • elvis_dataguru
    • elvis_dataguru
    • 2013年06月21日 15:07
    • 1428

    概览屏幕(最新动态屏幕、最近任务列表)

    基本上把官方文档上这一部分复制过来了,这一部分文档写的挺简约的,没啥可以精简的,就这样吧………...
    • Davidddl
    • Davidddl
    • 2017年03月12日 17:14
    • 127

    《全球概览》:嬉皮士生存指南

    撰文:弗雷德·特纳(Fred Turner) 翻译:王芳 《东方历史评论》微信公众账号:ohistory   大约是1966年3月的一个午后,我滴了点LSD,爬上屋顶,蜷...
    • TNTIN
    • TNTIN
    • 2014年07月24日 17:02
    • 583

    计算广告-在线广告的产品概况

    参考书籍---刘鹏老师的《计算广告》 在线广告不同于传统广告,其产品形式相当丰富 1、合约广告产品:这类广告主要服务于后续效果不宜直接衡量的品牌类广告主,在门户网站和视频网站较为常见。 ...
    • qq_26504875
    • qq_26504875
    • 2016年09月12日 23:07
    • 342

    Angular 2 架构概览

    网址:https://angular.cn/docs/ts/latest/guide/architecture.html ------------------------------第一部分:Angu...
    • KingCruel
    • KingCruel
    • 2016年11月03日 10:01
    • 476

    Visual Studio实用小技巧

    有一个有关微软Office的笑话,说的是它的特性太多: 当你觉得自己发现了一个Office的新特性时,它已经存在很多年了。 本文将介绍一些在Visual Studio中...
    • zz901214
    • zz901214
    • 2017年12月27日 14:35
    • 51

    Python3标准库(一) 内置函数

    Python中内置了很多的函数,而学习标准库我们需要事先熟悉这些内置函数,所以在这里一个个进行介绍。有些函数比较简单,只给予文字描述,而有些函数会给出示例代码帮助理解。 1、abs(x):返回一个整...
    • lisong694767315
    • lisong694767315
    • 2014年08月31日 15:08
    • 3255

    Python之架构 语法 数据结构 内置模块 标准库等概览

    Python属于 面向对象 解释型 高级动态计算机程序设计语言 了解一门语言 当先了解它的整体架构、基本语法、内置数据结构、内置函数、标准库以及运行模式、编程模式等。 1、Python总体架构...
    • lifanping
    • lifanping
    • 2017年11月09日 22:17
    • 88

    Linux网络IO并行化技术概览

    转自:http://codinginet.com/articles/view/201605-linux_net_parallel 过去的十年中互联网经历了爆发式的增长,这背后有什...
    • icycode
    • icycode
    • 2016年11月03日 10:59
    • 678
    内容举报
    返回顶部
    收藏助手
    不良信息举报
    您举报文章:XML概览
    举报原因:
    原因补充:

    (最多只允许输入30个字)