当前位置: 首页 > 图文教程 > XML家族 > XML > 使用PHP和AJAX的XML编程(3)

XML
XML简易教程之四
XML与HTML的结合(上)
XML与HTML的结合(下)
XML入门的常见问题(一)
XML入门的常见问题(二)
XMLHTTP资料
什么是XML
什么是 XML Web Service
XML正在接管Web服务 成为SOA的基础
怎么样在网页上读取远程xml的数据
XML教程—编写结构完整的XML文档
读写xml文件的2个小函数
XML文档的基本操作
初学者如何开发出一个高质量的J2EE系统
优化 JavaScript 代码
自动更新程序的设计框架
使Firefox对XML的处理兼容IE的节点处理方法
WML学习之四 锚和任务
WML学习之五 显示表单
WML学习之六 事件

使用PHP和AJAX的XML编程(3)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 40 ::
收藏到网摘: n/a

  将保单存储在 DB2 中

  PHP 应用程序将传入的 XML 文档直接存储在数据库中,而不需要解析它(见清单 3)。DB2 的 pureXML 支持将隐式地解析传入的 XML,并将其存储在一个类 DOM 的分层结构中。现在,可以在 XQuery 语句中使用 XPath 之类的 XML 导航技术(就像在 DOM 中使用的那样)来查询 XML。DB2 9 还提供了在该层次结构中的任何节点上索引的能力。

  公开 XML 文档上的服务

  新的保单存储在 DB2 9 中以后,保险代理可以查询该保单,以决定是否接受这个保险。用于获得关于新保单报告的查询通过 Web 服务公开给客户机应用程序。

  这个例子中的 Web 服务是用 PHP 编写的,它为调用实现服务的业务和转换逻辑的 DB2 存储过程提供了一个简洁的接口。每个 DB2 存储过程由一个 SQL/XML 查询组成,它过滤和转换存储在数据库中的 XML 保单,以创建一个输出 XML 文档。然后,该 PHP Web 服务将 XML 文档返回给客户机。

  我们来分析每个存储过程,看看那些有效地组成 Web 服务实现的查询。

  列出所有新客户保险的 DB2 查询。包含该查询的存储过程是listAllNewCustomers(见清单 4)。该查询搜索 ACORD 表的 INFO 列中的所有保单文档。在每个 XML 文档中,DB2 进一步向下分析,以便只返回 PolicyStatus/@tc 属性的代码值被设为 12(也就是建议的值)的那些文档。查询输出是一个 XML 文档,它有一个根节点 newpolicylist,该节点包含一系列的用于每个新保单的 TXLife 子节点(见图 4)。

  图 4. 返回新保单列表的 SQL/XML 查询 

图 4. 返回新保单列表的 SQL/XML 查询

  注意这个查询第一次如何使用 DB2 XQuery 函数 db2-fn:xmlcolumn 来导航关系模式,以定位到 XML 列 DB2ADMIN.ACORD.INFO。当它到达 XML 列时,它进一步使用 XPath 在 XML 模式中导航到适当的节点(类似于使用 PHP、JavaScript 或其他语言导航 DOM)。
  列出有风险客户的提议保险的 DB2 查询。该查询只列出有风险的新客户(也就是说,他们对于某个医疗问题的回答是 yes)。该查询包含在一个名为 listAtRiskNewCustomers 的存储过程中(见清单 5)。 注意:WHERE 子句同时检查答案和保单状态。

  评估有风险新客户的风险度的 DB2 查询。对于以上列表中的每个保单,在保单的健康风险区域只能列出回答为 yes 的问题。该查询还返回 policytype,以显示该保单值多少钱,以便评估风险。包含该查询的存储过程(见清单 6)是 getRiskQuestions(guid)。 注意:您需要一个支持 XML 类型的 DB2 驱动程序版本。否则,在每个存储过程中都需要使用 XMLSerialize 来从 XMLQuery 中串行化 XML 值。请参阅 developerWorks 文章 “结合使用 DB2 原生 XML 与 PHP” 以获得更详细的信息。