DB2 XML 编程,第 3 部分: 客户机中的 XML 编程
2009-11-11 00:00:00 来源:WEB开发网
清单 14. 生成 HTML itemInfo.find("//item",null,true);
htmlstr+='<tr><td>itemID<td>description<td>date<td>price<td>insurance';
for(var j=0;itemInfo.currentFind.length>j ;j++)
{
var id= itemInfo.getValue("@ID",j);
var description= itemInfo.getValue("@description",j);
var purchaseDate= itemInfo.getValue("@purchaseDate",j);
var price= itemInfo.getValue("@price",j);
var insurance= itemInfo.getValue("insurance/text()",j);
var currency= itemInfo.getValue("insurance/@currency",j);
htmlstr+='<tr><td>'+id+'<td>'+description+'<td>' +purchaseDate+
'<td>' +currency+price++'<td>' +insurance;
}
document.getElementById("profilediv").innerHTML=htmlstr;
}
注意,使用 XPath 搜索和遍历商品元素的客户端 JavaScript 代码和前面定义的应用服务器 Java 代码很相似。
对象数据模型
即使使用标准的对象数据模型方法,应用程序层数据对象仍然需要序列化为客户机可以理解的一种格式。如果对象很复杂,那么基本上有两种方式:
1. 在应用程序层中生成客户机页面并在 Web 页面的适当部分中填写数据(ASP/JSP 方式)。然后公开多个 API 来接受用户对数据的任何修改。这种方式的问题是:
它将客户机和应用服务器代码混在一起,导致一种糟糕的体系结构;
它要求创建多个 API 并提供 API 的文档记录,这样客户机才能传递回对数据的修改。
2. 生成一个数据结构,可以将它作为字符串发送给客户机。最适合表示这种序列化数据结构的格式是 XML。这种方式的问题是:
必须编写额外代码来执行序列化。
如果来自客户机的更新后数据是 XML,那么应用服务器中需要用更多代码向应用程序数据对象解释修改后的 XML。
如果必须用 XML 数据模型与客户机进行通信,那么在应用程序层本身中为什么不使用 XML 数据模型呢?
我们仍然需要操作保险费率 Web 服务的结果。因为这一信息是 XML 文档,所以需要先分解它并将信息放到对象模型中。如果数据在数据库中保存为 XML 格式,就可以将 XML 传递给 customerItemsWithInsurance 存储过程。这种方式的问题是,如果以 XML 格式存储数据,而在应用程序中使用对象模型,就会产生各种映射和转换问题。
如果数据在数据库中存储为关系形式,对数据库的查询会变得更复杂。另外,必须在中间层中编写更多代码,将关系数据映射到对象数据模型或 XML 数据模型。
结束语
在面向 Web 的体系结构中,数据需要序列化,然后才能在应用程序的不同层之间传递。对于在 Web 客户机和应用服务器之间传输复杂的数据,最合适的方式是 XML。在每一层中都可能需要查询、转换和更新数据,如果保持数据的 XML 本质,就可以使用基于 XML 的技术(比如 XPath、DOM 和 XQuery)操作数据。XML 数据模型编程方式可能成为解决业务数据集成问题的万能方法。
本文示例源代码或素材下载
- ››db2 对float类型取char后显示科学计数法
- ››DB2中出现SQL1032N错误现象时的解决办法
- ››DB2 锁升级示例
- ››db2诊断系列之---定位锁等待问题
- ››db2 命令选项解释
- ››XML 转成 数组对象
- ››XML注意的转义字符
- ››xml文件正确性验证类实现
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
更多精彩
赞助商链接