首页 文章 Java/XML 集成 XML Forms Generator 和 Data Studio,第 2 部分: XFG 中的 DB2 pureXML 支持

邮件订阅

集成 XML Forms Generator 和 Data Studio,第 2 部分: XFG 中的 DB2 pureXML 支持 E-mail
用户评价: / 0
好 
作者:Administrator   
2009-03-03 22:42

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
关于下载方法的信息


最后更新于: 2009-03-03 22:42
 

欢迎转载

本站文章欢迎转载,但请注明出处(http://www.javajia.com,Java家)

其他相关文章