表面上看,XML文件与HTML文件比较相似,都以一对相互匹配的起始和结束标记符来标记信息,但二者功能不同,HTML的标记符用来显示数据,XML的标记符则是描述数据的性质,后者可以多种方式显示,这和把地址簿的信息放在数据库的字段和记录中而不是放在字处理器产生的清单中的道理一样,数据库可以让你把地址簿中的信息合成到标签、信封、信件或其它任何想要的载体上面。最终,就是把这份XML菜谱文件合成到一种表现语言中,如HTML上显示出来。
XML的标记符也可以由其他应用软件进行深入的处理,你可以告诉其它程序如何使用这些有意义的标记符;也可以通过编码把标记符中的内容放入数据库的某个域中,然后把它输出到一本书的硬拷贝中;还可以用一个支持XML的字处理器使网页的出版轻而易举;等等。这就是XML的本质:使标记对人和机器都可读。
所有基于Web的开发人员都有体会,那就是HTML在高级Web应用中有它固有的一些缺点:
1. 它是一种表示技术,它包含了关于如何显示信息的标签,但是标签和数据是结合在一起的,很难进行分割
2. 它的标记集合是固定的,你不能在自己的应用中扩展HTML标记,而且HTML是"扁平"式的结构,你不能指定数据的层次结构。
3. 它不允许用户对数据进行变换以便进一步进行处理,HTML实际上是由服务器产生的,客户端从某种意义上只是起到显示的作用。
4. 它对数据只提供了一个"视图",如果你想要得到不同的视图的话,你必须重新生成一个HTML网页。
5. 它的格式既不适合机器分析也不适合人阅读它的源码,而且它的格式要求比较松散,HTML解释器采用的是尽量解释的机制。这样造成的一个弊病是同一个页面在不同的浏览器中可能显示的结果大不相同。
XML就是为了弥补这些缺点而出现的,所以说,这些HTML所不具有的功能都是XML所具有的。现在我们再来总结一下XML的优点:
1. XML可以用于本地计算的数据。传递到桌面的数据可以进行本地计算。XML解析器可以读取数据,并将它递交给本地应用程序(例如浏览器)进一步查看或处理。数据也可以由使用XML对象模型的脚本或其他编程语言来处理。
2. 可以为用户提供正确的结构化数据视图。传递到桌面的数据可以以多种方式表示。本地数据集,可以根据用户喜好和配置等因素,以适当的形式在视图中动态表现给用户。
3. 允许集成不同来源的结构化数据。一般情况下,使用代理,在中间层服务器上集成来自后端数据库和其他应用程序的数据,使该数据能够传递给桌面或者其他服务器,做进一步聚合、处理和分布。
4. 描述来自多种应用程序的数据。由于 XML 是可扩展的,因此它可以用于描述来自多种应用程序的数据,从描述 Web 页面集合到数据记录。由于数据是自描述的,因此不需要数据的内置描述,也能够接收和处理数据。
5. 通过粒度更新来提高性能。XML 允许粒度更新。开发人员不必在每次有改动时都发送整个结构化数据集。有了粒度更新后,只有改变的元素才必须从服务器发送到客户机。改变的数据可以在不必刷新整个页面或表的情况下显示。