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

  将保单存储在 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 查询 


  注意这个查询第一次如何使用 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” 以获得更详细的信息。

时间: 2024-08-29 07:30:01

使用PHP和AJAX的XML编程(3)的相关文章

使用PHP和AJAX的XML编程

ajax|xml|编程 在 SOA 架构中,程序员经常使用 XML 在应用程序之间交换结构化和半结构化的数据.XML 及其相关技术 - 文档对象模型(Document Object Model,DOM).XPath.HTTP.XQuery 和可扩展样式表语言转换(Extensible Stylesheet Language Transformations,XSLT) - 为快速应用程序开发提供了一个强大的环境.构建在这些技术之上的应用程序将占用更小的内存空间,需要更低的维护成本,同时又拥有更高的

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

在 SOA 架构中,程序员经常使用 XML 在应用程序之间交换结构化和半结构化的数据.XML 及其相关技术 - 文档对象模型(Document Object Model,DOM).XPath.HTTP.XQuery 和可扩展样式表语言转换(Extensible Stylesheet Language Transformations,XSLT) - 为快速应用程序开发提供了一个强大的环境.构建在这些技术之上的应用程序将占用更小的内存空间,需要更低的维护成本,同时又拥有更高的品质和灵活性. DB2

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

基于 ACORD 人寿数据模型的场景 我们来考虑一个简单的人寿保险场景,在这个场景中,首先创建一个表示新保单的 XML 文档,然后查询和操纵这个文档,另外还将这个文档从一层移动到另一层.这个文档基于合作运营研究与发展协会(Association for Cooperative Operations Research & Development,ACORD)用于人寿保险规范的 XML,它定义了健康保险和年金保险需要交换的数据. 为了申请一个新的保险,客户需要提供一些基本信息.部分信息是在一个 PH

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

创建 Web 服务 用于 getnewpolicyinfo Web 服务的 PHP 代码是一个瘦包装器,它检查所需保单报告的类型,并调用适当的存储过程.然后,将存储过程所返回的值发送回客户机(见清单 7).注意用 PHP 创建 Web 服务是多么简单.最后三行将该功能公开为一个 Web 服务.在任何客户机中,包括在 PHP 应用程序中,都可以调用 Web 服务,如清单 8 所示. 结束语 在过去几年中,各应用程序层的 XML 支持都已成熟,这导致一种强大的开发环境的出现,这种开发环境可以改变企业

XML编程方面的扩展

xml|编程 我先提出一个问题,xml技术目前最大应用是什么? 我相信你一定马上说是数据交换,传输封装等,同时还举出soap,rss等.对,你说的对! 但今天我想要说的是他在一些编程时的作用,如果你经常使用脚本编程,如asp,javascript,vbscript等,你一定听说过,甚至自己编写过如htc,wsc,等格式的脚本程序.以下就htc随便说两句. htc文件的标准格式就是要求是格式良好的xml文件.基本架够如下: <PUBLIC:COMPONENT> <PUBLIC:ATTACH

从基本应用实例快速步入XML编程世界

xml|编程|应用实例 本文介绍3个XML的基本应用实例,旨在带领你快速步入XML编程世界.实例包括:在.NET中使用XML.读取XML文件,插入数据到XML文档中. 在.NET中使用XML 如果使用过MSXML3,那么在.NET应用程序中使用XML将是一个相当简单的过程.即时没有接触过MSXML3,也不要紧,你会发现使用.NET平台提供的相关类也是很容易的一件事情. 有两种主要API可用于访问建立在XML文档中的数据,它们包括只向前的无缓冲存取以及随机存取,而且自始至终都使用到文档对象模型DO

浅出Java 的Xml编程

xml|编程 对于Xml,我的认识是,一个用来存放数据的标准格式.怎么看我都觉得XML和Html,完全不一样,也许仅仅只是都使用了标记来作为文档解释的原因吧.所以人们才喜欢把XML和HTML对比来看.对于我个人而言,XML就是一个简单方便的数据文件.因为.它不同与一般的关系型数据库,把数据看出二维表.通过基本的关系运算,获取二维表中的数据.XML仅仅把数据当成一个文档,然后正对文档解析获取数据.所以我的看法是,要操作XML文档,只要一个能够解释XML的文档解释器就可以了.然后把解释的内容.转变成

VC操作XML编程实例

xml|编程 XML编程实例 文章正文 前段时间,由于工作的需要,利用到了XML,所以对其进行了一些简单的研究.在此愿把一些心得写出来,与各位分享,不对的地方还望多多包涵. 1.什么是 XML? 首先,我想各位应该都已经大概知道什么是XML了.如果,你对什么是XML还没有一个概念的话,你可以看一些相关的材料,我就不多说了. 2.为什么要用XML? 其实,刚开始我也不是很明白,后来在工作中才慢慢意识到.首先,我写的程序需要传送很多的数据结构,比如表格,目录树等等.要在以往,我想自己会去定义一个数据

简析JAVA的XML编程

xml|编程  个人认为这篇文章通俗易懂,值得推荐.    XML作为全球通用的结构化语言,越来越受人们青睐,各种开发平台(比如Microsoft Studio系列.Oracle系列.Inprise Borland系列等)也都把支持XML开发作为宣传口号之一 .由于笔者所从事的电子政务开发较早的引入了XML,所以尝到了许多甜头,在许多项目中利用XML数据交换信息,省去了许多麻烦事,不用制定繁锁的数据格式,利用XML数据易于表达,也利于一线开发者跟踪调试.         笔者先前也曾发表过相关的