| 文章首页 |
|---|
| XML学习教程:XML与标准化(上) |
| 1.1 为什么使用XML? |
| 1.2 什么是XML? |
| 1.3 数据的结构表示 |
| 1.4 XML文档 |
| 1.5 数据是从表示和处理中分离出来的 |
| 1.6 使XML数据自描述 |
| 1.7 XML数据处理 |
| 1.8 开放式标准 |
| 1.9 从XML中受益 |
| 10 前景 |
6 使XML数据自描述
在XML中,"文档类型定义(DTD)"可以伴随文档,且文档类型定义实质上定义文档的规则,例如哪些元素可被显示以及元素之间的结构关系。当接收应用程序没有传入数据的内部描述时,DTD将帮助验证该数据。然而,在XML中,DTD是可选的。
与DTD一起发送的数据称为有效XML。此时,XML语法分析程序应对照DTD中定义的规则校正传入的数据,以确保该数据被正确构造。没有与DTD一起发送的数据称为结构良好的XML。这里,可以使用基于XML的文档实例,如以上显示的层次结构气象数据,可用来隐含地描述它自己。
对于有效XML和结构良好的XML,XML编码的数据是自描述的,这是由于描述标记和数据是混合的。XML使用开放的、灵活的格式,在任何需要交换和传送信息的地方均可使用XML,这使得XML功能更加强大。
例如,可以使用XML描述有关HTML页的信息,或使用XML描述商业规则中包含的数据或电子商务交易中的对象,如发票、采购定单和定货单。由于XML是与HTML分离的,所以可以将XML添加到HTML文档中。W3C定义了一种格式,根据该格式,可以将基于XML的数据或XML数据岛封装到HTML页中。通过将XML数据岛嵌入到HTML页中,并使用XML中包含的语义信息,就可以根据传送的数据生成多个视图。此外,还可以使用XML强制应用程序,如分布式打印、数据库搜索及其他程序。
DTD本身规定了有限的XML文档规则,这与XML的初衷有所违背:XML采用可扩展的标记希望能够表示各种数据,但DTD又规定了有限的XML文档规则,限制了XML文档。架构(Schema)是XML文档规则的正式规格,即元素名称,架构表示文档中允许哪些元素以及允许哪些组合。如XML数据工作组(英文)中定义的新架
构语言,符合W3C的"XML数据和文档内容说明(DCD)"建议提供了和DTD一样的功能。但是,这些架构是可扩展的,所以开发人员可用附加的信息(诸如那些数据类型、继承和演示文稿规则)来扩展它们。这使得这些新的架构语言在功能上比DTD强大得多。
除了XML数据和DCD外,Microsoft和其他公司还建议用XML自身来表达XML文档架构的词汇。这使XML数据能够描述它自己的结构。表达XML内部的架构给XML格式添加了巨大的能量,因为它使检查某些数据的软件了解它的结构成为可能,而不用任何事先内建数据结构的描述。
使用架构,作者正好可以定义在文档中允许什么样的元素名,以及在每个元素中允许什么样的子元素、属性和关系。作者可从其他架构中引入片断,以及通过继承来扩展类型。于是,在保留了词汇树结构简单性的同时,还允许元素间的复杂关系。
作者可以发明他们自己的架构,或者共享别的作者创建的架构。读者可以检查架构参考以检验已经收到的文档的类型是否正确。他们还可以使用架构中的信息来自动检验文档的结构。
想使用XML的公司,需要一个寻找关于其他公司和应用程序支持的架构、文档和公司进程的信息的简单办法。想象一下消费者要付出的巨大代价,相当于每一家公司都要定义它自己的发布信息的方法。即使是Web,建立和维护Web站点的费用也超出了某些公司的能力。有无数的公司可以发布他们的信息,但是缺少如何用安全的、可控的方式来发布这些信息的标准,这势必导致成千上万种不同的执行方法、导航方式和内容深度。允许这种"混乱"状态泛滥的成本负担将波及消费者。
我们已经选择了通过创建和管理来最大限度克服此问题。SVG中国(ChinaSVG.COM) 该站点将让你了解成千上万应用程序中的XML、XSL、SVG和相关信息的大门。
如果你喜欢这篇文章,请阅读本文相关的下列内容:
