IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  XML | Information Management | Web development  >

集成 XML Forms Generator 和 Data Studio,第 2 部分: XFG 中的 DB2 pureXML 支持

根据 Data Web Services 中的 pureXML 参数将 pureXML 可视化为 XHTML/XForm,并且支持与 pureXML 实例对应的已注册 XML Schema

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

讨论

样例代码

英文原文

英文原文


级别: 中级

Xiao Feng Zhao (zhaoxfbj@cn.ibm.com), 资深软件工程师, IBM
Qiang Wang (wangq@cn.ibm.com), 资深软件工程师, IBM
Susan Malaika, 高级技术人员, IBM
Keith Wells, 高级软件工程师, RoleModel Software, Inc.

2009 年 3 月 02 日

与关系数据不同,IBM® DB2® 9 的 pureXML® 特性用全新的方式支持 XML 数据 —— 将 XML 作为新的数据类型处理,并存储在一个自然的层次结构中。IBM Data Studio 能够创建带有多个 pureXML 参数的 Data Web Services,它可以处理数据库中的 pureXML 实例。在 XML Forms Generator (XFG) 中提供 pureXML 支持后,就可以将 pureXML 可视化为 XHTML/XForm 以便与用户进行交互。此外,XFG 能够获取 pureXML 实例的已注册的相关 XML Schemas,并将类型信息、验证约束生成为目标 pureXML XHTML/XForm。因此,XFG 中的 pureXML 支持使得构建以 pureXML 形式存储的 XML 实例的表单界面更加容易。

pureXML 和 Data Web Services

本系列的其他文章

将 XML 数据存储为 CLOB 或将其分割为关系表的时代已经过去。与关系数据不同,DB2 9 的 pureXML 特性以全新的方式支持 XML 数据 —— 将 XML 作为新的数据类型处理,并存储在一个自然的层次结构中。pureXML 将 XML 与关系数据无缝集成起来,从而加快了应用程序开发,并且通过高度优化的 XML 索引改善了搜索性能。此外,它还是很灵活的,因为您可以使用 SQL 和 XQuery 查询 XML 数据。以 pureXML 形式存储的 XML 数据可以通过 Data Web Service 机制公开为 Web 服务(参见本系列的 第 1 部分)。

pureXML 支持在 XFG 中如何工作

常用缩略词
  • CLOB:字符大对象(Character Large Object)
  • SOAP:简单对象访问协议(Simple Object Access Protocol)
  • UI:用户界面(User interface)
  • WSDL:Web 服务描述语言(Web Services Description Language)
  • XHTML:可扩展超文本标记语言(Extensible Hypertext Markup Language)
  • XML:可扩展标记语言(Extensible Markup Language)

首先需要创建一个微型的、基于 DB2 表的 pureXML 应用程序,以演示 XFG 中的 pureXML 支持的详细步骤。表 1 显示了这个表的结构。在演示之前,我们插入一个样例记录作为 pureXML 引用实例。在这个记录中 XML1 列没有绑定到任何模式,而 XML2 列绑定到一个已注册模式 — 如 清单 1 所示的 Express 模式。注意:pureXML 引用实例 是用于通过 XFG 生成 XHTML/XForm 的 XML 模板。据我们所知,XFG 能够从 XML 或 WSDL 生成表单。


表 1. 表结构概览
样例 DB2 表,其中的列绑定到已注册的 Express 模式,但不绑定到任何其他模式

清单 1. Express 模式
Express 模式




回页首


创建 Data Web Services

在 DB2 数据库中创建表之后,则可以使用 Data Studio 来创建包含 SQL 语句的 SQL 文件:

INSERT INTO XFGDEMO (ID, NAME, XML1, XML2) VALUES (:id, :name, :purexml1, :purexml2)

然后创建 Data Web Services。查看 参考资料 获得关于从 SQL 文件创建 Data Web Services 的介绍。在创建 Web 服务样例时,生成一个名为 insertRecord.wsdl 的 WSDL 文件。该文件类似于 清单 2 中的文件。可以在生成的 WSDL 文件中看到两个 pureXML 参数,即 PUREXML1PUREXML2。这两个 pureXML 字段绑定到 xsd:anyType,在随后的步骤中将使用 XFG 将它们可视化为 XHTML/XForm 片段。


清单 2. WSDL 文件中的 pureXML 参数
WSDL 文件中的 pureXML 参数




回页首


生成 XHTML/XForms

从 Data Studio 创建和部署 Data Web Services 之后,就可以使用 XFG 生成与服务进行通信的 XHTML/XForms 和相应的 XML 文件。

选择 insertRecord.wsdl 文件,右键单击 WSDL 文件,然后从 XForms Generator 菜单选择 Generate XHTML/XForms 向导。图 1 显示了该向导的第一个步骤:


图 1. XFG 向导中的第一个步骤
在 XFG 向导的第一个步骤中配置生成器

生成验证信息

在 XFG 中,可以将额外的验证约束附加到 pureXML 字段。如果选择 Generate validation information 选项,将会看到一个验证编辑器向导页面,在这里可以按照以下步骤配置额外的验证规则。

从数据库获取 pureXML 实例

XFG 支持两种在 WSDL 中可视化 pureXML 字段的方式。第一种方式是在本地文件系统中使用 pureXML 实例,然后从本地文件系统读取绑定模式。第二种方式是在数据库中使用 pureXML 实例,然后从 XML 模式存储库(XML Schema Repository,XSR)中获取已注册模式。如果选择了 Retrieve PureXML instance from Database 复选框,则可以使用这两种方式;如果没有选择,则仅能在文件系统中使用模式。选中这个复选框,然后单击 Next

在下一个屏幕中,选择 insertRecord 操作然后单击 Next。此时,将看到 Configure PureXML 向导页面,如 图 2 所示。在这里,XFG 能够识别所有 pureXML 参数。您需要将 pureXML 实例指定为引用以生成可视的 XHTML/XForm,然后从数据库获取这个 pureXML 实例。请注意,对于 pureXML 实例的引用,PUREXML1 没有绑定到任何模式,而 PUREXML2 绑定到 清单 1 所示的已注册模式中。


图 2. 配置 PureXML 向导页面
配置 PureXML 向导页面

单击 Next 就会出现 Validation Editor 屏幕。在这里,添加一些针对 PUREXML1 的验证规则。PUREXML1 不绑定到任何模式。


图 3. 验证编辑器 editor
带有规则的验证编辑器

继续该向导,最后单击 Finish 生成 XHTML/XForms。生成的 XHTML 文件是 insertRecord.xhtml。图 4 显示了生成的表单(参见图 4 的 大图):


图 4. 在 Firefox 中显示生成的 XHTML/XForm
在 Firefox 中显示生成的 XHTML/XForm




回页首


分析

清单 3 中生成的 XHTML 表单片段中,可以看到两个 fieldset 标记。每个标记都是从数据库中特定的实例生成的,并且对应 清单 2 的 WSDL 文件中的 pureXML 参数。


清单 3. pureXML XForm 片段
pureXML XForm 片段

在清单 4 中,XFG 为已注册模式生成绑定信息(您已经在 清单 1 中见过该模式)。


清单 4. 从已注册模式生成的 pureXML 绑定信息
从已注册模式生成的 pureXML 绑定信息

同时,XFG 还在 清单 5 中为您在向导中设置的 PUREXML1 验证规则生成绑定信息。


清单 5. 从 验证规则生成的 pureXML 绑定信息
从验证规则生成的 pureXML 绑定信息




回页首


在提交时合并多个模型

在生成的 XHTML/XForm 中,您将看到 3 个 XForm 模型:

  • 第一个模型是全局性的,它与 WSDL 操作 insertRecord 对应。这个模型仅包含 4 个元素:IDNAMEPUREXML1PUREXML2。这些元素映射到 Data Web Services 中的 4 个参数名。
  • 第二和第三个模型是针对 PUREXML1 和 PUREXML2 参数的 pureXML 模型,可从数据库或本地文件系统获取它们。在 XHTML/XForm 中的这两个 pureXML 字段集的数据变更都可以应用到这两个模型。

在提交到 Data Web Services 之前,XFG 将通过生成的客户端 XHTML 脚本把这两个 pureXML 模型合并为第一个全局性 XForm 模型,如 清单 6 所示。在表单提交之后,这个脚本在客户端被作为 XHTML 表单的一部分执行。


清单 6. 模型合并 XHTML 脚本
模型合并 XHTML 脚本

合并后的数据模型,如 清单 7 所示,是一个完整的 SOAP 消息,客户端直接将它提交到 Web 服务,以使用来自表单的数据将一个新记录插入到表中。


清单 7. 合并后的模型
合并后的模型




回页首


结束语

在本文,我们简单描述了 XFG 中的 DB2 pureXML 支持。在 XML Forms Generator (XFG) 中添加 pureXML 支持之后,就可以为用户将 pureXML 可视化为基于 XHTML 的 XForm。此外,还可以基于 XFG 获取 pureXML 实例的已注册的相关 XML Schema 并生成类型信息。还可以获取验证约束并将其添加到目标 pureXML XHTML/XForms。XFG 中的 pureXML 支持使得构建以 pureXML 形式存储的 XML 实例的表单界面更加容易。在这个系列中,我们介绍了 XForms、XFG、Data Studio、Web services 和 pureXML 特性支持。学习了这两篇文章之后,您就可以轻松使用 XFG 为后端 Data Services 生成有效的 XHTML/XForms UI,以构建完整的数据服务解决方案。






回页首


下载

描述名字大小下载方法
本文清单 1 的代码样例Listing1.zip1KBHTTP
关于下载方法的信息


参考资料

学习

获得产品和技术
  • DB2 Express-C:下载 DB2 Express 9 数据库服务器的免费试用版。

  • DB2 for Linux™, UNIX™, and Windows:下载免费的交互式数据服务器。它将 DB2 的高性能和易用性与 XML 的自我描述特性结合起来。

  • XML Forms Generator/Data Studio on alphaWorks:下载这个基于标准的、数据驱动的 Eclipse 插件。它使用嵌套在 XHTML 文档中的 XForms 标记从 XML 数据实例或 WSDL 文档生成有效的表单。

  • IBM Data Studio:下载集成数据库开发环境的免费试用版。它能够加快应用程序的设计、开发和部署,同时又能提高数据访问的效率和性能。

  • IBM 产品评估试用软件:使用可直接从 developerWorks 下载的 IBM 试用软件构建您的下一个项目,包括来自 DB2®、Lotus®、Rational®、Tivoli® 和 WebSphere® 的应用程序开发工具和中间件产品。


讨论


作者简介

Zhao Xiao Feng  的照片

Xiao Feng Zhao 是 China Emerging Technology Institute, China Software Development Laboratory 的资深软件工程师。他专注于 IBM Incubator 项目。他感兴趣的领域包括 Web 2.0、SOA、J2EE 和 Web 技术。目前,他从事于 Ajax 和 SOA 标准的 PoC 开发。


Wang Qiang 的照片

Qiang Wang 是 China Technology Institute, China Software Development Laboratory 的技术主管。他专注于 IBM Incubator 项目和与 SOA 相关的东西。他感兴趣的东西包括 J2EE、SOA、MDA/MDD、AOP、RUP 和项目管理。目前,他负责领导一些与 SOA 相关的行业解决方案。


Susan Malaika 的照片

Susan Malaika 是 IBM Information Management Group(属于 IBM Software Group)的一名高级技术人员。她的专长包括 XML、Web 和数据库。她曾在 Global Grid Forum 开发过支持网格环境数据的标准。她与人合作出版了关于 Web 的专著,发表了关于事务处理和 XML 的文章。她是 IBM Academy of Technology 的成员。


Keith Wells 照片

Keith Wells 是位于北卡罗来纳州 RTP 的 IBM Emerging Standards XForms 开发的技术和团队主管。目前,Wells 先生是 W3C Forms Working Group 的成员,他正在研究 XForms、新兴软件标准、行业标准和其他基于 XML 的技术。




对本文的评价










回页首


IBM、IBM 徽标、ibm.com、DB2、developerWorks、Lotus、Rational、Tivoli 和 WebSphere 是 International Business Machines 公司在美国和/或其他国家的商标或注册商标。这些和其他 IBM 商标词汇在内容中首次出现时用适当的符号(® 或 ™)加以标记,表示这些美国注册商标或普通法商标在发布本信息时归 IBM 所有。这些商标还可能是其他国家的注册商标或普通法商标。请查阅最新的 IBM 商标 列表。 Adobe、Adobe 徽标、PostScript 和 PostScript 徽标是 Adobe Systems 公司在美国和/或其他国家的商标或注册商标。 其他公司、产品或服务名称可能是其他公司的商标或服务标志。 其他公司、产品或服务的名称可能是其他公司的商标或服务标志。

IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款