一、什么是XML
eXtensible Markup Language ——可扩展标记语言
1、标记( markup )及标记语言:
markup的含义是指插入到文档(document)中的标记
标记:是以标志的格式附加在文档中的。标志赋予文档的某一部分一个标记的标识,它由一种特殊的符号构成。
标记,用通俗的语言说,就是给文档作“记号”,比如说文档这一部分是什么内容,那一部分是什么内容,或不同部分的格式如何,用某个符号作个标记,别人一看就明白。比如我们中学所学课文的段落大意。
标记语言(markup language):
使用直接插入在文本中的标记来描述文本的各种块和部分。
就是对文档的哪部分是内容,哪部分是标记,以及这些标记的含义的形式化描述。
2、标记的表示方法:
许多标记都是由开始和结尾的标志成对构成的。这里用标签(tag)来表示。
标签:写作<tag></tag>——开始、结束
如:<BOOK>数据库技术</BOOK>
“成对出现,开合结构”
3、标记的意义
标记是用来定义文档的一块或一部分的,描述了它们在文档中所发挥的作用。
标记可以不断细分下去,就象一个包,最外面一层用一个标记,里面层层细分,每一层都可以用一个标记,这样内容被层层解析,这部分的内容就越来越明晰。即通过层层解析、标注,可以给文档提供更为精确的描述。
4、标记语言与程序语言的区别:
标记语言不是程序语言。程序语言构造一系列命令,然后被解释或编译成程序或应用程序。标记语言只是针对文档。
二者的根本区别:程序语言产生程序或应用,标记语言只产生文档。
总之,标记并不是去创建各种与平台无关的应用程序,而是将注意力集中在如何创建与平台无关的文档,让这些文档能够被任何懂得标记的应用程序所读取——通用性文档。
二、XML的特性
XML是Extensible Markup Language的简称,中文名译为“可延伸性标示语言”或译为“可扩展标识语言”。
从构词上讲分二部分:
一是“可延伸”“可扩展”(Extensible),
二是“标识语言”(Markup Language)。
标识语言——是对文档作标记的一种语言或符号。XML就是给文档作标记的一种语言。 “可延伸”“可扩展”——就是文档设计者可以根据自己的需要对文档作无限延伸的解析标记。——自由性、扩展性
XML是一种元标记语言,提供一种描述结构数据的格式,可以让用户自行定义自己的标记语言。
元语言:元语言就是一套用以说明不同格式的句法规则。
元:最初,原始,最基本的,根源;可组装、可装配。有了这种最基本的规则,任何人可以用作标引。XML本身不仅是一种标示语言,同时,它制定了一个规则让大家来遵循,所以说它是一种元语言,或元标记语言。
通用性——XML是一种能够运行在任何平台和操作系统上的标记语言
通过XML标记以后的文档具有通用性,可以在任何平台或操作系统间进行。
不同的操作系统通常有自己的数据形式,其它的操作系统未必能识别和处理这些数据,通过XML标注以后的文档格式,具有通用性,克服了这种缺点。
XML比HTML之类的传统标示语言更具优越性。HTML之类的传统标示语言是用来定义某一类文件的格式,以便于浏览或打印,而XML则是可以用来对文件的具体内容进行解析标示。
XML又是一种特殊的语言格式和语法,它使文件很容易地让人阅读,又很容易让计算机程序来辨识。
总之,XML是一种标示语言,还是一种元标记语言,又是一种可扩展性标识语言,主要对文档的内容进行标示,具有通用性,很容易让人和计算机来阅读和辨识。
XML是一种电脑程序间交换原始数据的简单而标准的方法,其最重要的作用是从根本上解决了应用系统间的信息交换。
XML不仅作为Internet网上的一种数据发布语言出现,同时,已成为计算机行业标准的数据交换格式。由于XML格式被广泛接受,所以有各种各样的可用工具来辅助对它的处理,包括浏览软件和一些数据库工具。
目前,所有的主流数据库管理系统都开始支持XML,比如在ORACLE 8i以上,DB2 7.0以上,SQL Server2000中,都直接支持XML文档到数据库的双向数据读写。
三、XML的产生与发展——开发公司
XML是根据一个国际标准Standard Generalized Markup Language (SGML)-International Organization for Standardization(ISO)制定的。
XML由“全球信息网发展协会”(或万维网联盟)(World Wide Web Consortium,W3C)开发。
1996年W3C专门成立了XML工作小组,1998年2月W3C公布了XMLl.O标准规范,2000年发布了XMLl.O标准的第二版。
四、SGML
1、出现
20世纪60年代,IBM公司为了解决操作系统间文档的通用性问题,开发出一种通用标记语言(GML),后由GML发展为通用标记语言标准SGML(standard for Generalized Markup Language ),SGML被国际标准化组织(ISO)采纳,并收录在ISO8897中。
标准通用标记语言(SGML)出现于20世纪60年代,由IBM公司的人员创建。
当时是为了解决将文档从一个平台和操作系统环境下转移至另一个平台和操作系统中的问题。——不同的平台和操作系统都能够读取和处理的通用文档。
他们的第一个语言(GML),只在IBM内部使用。
几年后,GML的发明人——Charles Goldfarb、Ed Mosher等意识到他们已发明了一种容易地创建能到任何地方工作的便携文档的方法,这种文档不仅仅只在IBM内部交流。
GBM最终获得了国际标准化组织ISO的支持,并且在80年代成为了一个官方标准——ISO 8897。
不久以后,SGML被美国国防部采纳,作为正式技术规范。美国国防部要求所有和他们打交道的人都用SGML提交文档,以便文档能够非常容易地共享,保证文档的兼容性。SGML同样在许多大的组织被作为文档描述和输出的一种可选语言。
制定SGML的基本思想是把文档的内容与样式分开。
在SGML中,标记分两种:一种用来描述文档显示的样式,称为程序标记;另一种用来描述文档中语句的用途,称为描述标记。
一个SGML文件通常分三个层次:结构、内容和样式。
结构为组织文档的元素提供框架 内容是信息本身 样式控制内容的显示。
2、特点
SGML的主要特点:
(1)它可以支持众多的文档结构类型,例如布告、技术手册、章节目录、设计规范、各种信函等; (2)它可以创建与特定的软硬件无关的文档,因此很容易与使用不同计算机系统的用户交换文档。
3、构成
SGML文件本身包含3个部分:
(1)SGML声明(SGML Declaration)。 (!SGML)
(2)文档类型定义(Document Type Definition,DTD)。
(3)文档实例(Document Instance)。
4、优点
高稳定性
SGML的ISO 8879是国际标准规范,所以可信度相当高,其规范结构也相当的严谨,此外SGML已使用二十几年了,且自1996以来SGML的规范几乎是未曾变更过,所以SGML是相当成熟的一种通用性标记语言。
高可携性
SGML文件可以跨平台使用,如可以在不同的计算机硬件或操作系统上被使用,甚至可以被不同的应用软件来使用,支持其格式的应用软件与相关数据转换技术就多,所以SGML文件可以在各应用领域中被广泛采用,当然其可携性相对就可以提高。
高完整性
制定SGML时就考虑须满足广泛的使用者,所以其规范制定得相当完整,可以满足不同应用领域使用者的需求,
5、缺点
高复杂性
如果使用SGML语法规范来制定DTD中的元素(Element)、属性(Attribute)与内容实体(Entity),仅仅是定义就有400多页,可能需要花上数年的时间才能完全了解其中的标准,可见整个SGML系统是过于完善而变成复杂。
不止SGML本身复杂,连同要开发SGML相关软件也变得复杂,就开发SGML剖析器而言,用来检查SGML文件中的控制标记与格式,使用C++来撰写都得发上几万行以上才行
费用昂贵
从SGML的高复杂性,其相对衍生出来的就是高费用,先前也提过SGML通常被大企业应用在大量的数据上,在SGML被应用之前必需先制定其文件格式定义DTD,以供使用者能遵循这个DTD中定义的文件结构,但其应用的文件数据通常是复杂的,所以制定该DTD也需花长时间才能完成,所以开发能适用的DTD的费用足相当昂贵的。
6、总
SGML在其开发之初,是以作为一种规范性的标准为出发点的,因而重视详尽性,而忽视实用性成了它的致命弱点,可以这样说,SGML从来没有在网络上广泛应用过。具体而言:
第一、SGML是一个严格而完整的系统,方便软件应用并不是它的首要任务,所以SGML非常复杂,其复杂程度对于网络上的日常应用简直不可思议
第二、SGML十分庞大,既不容易学,又不容易使用,在计算机上实现十分困难
第三、在SGML中有许多语法语义标准,它们既不方便而且消耗昂贵,这导致开发SGML软件非常昂贵。目前比较便宜的SGML软件之一是Adobe Frame Maker,其标准版本价格为850美元,而Adobe Frame Maker+SGML是以1995美元售出的
第四,种种不足,导致了几个主要的浏览器厂商都明确拒绝支持SGML,这无疑造成了SGML在网上传播的最大障碍。
五、HTML
为了克服SGML的不足,1989年欧洲粒子中心的Tim Beners-Lee使用类SGML语法,开发了HTML(HyPerText Markup Language,超文本标记语言)。
HTML定义了一套标准的标记用于标注文档的格式,使文档具有丰富的表现形式,其目的是用于网页的设计。
<HTML>
<HEAD>
<TITLE>HTML例子标题</TITLE>
</HEAD>
<BODY>
<H1>文档例子!</H1>
<P>第一段</P>
<P>第二段</P>
</BODY>
</HTML>
1、特征
(1)HTML 通过在文档中添加具有特定意义的标记来组织文档。
(2) HTML 所使用的标记都是预定义的,不同的HTML 版本具有不同的标记集。用户只能使用标记集中定义过的标记。
(3) 浏览器完成对HTML 文档的解释。浏览器中预定义了对特定标记的特定显示或处理方案。用户了解这个方案后,就可以在文档中添加相应的标记来达到对最后显示结果的控制。不同的浏览器对同一标记的显示或处理方案可能不同。
(4) HTML 的主要功能在于通过浏览器完成对信息的显示,即信息格式化的控制。
2、HTML的不足之处:
随着Internet及其应用的迅速发展,HTML逐渐暴露出其局限性:
(1) HTML只标注文档的格式无法描述数据内容,而这一点恰恰是数据检索、电子商务所必须的。HTML 是一种描述如何表示 Web 页的格式,没有智能搜索、数据交换、自适应表示和个人化的标准。
(2) HTML对数据表现的描述能力是十分不够的。如HTML还不能描述矢量图形、科学符号等对象,目前只能通过图象来表现这些对象。
(3) HTML实例置标语言的地位,完全不能适应对新标记需求的发展需要。
(4)HTML是一个定型的标识语言,它用固定的标记来描述,显示网页内容。
六、XML
XML是SGML 面向网络的精简版本,一直精简到几乎与HTML一样的易学易用。SGML中一些复杂且不常用的规范在XML 中被去除,以便于用户学习、理解和使用,也可以使软件开发商较为容易地开发相关软件,而成本则大大降低。另外,从文件结构上,XML 文件也不必像SGML 文件一样必须有文件类型定义(DTD)。这也有效地降低了XML 文件的复杂程度。更强调了面向网络应用的能力。
特点:
XML它既保留了SGML的强大功能,又减少了SGML的复杂程度,它将内容与表述格式分开,故具有伸缩性与灵活性双重属性。 XML将结构、内容和表现分离,使得同一个XML源文档只写一次,就可以用不同的方法表现出来:在计算机屏幕上,在手提电话显示屏上,在为盲人服务的设备上翻译成语音,等等。它可以在可能开发的任何通讯产品上工作。
尽管互联网是XML最大的应用方向,然而XML并不仅仅只是HTML的下一个版本,XML在最大程度上继承了SGML的优点——即XML是完全面向数据的。
XML纯用于规范化定义数据对象,一个定义完整正确的XML对象具有良好的内聚性,并完全独立于数据的外部表现形式.除非这种联系是定义者特意添加的(如将显示形式作为元素的一种属性)。 事实上,在XML产生以后,除了某些复杂度极高的特殊应用环境,XML显然是较SGML更有效率、更实用、更易于流行的信息流标准。
(1)XML保持了用户界面和结构数据之间的分离。
HTML 指定如何在浏览器中显示数据,也就是显示数据的格式,而 XML 则定义数据内容; 在 HTML 中,使用标记告诉浏览器以粗体或斜体等方式显示数据;而在 XML中,只使用标记来描述数据内容,如具体的城市名、温度和气压、空气质量等,或如一部书的书名、作者、出版时间、价格等。
在 XML 中,可以使用诸如“扩展样式语言 (XSL)”和“层叠样式表 (CSS)”之类的样式表,来表示浏览器中的数据。XML 把数据从表示和处理中游离出来。
如天气预报的信息(xml)可以显示在不同的设备上,如电视、手机或其他。
(2)把数据从表示中分离出来,能够无缝集成众多来源的数据。——多元化数据
可以将用户信息、采购定单、研究结果、帐单支付、医疗记录、目录数据以及其他来源转换为中间层上的 XML,以便很容易地联机交换数据。然后可以在 Web 上将按照 XML 编码的数据传送到桌面。
( 3 ) 与HTML相比,XML没有固定的标签集,允许的标签集可以根据需要进行特殊化。
HTML有固定的标签集,如<TITLE><E><H1><P>,XML标签可以由开发者自定义。——XML的扩展性和自由性 这项特性是XML在数据表示和交换中地位重要的关键所在,而HTML主要应要于文档格式化。
XML的特性:
XML是一种标记语言,XML语言不受任何实体的控制,也不归任何实体所有。XML可以扩展,XML标签可以被任何人创建并被其他人所采用。XML的特点决定了其卓越的性能表现。XML作为一种标记语言,有许多特点
(1)简单。
XML经过精心设计,整个规范简单明了。它由若干规则组成,这些规则可用于创建标记语言,并能用一种称作分析程序的简明程序处理所有新创建的标记语言。
(2)开放。
XML在市场上有许多成熟的软件可用来帮助编写、管理等,开放式标准XML的基础是经过验证的标准技术,并针对网络做最佳化。众多业界顶尖公司与W3C的工作群组并肩合作,协助确保交互作业性,支持各式系统和浏览器上的开发人员、作者和使用者,以及改进XML标准。 XML解释器可以使用编程的方法载入一个XML的文档,当这个文档被载入以后,用户就可以通过XML文件对象模型来获取和操纵整个文档的信息,加快了网络运行速度。
(3) 高效且可扩充。
使用XML可以定义无限量的一组标注。XML提供一个用于标记结构数据的框架。XML 元素可以将其关联数据声明为零售价格、营业税、书名、降雨量或其他任何需要的数据元素。 随着世界范围内的许多机构逐渐采用XML标准,将会出现对XML相应的搜索和处理数据的能力,一旦锁定资料,便可以使用任何方式透过电缆线传递,并在浏览器中呈现,或者转交到其他应用程序做进一步的处理,而不管该数据的应用程序如何。 XML提供了一个独立的运用程序的方法以共享数据,如使用DTD,不同组中的人能够使用共同的DTD来交换数据。用户的应用程序可以使用这个标准的DTD来验证其接受到的数据是否有效,也可以使用一个DTD来验证他自己的数据。
(4) 国际化。
标准国际化,且支持世界上大多数文字。这源于依靠它的统一代码的新的编码标准,这种编码标准支持世界上所有以主要语言编写的混合文本。 在HTML中,就大多数字处理而言,一个文档一般是用一种特殊语言写成的,不管是英语,还是日语或阿拉伯语,如果用户的软件不能阅读特殊语言的字符,那么他就不能使用该文档。 但是能阅读XML语言的软件就能顺利处理这些不同语言字符的任意组合。因此,XML不仅能在不同的计算机系统之间交换信息,而且能跨国界和超越不同文化疆界交换信息。
XML的好处:
1. 不同系统平台间的信息互通 2. 整合多种不同数据源的数据 3. 平衡客户端和服务器端的处理负荷 4. 以灵活多变的方式显示数据 5. 更精确的数据检索 6. 更长的生命力
七、SGML、HTML和XML的关系
HTML是SGML的一个应用, XML是SGML的一个子集
SGML (Standard Generalized Markup Language )是在文字处理应用中表达数据的一个方法。XML和HTML都是从SGML发展而来的文档形式。因此,它们都有一些共同点:
①相似的语法; ②带括弧的标记符的使用; ③都可使用DTD等。
1.从历史发展的历程上和彼此的影响上来讲
最早有了SGML,然后产生了HTML,在SGML和HTML已经成熟发展的基础上,针对HTML的一些不理想的方面设计产生了XML,它特意避免了很多HTML不合理的地方和SGML冗余的地方。XHTML则是为了更好的利用HTML的显示特性和XML的数据分离处理特性而设计的。
2.从实际的功能上来看,早期的HTML是把数据和显示融合在一起的,不可分离。而有了XML的出现,我们可以把数据和显示分离。我们使用HTML进行显示,把数据放在XML中。
3.从面向的适用对象上来讨论,原初SGML是提倡POP的思想的,也就是人和人交互的意思。HTML更多的是POM的思想,就是人和机器的交互。而XML则是MOM的理念,旨在在中间件(MIDWARE)上建立帮助不同软件产品和平台无障碍沟通的渠道。
4.从语言的格式上我们看到,HTML是松散的,它允许错误的存在,不同的环境会有不同的HTML显示效果,有些平台仍不支持HTML。