• 热门标签

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

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

在编译以下代码之前,需要在项目中添加C D O支持,因此从Project | References对话框中选择类
型库“ Microsoft CDO 1.21 Library ”。如果找不到C D O库,说明你需要从O ffice CD 中安装
O u t l o o k中的组件。参照以下代码添加类C S i m p l e M a i l e r和S e n d F i l e ( )子例程:
第17章实例研究3—图书目录信息服务使用761 下载
程序清单1 7 - 5 9
你应该将以下行:
替换为表示电子邮件帐号的字符串,例如:
该命令的详细语法超出了本章的讨论范围。
要了解有关C D O的更多信息,参见《Professional CDO Programming》(I S B N:1 - 8 6 1 0 0 2 - 0 6 -
8)或《ADSI CDO Programming with ASP》(I S B N:1 - 8 6 1 0 0 1 - 9 0 - 8)。
为订阅者创建了发送电子邮件文件的类之后,让我们回到主窗体的P r o c e s s F i l e ( )函数并修改
它,如果为订阅者配置了电子邮件地址,它将使用邮件类发送文件:
程序清单1 7 - 6 0
762使用XML 高级编程
下载
对代码的修改包括:声明邮件组件实例,并在转换完成之后检查订阅者的C U s e r对象的
E m a i l属性。如果存在电子邮件地址,我们通过邮件将输出的结果发送给订阅者,并根据
C S i m p l e M a i l e r类返回的代码写入成功/失败日志。
再次运行项目,点击扫描目录按钮请求处理数据时,你将在日志窗口中看到有关邮件发送
的消息(参见图1 7 - 2 9)。
图17-29
每位订阅者都将在他们的收件箱中看到输出结果(参见图1 7 - 3 0)。
第17章实例研究3—图书目录信息服务使用763 下载
图17-30
O u t l o o k等大多数电子邮件客户都能够自动启动相关的查看程序,使得你很容易看到H T M L
内容。
17.2 小结
在本章中,我们介绍了如何使用V B类模块而不是X S LT转换X M L数据。该方法是建立在
X S LT的原理基础之上的,它并不是V B所特有的,你也可以用其他语言来实现。
选择本章介绍的方法或者X S LT主要取决于你编写的应用程序。X S LT是一种功能相当强大的
语言,但是它受到当前规范的限制,而且不能简便地执行数据库查询,以及高级的单文件入多
文件出的转换。
764使用XML 高级编程
下载
下载
第18章实例研究4—SOAP
提起这件事我就痛苦。很久以前(实际上,大约1 8个月之前),我写了一本名为《P r o f e s s i o n a l
DCOM Application Development》的书(ISBN 1-861001-31-2)。虽然这本书是以DCOM命名的,但
它不仅仅是关于D C O M的。事实上,它从非常广泛的角度讲述了如何利用M i c r o s o f t在这几年推出
的各种技术构造企业级应用程序,这些技术包括M T S、M S M Q、A D S I及Microsoft Clusters等。当
然还包括DCOM。
问题是书的封面上的“ D C O M”格外醒目(请注意,封面上还有我的大照片,坦白地说—
这使情况变得更加糟糕)。如果我遇到的某个人恰巧知道我写了这本书,通常随之而来的就是一
场争论:D C O M的可行性到底如何。偶尔,有人会客气地询问我目前为他们做的项目为什么不使
用D C O M。
当然,问题的根源在于虽然从理论角度讲D C O M是个很巧妙的概念(正如“嘿,我们为什
么不建立一个系统,然后在不做任何修改的情况下在各种环境中实施”),但是它不像最初看起
来那样是个通用的万能药。首先, D C O M是重负载的有线协议( wire protocol ),尽管在非
Wi n d o w s平台上也存在着相应的版本,可是它必然滞后于Wi n d o w s版本。最关键的,如果不争得
网络管理员的同意, D C O M无法通过防火墙。
因此,这就是为什么当我听说S O A P之后感到非常兴奋的原因。最重要的, S O A P是一个纯
粹的有线协议,它不要求使用任何O R B技术(M i c r o s o f t或其他厂商和组织)。它能够很好地处理
防火墙问题。第11章详细介绍了S O A P,在本章我们将看看它的实际应用。我打算用以前书中的
一个例子为例,使用S O A P重新实现它,并加以说明。在本章的实例研究中,我们将使用本地的
C O M和S O A P实现面向全球的订单输入应用程序。我们将使用包含ATL 3.0的Visual C++ 6.0编写
C O M对象;如果你对此不熟悉,我推荐你阅读Richard Grimes 的《Beginning ATL 3 COM
P r o g r a m m i n g》(ISBN 1-861001-20-7)和《Professional ATL COM Programming》(ISBN 1-
8 6 1 0 0 1 - 4 0 - 1)。我们将建立两个可选的服务器—一个在Windows NT上(使用Visual Studio
C++ 6.0和M F C),另一个在L i n u x上(使用标准C)—以说明它是真正跨平台的。如果可能的
话,我们将使用D O M解析SOAP XML内容,否则我们将自行解析X M L内容。
18.1 追根溯源
如果你看过《Professional DCOM Application Development》(如果你还没看过,为什么不买
一本呢?),可能还记得一个很奇怪的例子,居住在U l a a n b a a t a r的唱片收藏者从Tierra del Fuego
的一台主机上订购六十年代迷幻乐的慢转密纹唱片,如图1 8 - 1所示。
这个例子实际上有三个版本(也许我记错了,应该是四个版本),它们分别采用以下三种方
式:基本的逐字段远程验证订单输入项,根据值排列输入项进行本地验证,以及使用M S M Q通
过可靠的消息队列发送订单对象。现在,我们准备构造使用S O A P的版本。
图18-1
我们的订单输入和验证C O M对象O r d e r只有一个接口I O r d e r,该接口提供了五个属性和一个
方法。每个属性对应于订单中的一个字段,它们的验证需求略有不同,参见表1 8 - 1。
表1 8 - 1
字段验证
C u s t o m e r I D 必需的,只能包含字母
A r t i s t 必需的,只能包含字母
Ti t l e 必需的,只能包含字母和数字
L a b e l 可以为空;如果存在,只能包含字母
P r i c e 必须是有效的美元价格
接口提供的唯一方法S u b m i t ( )用于将订单的详细信息写入结构化文件( c : \ o r d e r. d a t)。项目中
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML高级编程下(74)