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

XML高级编程上(69)

时间:2010-08-09 13:05来源:蓝天飞行翻译 作者:admin 点击:
  
本章提供了关于S A X接口起源的一些信息, S A X接口被大多数解析器实现支持。
基于事件是S A X的特性和有别于D O M接口的地方。本章讨论了一些导致你使用一个基于事
件的接口而不是D O M的因素。
本章讲述了一个简单的S A X应用程序的结构,以及三个主要类之间的关系:应用程序、解
析器和文档处理器。本章给出了几个程序例子,说明如何使用这些类编写S A X应用程序。
本章给出了S A X应用程序的一些重要的设计模式,特别是筛选器、管道模式和基于规则
第6章SAX 1.0: XML简易API使用189 下载
模式。
最后,本章还介绍了有望在稳定的SAX 2.0规范中出现的特性。
最后应该提醒一句。本章给出的所有程序例子也可以用X S LT更加容易地编写,我们将在第
9章里讲述X S LT。当然这并不意味着不需要S A X了:J a v a应用程序可以做很多X S L不能做的工作
—例如,加载数据到关系数据库;而且J a v a应用程序一般要快得多。但是在决定使用S A X之前,
仔细地考虑你要解决的问题是很有必要的,因为很多情况下,使用X S L方法,或用X S L做预处理
的混合方法可能会更好一些。
190使用XML 高级编程
下载
下载
第7章命名空间和模式
在这本书里我们所了解到的定义X M L词汇的工具—就像D T D那样组织得非常好的X M L基
本规则—在W3C XML1.0推荐书里作了介绍。它们是X M L世界的基础部分,为应用开发者定
义了核心功能,允许我们(以及其他人)生成标记词汇以用来描述我们目前所处在的困难领域。
但是在我们准备掌握这些技术的同时,特别是在比较大的实际应用里,通常是希望我们在计划
里多一些功能性的东西。
在进入这一章之前,让我们先看几个我们可以利用的问题。不过,只要我们在头两页看到
了什么是我们正在错过的,就不会让这些问题干扰你,我们将在本章剩余的篇幅里去阐述我们
提到的所有问题。一些问题你可能已经遇到过了,鉴别其他问题可以防止你花大量毫无结果的
时间去钻牛角尖。
首先,在第3章里我们已经提到了D T D的一些缺陷。这些缺陷主要围绕在它们是用语法而不
是用X M L来描述,以及它们表达得不够充分。于是我们要做的第一件事将是再回顾一下D T D的
这些问题,并尝试一下解决它们的几种办法。这样做将帮助我们把力量集中在一些其他与定义
我们自己标记有关的问题上。
其他你可能考虑的问题是关于每个人是否有能力去创建他们自己的标记。你可以大致想象
一下每个人用相同的元素名称去定义不同的东西。比如说,如果你考虑使用“ m o n i t o r”这样的
元素,那么它在不同的环境将有几种不同的意思。如果你在计算机外围设备使用一个D T D,
“m o n i t o r”可能指的是计算机屏幕,同时在音乐制作间里扬声器通常也叫做“ m o n i t o r”。如果这
里有一个学校D T D,“m o n i t o r”可能指的是一个被赋予几种职责的学生,然而在原子核电站,
“m o n i t o r”可能放在报警的地方。即便意思相同,在两种不同的定义中,其内容也会发生改变。
面对元素的这些潜在的不同用途,我们需要一种方法去区分元素的特定用途,特别是我们在同
一个X M L文档里混用不同的词汇。为了解决这个问题,这里有个W 3 C组织提出的称为XML 命
名空间的规范,它允许我们在一个命名空间定义元素的前后联系。
而且,我们还需要把由于遵照不同的D T D而将来自不同地方的X M L文档结合起来。这时,
我们就可以描述大量的信息,而单一的D T D不合适并很难让读者去理解,或者说它可用于电子
商务,在那里我们需要把商业伙伴的数据和我们自己的数据联系起来。然而, X M L推荐书没提
供不修改或新建D T D而在单一文档里混合D T D的方法(通过外部参考文档)。
进一步考虑,随着越来越多的行业标准D T D不断产生,已经存在与你涉足的领域相关的
D T D这种可能性就越大。如果现有的D T D对于你眼前的应用不太完美,还不如重新创建一个新
版本,这可能对于在各个分离的D T D中添加你自己的定制信息非常有帮助,它还可以允许你以
标准格式交换确定的子集信息。不过我们不能轻易用D T D做到这一点。
这些问题变得越来越重要,特别是考虑到X M L提供商在电子商务领域的承诺,在这个领域
不同的公司与用户以固定的格式交换数据非常有意义。从代码读取D T D并与文档一致是可能的,
但这不是一件简单的事情。于是我们需要几种方法去研究不同的和相近的比较词汇,以便我们
能建立一种联系。到此, W 3 C组织正在致力于被写入X M L ,称作XML 模式具有可选性DTD 模式
的工作。
这种可选计划语言将标明这些问题以及我们将要在本章剩下的篇幅里看到的一系列D T D的
其它缺点。但我们首先通过从多源建立单一X M L文档的方式,大概看一下一部分问题。
使用相同的元素名称,依据不同的D T D建立起属于不同的模式来源,依此来源建立单一
X M L文档的问题涉及到词汇的数据(但它们已经被建立起来)以及这些规则的来源。X M L组织
和它的支持者们已经开始这些问题方面的工作,其结果对于正在出现的基于X M L的电子商务很
有帮助。如果你对利用X M L关联有分离的团体建立起来的不同类型的系统很感兴趣,你需要理
解这些X M L世界新的扩充。
这一章将要揭示一些X M L组织致力于解决这些问题的成果。它将给你提供两个方面的知识:
命名空间和X M L模式。命名空间帮助X M L词汇表设计者去将复杂的问题分解成细小的问题,以
及根据需要混合多意词来描述单一X M L文档里的问题。模式允许词汇表设计者去建立更多而准
确的词汇定义,而在过去要靠D T D和X M L语法才能做到的。
这两个工具回答一些当利用X M L去处理模棱两可的问题时出现的问题。特别是命名空间和
XML 模式允许X M L设计者和程序员能够做到:
• 更好地组织围绕一个复杂问题的词汇表。
• 当转入和转出数据时,提供一种方法去保留强大的录入功能。
 
中国航空网 www.aero.cn
民航翻译 www.aviation.cn
本文链接地址:XML高级编程上(69)
 
------分隔线----------------------------