• 热门标签

当前位置: 主页 > 航空资料 > 计算机 >

时间:2010-08-09 13:05来源:蓝天飞行翻译 作者:admin
曝光台 注意防骗 网曝天猫店富美金盛家居专营店坑蒙拐骗欺诈消费者

是它没有义务将D T D展示给执行调用的应用程序。如果我们仅仅希望解析器利用D T D验证文档
的有效性,那么解析器的该特征不会对我们构成任何影响。然而,如果我们希望查看D T D,就
需要能够展示D T D内容的定制的解析器。假设我需要了解C a t a l o g元素的内容模型。为了编写能
够根据D T D动态创建模板文档且允许作者填入空白的通用工具,这一功能是非常必要的。我们
还可以利用该功能告知文档的作者,当他面对文档中无效的标记时有哪些可选的修改方案。我
们曾经希望能够动态创建D T D,即:根据某些运行时的情况修改内容,但是如果没有能够读写
D T D的特殊A P I,我们只能望洋兴叹。就目前的XML 1.0解析器而言, D T D是只读的。实际上,
这方面的需求的确在不断增长。在不久的将来,我们希望看到能够自动发现D T D的内容(或者
通用的有效性模式)并可对之进行修改的自动化工具。
我们已经看到了有关D T D语法的实例。由于D T D元组声明的缺陷, R e c S u b j C a t e g o r i e s元素
的内容模型不得不重复三次C a t e g o r y元素。我们曾经在本章的前面看到一些非常复杂的内容模式,
但是它们需要依靠设计者的智慧。许多情况下,之所以采用复杂的内容模型,完全是为了摆脱
78使用XML 高级编程
下载
D T D元组工具的限制。在图书目录例子中,通过p u b D a t e和p a g e C o u n t属性,我们发现D T D需要
更加强大的属性数据类型定义机制。P r i c e元素本身本应该使用更强的数据类型定义。如果我们
的应用程序需要对来自X M L文档的数据进行操作,而不是单纯的显示,这方面的机制是至关重
要的。D T D在某些表示方面确实有待改进。
3.6 小结
文档类型定义为前一章介绍的格式正规的X M L提供了严格而精确的规则。通过几个简单的
标记声明,我们能够定义X M L文档的结构以及它所允许使用的内容。D T D为X M L应用程序提供
了以下三项功能:
• 精确的商业问题模型的文档。
• 模型与X M L解析器之间的标准通信方式。
• 验证有效性的解析器能够检测X M L文档中的错误。
第一点意味着我们将D T D作为分析和设计工具。你需要依靠D T D验证X M L的有效性,D T D
迫使设计者提供有关X M L词汇表的精确信息。X M L应用程序之间的通信是以它对词汇表的理解
为基础的,因此D T D向程序员和测试者指出应用程序能够描述的内容。
内部和外部D T D为应用程序提供了获取模型的标准方法。如果应用程序要求执行有效性验
证,解析器将寻找内部声明子集或者请求获取外部D T D。
验证有效性的X M L解析器可以看作是一种非常便利的错误检测机制。它能够发现基于X M L
的应用程序中的结构和内容错误,为进一步的逻辑检查扫清了障碍。为此,你应该尽可能保证
D T D中的声明详细而准确。你在D T D上花费的心血越多,应用程序出现错误的几率就越小。
第3章文档类型定义使用79 下载
下载
第4章数据建模与XML
X M L应用程序的成功与否取决于你真正使用的X M L文档的设计的优劣:这些文档不仅要携
带目前人们进行交流所需的信息,而且要足够灵活以适应未来的需要。本章介绍了在你设计
X M L文档时需要考虑的若干因素。
我们将从以下三方面讨论设计过程:
• 信息建模—理解文档所携带的信息的结构和含义。
• 文档设计—将你的信息模型转换为一组规则(或模式),以便创建真正的文档。
• 模式表示法—一种记录你的文档设计的技术,它使得文档设计能够被处理软件和人类用
户所理解。
4.1 信息建模
当我们在前一章介绍图书目录问题时,曾经进行了一些简单的信息建模工作。在本章,我
们将详细地讨论建模,并通过一些实际的例子说明它在设计基于X M L的信息系统中的作用。
信息建模的第一条规则是将精力集中于“现实世界”,而不是技术。信息模型是对一个组织
机构中所用到的信息的描述,它独立于任何I T系统。
• 如何将它结构化?
• 它有什么含义?
• 谁“拥有”它,谁负责保证它的时效性和质量?
• 它来自何方,最终会产生什么样的结果?
因此根据定义,对于信息建模的讨论不能过度针对于X M L。在本章稍后,我们将专门阐述
有关X M L的问题。
那么,在本书中有必要讨论建模吗?当然,因为如果你参加与X M L有关的项目,理解信息
建模是非常关键的。另外,虽然信息建模是独立于技术的,但是在介绍关系数据库设计的书中
常常会讨论建模问题,而且某些方面的论述往往有些偏颇。在这本专门介绍X M L的书中,我们
能够从另一个角度或许是更加全面的角度看待这个问题。
信息建模为什么如此重要?因为如果没有模型,就谈不上信息,有的只是数据。信息模型
定义了数据的含义。事实上,信息模型是必不可少的;唯一可以选择的是采用大家一致同意的
共享信息模型,还是冒险允许每个人根据自己的想法采用不同的信息模型(它不可避免地会造
成相互之间的误解)。如果使用共享信息模型,将带来无穷的机会。来自M i c r o s o f t的A d a m
B o s w o r t h、Andrew Layman和Michael Ry s在一篇文章(h t t p : / / b i z t a l k . o rg/Resources/ canonical.asp)
中曾有以下叙述:
⋯⋯我们早已开始着手实现一个曾经梦寐以求的目标:无论数据产生者位于何处,任何
数据消费者都能够通过某种工具与他们交互,并且这种通信是基于数据的含义,而不是
数据偶然的表现形式。
在本书中,我们将侧重于通用的原则,而非某些特殊的形式。如果你希望了解建模的方法,
例如:U M L(Unified Modeling Language,统一建模语言),有大量这方面的书籍可以参考,另
外,h t t p : / / w w w. r a t i o n a l . c o m /上也提供了完整的规范。在信息建模中,以下两个目标常常会产生
冲突:
• 获得绝对精确的定义。
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML高级编程上(33)