• 热门标签

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

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

1. 接收到片
段上下文
说明
2. 请求片段

3. 接收到片
段体
4. 用相关上下
文信息解析
XML 接收应用程序片段体
程序段体形式如下:
程序清单8 - 7 7
这样我们就仅采用一个文件:
程序清单8 - 7 8
值得注意的是我们不再为程序段体指明位置—它被认为假定在< p : b o d y >元素。这个方案
仅需要一个来回即可到达服务器(见图8 - 1 5)。
图8-15
这个技术使我们减少了达到服务器的循环次数,并且减轻了服务器应用程序本身的复杂性。
288使用XML 高级编程
下载
XML片段服务应用程序
XML接收应用程序
1. 分组包括片段的
专门上下文说明
并且片段被接收
2. 分组未解包,片
段的上下文说明
并且片段本被提

4. 用相关上下
文信息解析
片段体
8.5.7 小结
X M L程序段交换提供了一种方法,将一部分X M L文档和足够的环境信息叠加在一起发送到
接收方,使得这些文档对接收方真正有用。让我们看一下程序段发挥作用的集中方式—例如
允许多个作者同时操作文档,或者减少通过网络传输并经由X M L处理器处理的无用信息。不过
返回的程序段必须对应于原始文档的邻近元素,这就可能使对原始文档的操作变得复杂。不过
目前还没有适用性广的识别片段处理器,熟悉程序段和上下文的概念当会使你为程序段做准备
当它们开始出现的时候。将各种X M L技术集中起来, X F I或许可以被用于传输通过查询或者通
过利用XLi n k生成的程序段连结所产生的部分程序段文档。
8.6 查询
我们已经了解了如何从X M L文档链接并指向它们的不同部位。如果能够利用一种查询语言
来获取某一部分的X M L文档并对之进行操作,就非常方便了。这下面的这一部分里,我们将讨
论一下查询X M L文件并从中提取内容的几种方法。
8.6.1 什么是查询语言
如果你使用过关系数据库,可能熟悉一种形式的查询语言: S Q L (结构化查询语言),允许使
用者获得数据库中包含的信息,并可以以几种方法对数据进行操作。在你深入了解查询X M L文
档和原始资料这个主题之前,我们将看一下查询语言是如何工作的。那么现在让我们看一下一
些可能利用S Q L的操作,那么对X M L来说使用一些假定的查询语言应该是可能的。
1. 返回信息的行方式约束
当我们从数据库中返回信息时最基本的一件事情是仅返回与特定规则相匹配的行来对行记
录进行过虑,从而实现对信息进行限制。这可以利用S Q L语言中的S E L E C T语句的W H E R E子语
句来实现这个目标:
程序清单8 - 7 9
2. 返回信息的列方式约束
我们也可以通过从数据库中仅返回感兴趣的列来对列进行限制,达到对返回信息进行约束
的目的。可以在SELECT 语句中使用下面方式指定:
程序清单8 - 8 0
3. 总结返回信息
我们也有必要对返回的信息进行归纳总结,把几个不同行的一些信息块集成在一起形成一
第8章链接和查询使用289 下载
条信息。S Q L提供了一些可用的函数来实现在这个功能:
程序清单8 - 8 1
4. 对返回信息进行排序
对一个查询返回的信息进行重新排序的能力是非常重要的, S Q L提供了ORDER BY语句做
为实现排序的方法:
程序清单8 - 8 2
5. 内部连接
由于S Q L表的本身性质决定,我们常从多于一个的表中返回信息来得到一个有意义的结果。
在S Q L中这个操作通过inner join 和e q u i j o i n来实现:
程序清单8 - 8 3
6. 外部连接
在S Q L中,当我们从多于一个的地方提取信息的时候,常希望从一个表中返回信息,而与此
相关的信息在其他表中并不存在。例如,我们希望返回所有书籍和它们所属的类别,但是我们
也希望能够得到那些没有所属类别的所有书籍,这在S Q L中可以通过outer join操作来实现:
程序清单8 - 8 4
7. 表内容操作
利用S Q L命令对数据库中信息进行操作是可行的,可以在逐行的基础上对信息进行添加、修
改、删除等操作,这些命令分别是: I N S E RT、U P D AT E和D E L E T E:
程序清单8 - 8 5
290使用XML 高级编程
下载
这些功能确实超出我们假定X M L查询引擎的范围, X M L可以通过其他的方式来达到这个目
的,例如D O M。这个功能对一个强大的查询语言来说不是基本要求,而可以很方便地实现。
8. 从不止一个的源获得信息
S Q L可以实现经常从不止一个的地方返回信息的功能—有代表性的就是同一台机器上存储
有不同数据库的信息。例如,在S Q L服务器的S Q L执行中,这可以通过为表名加上所属数据库名
称的前缀来实现:
程序清单8 - 8 6
9. 程序处理
在大部分S Q L实现中,会产生一些形式的存储查询和存储过程, S Q L语法虽还坚持这一点,
但是处理是通过程序的方式。看一下下面存储程序的例子:
程序清单8 - 8 7
这个存储程序实现两个功能:首先,删除指定书籍的所有目录;其次,它为这本书添加一
个缺省目录。有很多结构可以使用,例如临时表、变量和指针,它们可以使存储程序成为操作
关系数据的强大工具。
下面我们将会看到对于X M L可行的这些技术是如何实现这些相同的功能。不过,在我们了
解那些技术之前,我们有必要知道和关系数据库不同的X M L文档是如何构造的。
8.6.2 关系型数据库和XML文档之间的区别
在我们对X M L文档进行查询的时候,为了解即将面临的问题,有必要简要地回顾一下X M L
文档的结构。首先为了对比的需要,我们来看一下S Q L的结构。
S Q L数据结构包含一系列表。每个表具有一列或多个列。例如,下面是我们正要讨论的
B o o k表和R e c S u b j C a t e g o r i e s表的S Q L表生成脚本:
程序清单8 - 8 8
第8章链接和查询使用291 下载
表8 - 8和表8 - 9显示了这些表的样本数据,第一个是B o o k表。
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML高级编程上(100)