揭秘XML:XML到底是什么?

我们了解XML之前,我们必须要先找到HTML的原罪问题,只有知道了HTML其中的缺陷才能更好的认识XML的作用。




HTML的原罪:

不能解决所有解释数据的问题。如影音文件或化学公式、音乐符号等其它型态的内容。

效能问题。如需要下载整份文件,才能开始对文件做搜寻的动作。

扩充性、弹性、易读性均不佳。




为了解决以上问题,专家们使用SGML精简制作,并依照HTML的发展经验,产生出一套使用上规则严谨,但是简单的描述数据语言:XML。 XML是在一个这样的背景下诞生的─是不是能有一个更中立的方式,让消费端自行决定要如何消化、呈现从服务端所提供的信息?而XML目的即在于提供一个对信息能够做精准描述的机制,借以弥补 HTML 太过于表现导向的特质。




XML(eXtensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard
Generalized Markup
Language,标准通用标记语言)。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言
XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。




XML与Access,Oracle和SQL
Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,XML仅仅是展示数据。事实上XML
与其他数据表现形式最大的不同是:他极其简单。这是一个看上去有点琐细的优点,但正是这点使XML与众不同。


 

XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为
据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows、
Mac OS,Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。




为了使得SGML显得用户友好,XML重新定义了SGML的一些内部值和参数,去掉了大量的很少用到的功能,这些繁杂的功能使得SGML在设计网站时显得复杂化。XML保留了SGML的结构化功能,这样就使得网站设计者可以定义自己的文档类型,XML同时也推出一种新型文档类型,使得开发者也可以不必定义文档类型。




上面讲到了仅仅是XML的定义和定义之外的一点对比。重新回来看XML,简单说,XML就是一种数据的描述语言,虽然它是语言,但是通常情况下,它并不具备常见语言的基本功能——被计算机识别并运行。只有依靠另一种语言,来解释它,使它达到你想要的效果或被计算机所接受。




假如你是刚接触XML的新手,那么可能并无法从定义上是了解XML是什么。也许,你可以换个角度来认识XML是什么;从应用面来认识XML,从XML可以做些什么来认识它,这应该能比那更空洞的定义对你更有帮助




XML应用面主要分为两种类型,文档型和数据型。下面介绍一下几种常见的XML应用:




1、自定义XML+XSLT=>HTML,最常见的文档型应用之一。XML存放整个文档的XML数据,然后XSLT将XML转换、解析,结合XSLT中的HTML标签,最终成为HTML,显示在浏览器上。典型的例子就是CSDN上的帖子。




2、XML作为微型数据库,这是最常见的数据型应用之一。我们利用相关的XML API(MSXML DOM、JAVA
DOM等)对XML进行存取和查询。留言板的实现中,就经常可以看到用XML作为数据库。同时,这里要告诉一些新人,数据库和数据库系统,这两个概念是不
同的。这里顺便提一下XML对数据库系统的影响。在新版本的传统数据库系统中,XML成为了一种数据类型。和“传统”相对的就是一种新形态的数据库,完全
以XML相关技术为基础的数据库系统。目前比较知名的eXist。


3、作为信息传递的载体。为什么说是载体呢?因为这些应用虽然还是以XML为基本形态,但是都已经发展出具有特定意义的格式形态。最典型的就是
WEB
SERVICE,将数据包装成XML来传递,但是这里的XML已经有了特定的规格,即SOAP。不过这里还不得不说AJAX,AJAX的应用中,相信也有
一部分的应用是以自定义XML为数据,不过没有成为工业标准,这里不做详述。




4、应用程序的配置信息数据。最典型的就是J2EE配置WEB服务器时用的web.XML。这个应用估计是很容易理解的了。我们只要将需要的数据存入
XML,然后在我们的应用程序运行载入,根据不同的数据,做相应的操作。这里其实和应用2,有点类似,所不同的在于,数据库中的数据变化是个常态,而配置
信息往往是较为静态,缺少变化的。




5、其他一些文档的XML格式。如WORD、EXCEL等。


6、保存数据间的映射关系。如Hibernate。




这几种常见应用中,我们还可以根据其应用广泛程度,分为:自定义XML和特定意义XML。在1和2就是属于自定义XML的范畴;3至6则属于特定意义XML,或者说是XML的延伸。




总之,XML是一种抽象的语言,它不如传统的程序语言那么具体。

转自:http://news.csdn.net/n/20081208/121574.html