1. 具有良好的格式
XML 文档格式属于良好格式的文件。HTML 文件中的标记,有些是不需要结尾标记的,如<br>,有些网页缺少若干结尾标记,照样能正确显示。而XML 的标记一定要拥有结尾标记,例如:
<name>张三</name>
即,XML 标记一定是成双成对的。如果没有结尾标记,那么在结束的“>”前,需要有“/”,表示开头和结尾是在同一标记内,例如:
<book sales="yes"/>
2. 具有验证机制
XML 的标记是程序员自己定义的,标记的定义和使用是否符合语法,需要验证。XML有两种验证方法。一种是DTD,它是一个专门的文件,用来定义和检验XML 文档中的标记。另一种是XML Schema,用XML 语法描述。它比DTD 更优越,多个Schema 可以复合使用XML 名称空间,可以详细定义元素的内容及属性值的数据类型。
3. 灵活的Web 应用
在 XML 中数据和显示格式是分开设计的,XML 元数据文件就是纯数据的文件,可以作为数据源,向HTML 提供显示的内容,显示样式可以随HTML 的变化而丰富多彩。也就是说,HTML 描述数据的外观,而XML 描述数据本身,是文本化的小型数据库表达语言。HTML 数据和显示格式混在一起,显示出一种样式。XML 采用的标记是自己定义的,这样数据文件的可读性就能大大提高,也不再局限于HTML 文件中的那些标准标记了。由于XML 是一个开放的基于文本的格式,它可以和HTML 一样使用HTTP 进行传送,不需要对现存的网络进行改变。数据一旦建立,XML 就能被发送到其他应用软件、对象或者中间层服务器中做进一步的处理,或者可以被发送到桌面用浏览器浏览。XML 和HTML、脚本、公共对象模式一起为灵活的3 层Web 应用软件的开发提供了所需的技术。
4. 丰富的显示样式
XML 数据定义打印、显示排版信息主要有3 种方法:用CSS(Cascading Style Sheet)定义打印和显示排版信息,用XSLT 转换到HTML 进行显示和打印,用XSLT 转换成XSL(eXtensible Stylesheet Language)的FO(Formatter Object) 进行显示和打印。这些方法可以显示出丰富的样式,呈现漂亮的网页。
5. XML 是电子数据交换(EDI)的格式
XML 是为互联网的数据交换而设计的,它不仅仅是SGML 定义的用于描述的文档,而且在电子商务等各个领域使数据交换成为可能,如图1.2 所示。XML 能够应用于各种领域的原因,就是它具有到目前为止其他方法所不具备的数据描述特点,控制信息不是采用应用软件的独有形式,而是采用谁都可以看得懂的标记形式来表现,所以XML 最适合作为数据交换的标准,这也是XML 受人关注的原因。用 XML 可以对数据关系进行定义,形成特有的标准,因此,各行各业都在建立自己的行业化标准,以应用于网络上处理电子商务,把后台系统通过Web 站点表现出来。在特定的企业之间或在业界内归纳出一套标记集合,即约定用一套特定的XML 应用语言作为交流工具是很有价值的。XML 还可以作为数据仓库,一个XML 文档就是一个小的数据库,通过对数据关系的定义形成各种关系、属性的数据,实现数据交换、上下文检索、多媒体传输等。
6. 便捷的数据处理
XML 是以文本形式来描述的一种文件格式。使用标记描述数据,可以具体指出开始元素(开始标记)和结束元素(结束标记),在开始和结束元素之间是要表现的元素数据,这就是用元素表现数据的方法。标记可以嵌套,因而可以表现层状或树状的数据集合。XML 作为数据库,既具有关系型数据库(二维表)的特点,也具有层状数据库(分层树状)的特点,能够更好地反映现实中的数据结构。XML 还可以很方便地与数据库中的表进行相互转换。XML是不同数据结构体的文本化描述语言。它可以描述线性表、树、图形等数据结构,也能描述文件化的外部数据结构,因此是一种通用的数据结构。XML 使计算机能够很简易地存储和读取资料,并确保数据结构精确。由于XML 是以文本形式描述的,所以适合于各种平台环境的数据交换。同样由于使用文本来描述内容,可以越过不同平台的障碍进行正常的数据交换。当然,文本形式也会因为文字代码的不同造成不能阅读的问题,但在这一点上,XML 有着非常完美的解决方案,避免了一般语言设计的缺漏,可支持国际化及地区化的格式。
7. 面向对象的特性
XML 的文件是树状结构的,同时也有属性,这非常符合面向对象的编程,而且也体现出对象方式的存储,Oracle 数据库就使用了这种面向对象的特性。XML 是信息的对象化语言。DTD 和Schema 是界面或类(Interface 或Class),XML 是对象实例(Object),XSL 是方法和实现(Method 和Implement)。XML-Data 解决了XML 类的继承问题,而XML 中的资源(URI)寻址(URL)、物理实体等又构成了信息的组件(Component)。XML 的资源描述框架(RDF)是信息导航、浏览、搜索的用户接口(UI)标准。
8. 开放的标准
XML 基于的标准是为Web 进行过优化的。Microsoft 公司和其他一些公司以及W3C中的工作组正致力于确保XML 的互用性,以及为开发人员、处理人员和不同系统及浏览器的使用者提供支持,并进一步发展XML 的标准。由于 XML 彻底把标记的概念同显示分开,处理者能够在结构化的数据中嵌套程序化的描述以表明如何显示数据。这是令人难以相信的强大机制,使得客户计算机同使用者间的交互作用尽可能地减少了,同时减少了服务器的数据交换量和浏览器的响应时间。另外,XML 使个人数据只能通过更新布告发生变化,减少了服务器的工作量,大大增强了服务器的升级性能。XML 是信息的高层封装与运输的标准。因此XML 也是不同应用系统之间的数据接口标准,是所有信息的中间层表示,是中间层应用服务器(AS)的通用数据接口,甚至可以用于数据库技术的数据迁移过程、数据库报告格式中。
9. 选择性更新
通过 XML,数据可以在选择的局部小范围内更新。每当一部分数据变化后,不需要重发整个结构化的数据。变化的元素必须从服务器发送给客户,变化的数据不需要刷新整个使用者的界面就能够显示出来。以往只要一条数据变化了,整个页面都必须重建,这严重限制了服务器的升级性能。XML 也允许添加新的数据和更改原有的数据。加入的信息能够流入存在的页面,不需要浏览器发一个新的页面。
10. XML 是一个技术大家族
XML 是一套完整的方案,有一系列相关技术,包括文件数据验证、显示输出、文件转换、文档对象和链接等。这些将在后续章节中一一阐述。世界上永远也不会出现完美的语言,XML 也是一样,它也存在一些的缺陷。第一,它是树状存储的,虽然搜索的效率极高,但是插入和修改比较困难。第二,XML 的文本表现手法、标记的符号化等会导致XML 数据以二进制表现方法的数据量增加,尤其当数据量很大时,效率成为很大的问题。第三,XML 文档作为数据提供者使用,没有数据库系统那样完善的管理功能。第四,由于XML 是元置标语言,任何个人、公司和组织都可以利用它定义新的标准,这些标准间的通信就成了巨大的问题。因此,人们在各个领域形成一些标准化组织以统一这些标准,但是这些努力并不一定能够实现理想的结果。