WEB开发网
开发学院数据库DB2 DB2 XML 编程,第 4 部分: 在基于 Web 的 DB2 应用... 阅读

DB2 XML 编程,第 4 部分: 在基于 Web 的 DB2 应用程序中集成来自不同数据源的数据

 2009-11-11 00:00:00 来源:WEB开发网   
核心提示: 因为应用服务器仅仅创建 SOAP 包装器并执行一个 URL 调用,所以如果 AJAX 的安全限制允许的话,DB2 XML 编程,第 4 部分: 在基于 Web 的 DB2 应用程序中集成来自不同数据源的数据(7),也可以从客户机直接执行 SOAP 调用,尽管在 Web 客户机中使用 SOAP 驱

因为应用服务器仅仅创建 SOAP 包装器并执行一个 URL 调用,所以如果 AJAX 的安全限制允许的话,也可以从客户机直接执行 SOAP 调用。尽管在 Web 客户机中使用 SOAP 驱动程序直接调用数据库是可能的,但是由于安全原因这种方式并不合适,应该改进 SOAP 驱动程序来防止这种做法。

getHotelRates 存储过程接受一个 XML 参数,其中包含 OTA 请求。XQuery 从输入的 XML 中提取出 HotelCityCode,并用它搜索和列出包含匹配的 HotelCityCode 属性的所有旅馆。


清单 10. getHotelRates 存储过程
CREATE PROCEDURE getHotelRates( IN request XML ) 
DYNAMIC RESULT SETS 1 
LANGUAGE SQL 
BEGIN 
DECLARE c_cur CURSOR WITH RETURN FOR 
Select XMLQuery('declare namespace ns1 = "http://www.opentravel.org/OTA/2003/05"; 
$info//ns1:HotelDescriptiveContents' passing info as "info") 
from hotel 
where xmlexists('declare namespace ns1 = "http://www.opentravel.org/OTA/2003/05"; 
$info//ns1:HotelDescriptiveContents[@HotelCityCode=$req//ns1:HotelRef/@HotelCityCode]' 
passing request as "req", info as "info" ); 
OPEN c_cur; 
END 

然后,将从 db2soapdriver 返回给应用服务器的 SOAP 响应发送回客户机,而不做任何修改。这再次说明,在 XML 模型编程方式中,数据库成了重要的参与者,而且在许多情况下应用服务器仅仅作为交换信息的中介。

当客户机从应用服务器接收到响应时,它调用 getRatescallback。使用 DOM 解析器解析返回的 SOAP 响应。DOM 解析器会处理 SOAP 响应中的名称空间。

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:DB XML 编程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接