基于XML的动态表单快速生成技术


计 算 机 系 统 应 用 2010 年 第 19 卷 第 9 期 60 研究开发 Research and Development 基于 XML 的动态表单快速生成技术① 吴 贺 及俊川 李 新 (中国科学院 计算机网络信息中心 ARP 中心 北京 100190) 摘 要: 针对管理信息系统中用户对表单的需求不断变化的普遍现象,设计了基于 XML 的动态表单设计器, 实现了管理信息系统中不修改数据底表的动态表单管理。动态表单设计器把各个数据项组合成 XML, 并把 XML 存入对应的大字段中实现数据的写功能。动态表单设计器通过查找大字段中的 XML,并对 其读取、解析,将对应字段读到页面显示实现数据的读功能。 关键字: XML;DOM4J;动态表单;写功能;读功能 Application of the Technology of XML-Based Dynamic Form Rapid Generation WU He, JI Jun-Chuang, LI Xin (ARP Center, Computer Network Information Center, Chinese Academy of Sciences, Beijing 100190, China) Abstract: The XML-Based dynamic forms designer can modify the forms dynamic management and the database. The dynamic form designer harnesses the power of writing by constructing the data items into XML, saving the XML into a big field. The dynamic form designer harnesses the power of reading by searching the big field XML, reading and resolving the XML, and displaying the data on the output device. Key words: XML; OM4J; dynamic form; writing fuction; reading fuction 1 引言 随着信息技术的飞速发展,为信息资源价值链的 有效运行提供了更加便捷、可靠的支持,也更加促进 了信息的应用。通常人们把信息资源的一个完整价值 链划分为七个环节,即数据的产生、获取、传输、处 理、存贮、挖掘和发布。针对应用而言,挖掘和发布 是目的,数据的产生和获取是基础。本文和图通过管 理信息系统中的实际应用过程,对信息获取技术进行 概要的研究分析。 众所周知,管理信息系统开发中通常会遇到一个 令开发者头疼的问题,就是需求是不断变化的,而最 常见的是对表单数据项的更改。如果每次需求变化都 要更改程序,更改数据底表,工作量会很大,而且系 统不易维护,出错可能性会更大。如果表单数据项变 化,只更改表单界面和表单配置文件,而不更改底层 ① 收稿时间:2009-12-24;收到修改稿时间:2010-01-28 代码和数据底表,系统会变得更易维护。因此,提出 了基于 XML 的动态表单快速生成技术[1]。 2 XML及相关技术 2.1 XML 技术 XML(extensible markup language,可扩展的 标记语言)是由 World Wide Web Consortium(W3C) 的 XML 工作组定义的。XML 是一套定义语义标记的 规则,这些标记将文档分成许多部件并对这些部件加 以标识,XML 是一种元标记语言,用户可以定义自己 需要的标记,XML 标记描述的是文档内容的结构和含 义。 动态表单的生成基于 XML 的好处主要有: 1) XML 的设计宗旨是传输数据,同时 XML 简化 了数据传输。通过 XML 可以在不兼容的系统之间轻 2010 年 第 19 卷 第 9 期 计 算 机 系 统 应 用 Research and Development 研究开发 61 松地交换数据。 2) XML 被设计为具有自我描述性。这一特点,对 于数据项根据需求经常变动的系统,十分有利。在需 求变动时,之需要更改少量配置文件,而无需调整程 序和数据底表。 3) XML 支持高级搜索。因为可以知晓文档内容的 结构和含义(根据它的语法规则),所以很容易在 XML 文档中进行搜索[2,3]。 2.2 XML 解析器 XML 解析器是指解释 XML 文本文档结构的程序。 DOM(“文档对象模型”)是用与平台和语言无关的方 式表示 XML 文档的官方 W3C 标准。DOM 定义充分 利用了 XML 文档不同组件的接口和继承性。JDOM 的 目的是成为 Java 特定文档模型,它简化与 XML 的交 互并且比使用 DOM 实现更快。 1) DOM4J 是一个非常非常优秀的 Java XML API,具有性能优异、功能强大和极端易用使用的特点, 同时它也是一个开放源代码的软件。如今你可以看到 越来越多的 Java 软件都在使用 DOM4J 来读写 XML,特别值得一提的是连 Sun 的 JAXM 也在用 DOM4J。 2) DOM4J 是 JDOM 的一种智能分支,它合并了 许多超出基本 XML 文档表示的功能,包括集成的 XPath 支持,XML Schema 支持以及用于大文档或流 化文档的基于事件的处理。 3) DOM4J 提供了具备更标准化的优越性能和功 能更全的实现,包括对 SAX2、DOM 甚至 XPath 得内 置支持。 DocumentHelper 是生成 XML 文 档 节 点 的 dom4j API 工 厂 类 ,主要通过使用 DocumentHelper 类创建文档实例[4]。 3 基于XML的动态表单快速生成技术 3.1 动态表单生成 图 1 动态表单生成模板 通过配置动态表单生成模板,把动态页面名称、 jsp 文件路径、描述、操作表信息、jsp 页面编辑等数 据项,提交数据库 agilesheet 表。具体模板如图 1 所 示。 相应的数据项存入数据表 agilesheet,如表 1 所 示: 表 1 agilesheet 表结构 数据项 说明 ID 主键 TITLE 动态页面名称 CONTENT 存放 JSP 页面编辑内容( CLOB 类型) DESCRIPTION 描述 FILEPATH 生成 JSP 文件存放的路径 TYPE 类型 TABLEXML 存放操作表信息(CLOB 类型) EXCHANGEIF 是否进行数据交换 XMLCONTENT 存放 XML 文件 RETITLE 重命名 AGILEMOULD Word 模板 BUSINESSTYPE 业务类型 配置动态表单时可以选择不同的模板,包括单表 操作模板和多表操作主外键关联模板。以单表操作模 板为例,程序员主要配置的是操作表信息中的一些数 据。 CUSTID CONTENTXML PHONE,birth,ORGNAME description,zwjs2 其中,tablename 指出“要操作的数据库表名”; pkid 指出操作数据表的主键;xmlSaveCol 指出存放 计 算 机 系 统 应 用 2010 年 第 19 卷 第 9 期 62 研究开发 Research and Development 表单提交信息后生成的 XML 文件的数据字段名; fixfields 指出在数据表中需要单独存放的数据项,主 要是方便其他表单或模块调用、修改、方便查询; onlyshowfield 指出不需要单独存放在数据库相应字 段中,只在 XML 文件中以一个标签形式存放,用于在 页面中展现信息。 “Jsp 页面编辑”主要根据需要设计界面,数据 交 换 方面只需要简单配置 中的 name 和 id 即可,具体名称与操作表信息中的 fixfields 和 onlyshowfield 相对应。由“jsp 页面编 辑”数据项生成“jsp 文件”,存入“jsp 文件路径” 数据项所指向的路径,形成动态表单。 对表单中数据的操作有增加、修改、删除、查询 等,归纳起来主要是对数据的读操作和写操作。通过 对动态表单的配置,系统可以自动完成对表单的读操 作和写操作。 3.2 对动态表单中数据的写操作 数 据 库 底 表 字 段 的 设计包括 fixfields 和 xmlSaveCol 两种类型。fixfields 类型用于存储相关 字段的信息项,CONTENTXML 是 xmlSaveCol 类型, 用于存储表单提交信息生成的 XML 文件。写操作的原 理如图 2 所示。 图 2 写操作原理 首先从数据库中取模板,,agileTableid 动态表单 ID 决定了所取模板的类型,toWhere 指出了表单提交后 要跳转到的页面,包括当前页、关闭当前页、查询页 面。然后使用 DOM4J 解析对应表单的操作表信息, 存储在字符串中,方便以后解析其他字段使用。从 agilesheet 数据表中 FILEPATH 读取 JSP 文件在服务 器上的位置,加载 JSP 文件到主页面中。 用 户 填 写 表 单 中的信息,点击提交,使用 Javascript 读取页面上的值,对值进行封装,组合成 XML 文件。根据操作表信息中的 tablename、pkid 和 xmlSaveCol,把 XML 文件存入数据库底表的大字 段 CONTENTXML 中。根据操作表信息中的 tablename、pkid 和 fixfields,使用 DOM4J 解析 XML 文件,数据项存入数据库底表的相应字段。 3.3 对动态表单中数据的读操作 读操作原理如图 3 所示: 图 3 读操作原理 首 先 从 数 据 库 中 取 模 板 , ,agileidvalue 使用读操作表的主键值, agileTableid 动态表单 ID 决定了所取模板的类型, toWhere 指出了表单提交后要跳转到的页面,包括当 前页、关闭当前页、查询页面。然后使用 DOM4J 解 析对应表单的操作表信息,存储在字符串中,方便以 后解析其他字段使用。从 agilesheet 数 据 表中 FILEPATH 读取 JSP 文件在服务器上的位置,加载 JSP 文件到主页面中。数据库底表中的数据项在其他页面 2010 年 第 19 卷 第 9 期 计 算 机 系 统 应 用 Research and Development 研究开发 63 或其他模块中可能被修改,需要更新同步大字段 CONTENTXML。对于存在历史数据的系统,需要生 成 XML 存入大字段 CONTENTXML。根据操作表信息 中的 tablename、pkid、xmlSaveCol 和 fixfields 更新或生成 XML 文件,存入大字段 CONTENTXML。 根据操作表信息中的 tablename 、 pkid 、 xmlSaveCol、fixfields 和 onlyshowfield,使用 DOM4J 解析 XML 文件,得到页面需要显示的数据项, 通过 Javascript 向页面赋值。 4 动态表单生成技术的进一步优化 上面阐述的动态表单写操作和读操作都涉及到大 字段 CONTENTXML 和其他 fixfields 类型数据项之 间的同步,一方面加大了系统的响应时间,另一方面 fixfields 类型数据项在大字段CONTENTXML 中存储 是一种数据冗余。因此,考虑大字段 CONTENTXML 中只存储 onlyshowfield 涉及到的字段。设计如图 4 写操作原理改进,图 5 读操作原理改进所示。 图 4 写操作原理改进 图 5 读操作原理改进 5 结束语 本文给出了一种基于 XML 的动态表单生成技术, 实现了表单数据项方面需求变更的快速应对。通过模 板动态生成表单,提高了软件开发效率,降低了 BUG 率。我们相信动态表单处理技术必然会在管理信息系 统开发和应用过程中产生愈来愈大的效益。 参考文献: 1. 陈桦,傅蓓.基于工作流的 XML 表单文件的存储与 重建.现代电子技术, 2008,265:126-128,133. 2 李海龙,张维明,肖卫东,徐振宁.基于 XML 的数据库 信息动态发布技术.计算机工程与应用,2002,19: 205 -208. 3 亨利,拉夫特,福思特等.吴文国译.XML 入门经.第 4 版.北京:清华大学出版社, 2009.2-16. 4 王瑞霞,隋宏伟,刘弘.基于 XML 的表单设计器构件 的设计与实现.计算机应用研究, 2007,24(7):183- 185.
还剩3页未读

继续阅读

pdf贡献者

liulimuli

贡献于2014-07-02

下载需要 3 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf