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

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

  DB2 和其他关系数据库的 XML 方面的特性已经相当成熟,因此除了存储和管理关系数据之外,它们还是存储和管理 XML 数据的理想选择。DB2 9 XML 支持(称为 pureXML)提供了以纯 XML 的形式(换句话说,就是带注释的、树型的分层存储)存储 XML 的能力。在 DB2 9 中,XML 数据可以用 XML 模式索引,可以从关系数据组合而成,可以分解为关系数据,可以查询和转换,可以独立发布,或者通过混合使用 SQL/XML 和 XQuery 与关系数据组合起来。

  Web 浏览器也正在为客户机脚本提供更多的功能来有效地处理 XML。通过使用异步 JavaScript 和 XML(Asynchronous JavaScript and XML,Ajax),Web 页面现在可以直接对应用服务器进行远程过程调用,并且可以在任何返回的 XML 数据上使用 DOM API。

  本文将展示如何利用 DB2 XML、Ajax 和 PHP Hypertext Preprocessor (PHP) 提供的功能来编写简单的基于 XML 的应用程序。通过示例场景的帮助,您将学习如何在 JavaScript 中调用 PHP 应用程序;如何使用 DOM 和 SimpleXML API 修改 XML 数据;如何将 XML 从客户机传送到应用程序再到数据库;以及如何创建 PHP Web 服务来使用 SQL/XML 和 XQuery 发布关于 XML 数据的报告。

  XML 优点

  大多数应用程序都用于创建、存储、操纵和呈现业务数据。对象包装是指将业务数据绑在一起,使业务逻辑更容易处理它们。这些包装器对象的很多功能都是根据关系和格式化规则来提供业务数据的结构,并使业务逻辑能够操纵、发布和串行化封装的数据。

  图 1. 基于对象包装器的应用程序  

  图 1 阐释了使用对象包装器的一个示例人寿保险应用程序。每个方框表示一个对象,每个对象至少有:

  ·一个构造函数

  ·Getter 和 Setter 方法

  ·验证代码

  ·内部对象层次的串行化

  这些对象与实际的业务逻辑没有关系。对象包装是为了使业务逻辑更容易管理业务数据。包装数据所需的代码比业务逻辑要多得多。更多的代码将导致更多的 bug、更大的固定性、更多的维护和更高的成本。

  如果对象中的数据变量可以格式化为 XML 结构,并且对象的主要作用是将这些数据暴露给业务逻辑并让业务逻辑操纵它们,那么可以用 DOM 代替对象。

  图 2. 基于 XML 的应用程序 


  图 2 展示了一个使用 XML 和 DOM 包装器的示例保险应用程序。图 1 中的所有数据包装器对象都用一个 DOM 对象代替。业务数据是用 XML 建模的,DOM 提供了必要的 API 来:
  ·创建新的 XML 对象。

  ·更新 XML 对象的值。

  ·导航 XML 对象。

  ·使用 XPath 在对象层次中搜索。

  ·串行化和反串行化 XML 对象层次(换句话说,就是内建持久性)。

  通过使用 XML,可以避免使用大多数用于管理业务数据的包装器对象。应用程序将变得更加简洁,并且更多地将重点放在业务逻辑上,而不是数据管理上。

  XML 和架构

  将 XML 引入架构中可以为表示业务数据带来一种标准化的方式。XML 可以提供数据的结构;XML 模式施加结构和格式化规则;DOM API 和 XQuery、XPath 及 XSLT 之类的语言使业务逻辑可以有效地操纵、发布和串行化数据。由于业务数据的 XML 表示在客户机、中间层和数据库中都是一致的,因此操纵这些对象的代码也是类似的。

  我将展示如何在三层环境中构建基于 XML 的应用程序,这个三层环境由以下几个部分组成:

  ·Web 客户机:Asynchronous JavaScript and XML (Ajax),DOM

  ·应用服务器:PHP 和 SimpleXML

  ·数据库: DB2 9 和 SQL/XML,XQuery 

时间: 2024-12-21 22:44:44

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

使用PHP和AJAX的XML编程

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

使用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 支持都已成熟,这导致一种强大的开发环境的出现,这种开发环境可以改变企业

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

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

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数据易于表达,也利于一线开发者跟踪调试.         笔者先前也曾发表过相关的