CN103631597B - 基于xml的web表单引擎装置及方法 - Google Patents

基于xml的web表单引擎装置及方法 Download PDF

Info

Publication number
CN103631597B
CN103631597B CN201310657866.5A CN201310657866A CN103631597B CN 103631597 B CN103631597 B CN 103631597B CN 201310657866 A CN201310657866 A CN 201310657866A CN 103631597 B CN103631597 B CN 103631597B
Authority
CN
China
Prior art keywords
list
xml
field
button
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310657866.5A
Other languages
English (en)
Other versions
CN103631597A (zh
Inventor
余志淼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongbo Information Technology Research Institute Co Ltd
Original Assignee
Zhongbo Information Technology Research Institute Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhongbo Information Technology Research Institute Co Ltd filed Critical Zhongbo Information Technology Research Institute Co Ltd
Priority to CN201310657866.5A priority Critical patent/CN103631597B/zh
Publication of CN103631597A publication Critical patent/CN103631597A/zh
Application granted granted Critical
Publication of CN103631597B publication Critical patent/CN103631597B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明为了提高WEB程序的用户界面开发效率,提供一种基于XML的表单引擎装置及方法,该方法提高了WEB程序的开发效率,由于使用统一的CSS,保证了用户界面的风格统。本发明的基于XML的表单引擎装置包括表单设计单元和表单运行引擎单元,表单设计单元包括元数据生成模块和表单设计模块,表单运行引擎单元包括表单装载模块和表单展示模块。

Description

基于XML的WEB表单引擎装置及方法
技术领域:
本发明涉及用于WEB程序开发中的用户界面开发,提供一种基于XML的表单引擎来生成用户界面。
背景技术:
随着浏览器技术的发展,在WEB程序开发中,对WEB用户界面的设计提出了越来越高的要求。传统的WEB用户界面的开发都采用源码的方式进行编程,要开发一个表单,往往需要编写大量的代码。所以,导致开发的效率低下,而且各个程序员开发出来的界面风格常常不能统一,难以达到一个美化效果。
虽然某些开发工具(如:Eclipse、JBuilder等)提供了可视化的编辑器,即见即所得的方式生成界面源码(JSP、HTML、JS),但此类工具仍然是基于源代码的开发方式,要制作一个表单,基本上还需要程序员修改源码。
发明内容;
为了解决了上述的问题,提高WEB程序的用户界面开发效率,提供一种基于XML的表单引擎装置,无需开发人员编写源码,可以通过数据模型就能设计出用户界面,保证了用户界面风格统一。
本发明另一目的是提供一种基于XML的表单引擎方法,该方法提高了WEB程序的开发效率,由于使用统一的CSS,保证了用户界面的风格统。
本发明的具体技术方案如下:
一种基于XML的表单引擎装置,该装置包括表单设计单元和表单运行引擎单元,表单设计单元包括元数据生成模块和表单设计模块,表单运行引擎单元包括表单装载模块和表单展示模块;
所述元数据生成模块,用来读取数据库中的数据模型,并将数据模型中的字段属性信息转换为XML形式的元数据文件;
表单设计模块用于指定表单的结构类型,将表单划分为多个区域,将元数据文件中的字段复制到区域中,并添加用户操作的按钮;最终将表单信息组装起来;
表单装载模块,用于读取以上XML格式的表单文件,解析表单内容,将XML格式的表单转换为Map对象;该模块调用通过JAVA的反射机制,实例化开发人员预先写好的JAVA类,将Map对象作为参数传递给该JAVA类,该JAVA类对Map进行修改;表单装载模块将Map对象转换为浏览器能识别的JSON对象;
表单展现模块,该模块根据JSON对象所包含的内容,在浏览器中创建DOM,CSS,JavaScript这3种HTML的基本元素,最终将表单展示为浏览器中的HTML页面。
所述表单设计模块包括:
表单结构设计器,用于设计表单的结构类型,将表单划分为多个区域,将元数据文件中的字段放置在区域中;
字段设计器,用来调整字段的显示属性;
按钮设计器,用于添加用户界面上的操作按钮;
表单组装器,用来将表单结构设计器、字段属性设计器和按钮设计器的信息组装起来,保存为XML格式的表单文件。
所述的XML格式为:表单划分的多个区域,对应XML中的parts、part节点;每个区域包含字段信息,对应XML中的fields、field节点;每个区域包含按钮信息,对应XML中的buttons、button节点。
所述表单装载模块包括:
表单解析器,用来读取表单文件,解析表单内容,将XML格式的表单转换为JAVA对象;
表单装饰器,实例化开发人员预先写好的JAVA类,将表单解析器得到的对象作为参数传递给该JAVA类进行加工,并且转换为浏览器能识别的JSON对象。
所述表单展示模块包括:
DOM生成器、CSS生成器、JavaScript生成器。其作用是:根据JSON对象所包含的内容,在浏览器中创建DOM,CSS,JavaScript这3种HTML的基本元素,最终将表单展示为浏览器中的HTML页面。
本发明的基于XML的表单引擎方法,该方法包括以下步骤:
1)读取数据模型,通过JDBC接口获取得数据模型的字段属性信息;
2)生成元数据文件,调用DOM4J接口将步骤1)的字段属性信息转换为XML形式的元数据文件;
3)指定表单的结构类型,将表单划分为多个区域,并指定区域的类型,调用DOM4J接口读取步骤2)的元数据文件,将元数据文件中的字段信息复制到区域中;
4)修改区域中的字段的属性,并且设计字段的显示属性;
5)在区域中添加按钮,并且设计按钮的属性;
6)调用DOM4J接口将步骤3)、4)、5)的设计信息保存为XML格式的表单文件;
7)调用DOM4J接口读取步骤6)生成的表单文件,解析XML格式的文件并转换为JAVA对象(Map对象和List对象);
8)调预先写好的JAVA类,将Map对象作为参数传递给该JAVA对象,JAVA对象对Map对象中的key-value键值对进行修改,并将JAVA对象转换为浏览器能识别的JSON对象:调用org.json工具,将Map对象转换为JSONObject,将List对象转换为JSONArray;
9)根据JSON对象中所包含的表单结构,在HTML页面中创建DOM对象。根据表单包含的区域信息,DOM对象中创建div;根据区域包含的字段信息,在div里面创建table、label、ul、li、input;根据区域包含的按钮信息,在div里面创建button。
10)往HTML页面添加统一的样式,将WEB程序的显示风格进行全局的更新,所有用户界面均会自动地更新;
11)为区域中的每个按钮生成一段JavaScript脚本,用于监听点击该按钮的事件。
步骤1)所述每个字段的属性有:字段名、字段类型、字段长度、数值精度、是否可空、是否主键。
步骤3)所述表单结构类型为单一结构、上下结构、上中下结构、左右结构或左中右结构。
步骤4)所述字段的显示属性包括:是否可见、是否只读、显示宽度、可否排序、显示格式。
步骤5)所述按钮的属性包括:是否可见、标题、提示信息。
步骤6)所述转换过程为:将XML的form、part、field、button节点转换为JAVA的Map对象;将节点的属性作为Map的key-value键值对;将XML的parts、fields、buttons节点的转换为JAVA的List对象,将这些节点的子节点转换生成的Map对象按照XML的顺序加入到List对象中。
Map中的key-value键值指:是否可见、是否只读、显示宽度、可否排序、显示格式、标题、提示信息。
本发明具有如下优点:
本发明与现有技术相比,开发人员无需编写源码,可以通过数据模型就能设计出用户界面,提高了WEB程序的开发效率。同时,由于使用统一的CSS,保证了用户界面的风格统一。
附图说明:
图1是本发明的装置的组成示意图。
图2是图1的详细结构图。
图3是本发明方法的工作流程图。
具体实施方式:
为了加深对本发明的理解,下面将结合实施例和附图对本发明作进一步详述,该实施例仅用于解释本发明,并不构成对本发明保护范围的限定。
1、表单设计单元中的元数据生成模块,其工作原理为:
通过JDBC接口(JAVA数据库连接技术)获取得到数据库中数据模型的字段属性信息,每个字段的属性有:字段名、字段类型、字段长度、数值精度、是否可空、是否主键。调用DOM4J接口(JAVA的XML文档访问技术)将字段信息转换为XML形式的元数据文件,格式如下:
<dd id="数据模型名称">
<fields>
<field id="字段名1" 字段属性… />
<field id="字段名2" 字段属性… />
<field id="字段名3" 字段属性… />
2、表单设计单元中的表单设计模块,其工作过程为:
首先使用表单结构设计其指定表单的结构类型(单一结构、上下结构、上中下结构、左右结构、左中右结构)。表单的结构决定了表单划分为多少个区域,比如:单一结构只有1个区域,上下结构有2个区域,上中下结构有3个区域……。
指定区域的类型(树型、列表型、详细型),调用DOM4J接口读取元数据生成模块的元数据文件,将元数据文件中的字段信息复制到区域中,这样在区域中就有了元数据文件中的所有字段。区域的类型决定了该区域中的字段在最终生成的用户界面展示为树形结构、表格还是详细信息。
使用字段设计器,修改区域中的字段的属性,并且设计字段的显示属性:是否可见、是否只读、显示宽度、可否排序、显示格式。
使用按钮设计器,在区域中添加按钮,并且设计按钮的属性:是否可见、标题、提示信息。这些按钮最终生成在用户界面中,提供用户操作。
最后由表单组装器将表单结构设计器、字段设计器和按钮设计器产生的信息组装起来,调用DOM4J接口保存为XML格式的表单文件。XML的格式如下:
<form id="表单名称" layout="表单的结构类型">
<parts>
<part id="区域名称" type="区域的类型">
<fields>
<field id="字段名1" 字段属性+显示属性… />
<field id="字段名2" 字段属性+显示属性… />
<field id="字段名3" 字段属性+显示属性… />
<buttons>
<button id="按钮名1" 按钮属性… />
<button id="按钮名2" 按钮属性… />
</part>
3、表单运行引擎单元中的表单装载模块,其中表单解析器的工作原理为:调用DOM4J接口读取表单设计器生成的表单文件,解析XML格式的文件并转换为JAVA对象。转换过程为:将XML的form、part、field、button节点转换为JAVA的Map对象;将节点的属性作为Map的key-value键值对;将XML的parts、fields、buttons节点的转换为JAVA的List对象,将这些节点的子节点转换生成的Map对象按照XML的顺序加入到List对象中。
4、表单装载模块中的表单装饰器,主要作用能够实现在WEB程序运行时控制用户界面的按钮、字段是否显示、是否只读等属性。其工作原理为:
通过JAVA的反射机制,实例化开发人员预先写好的JAVA类,将表单解析器得到的Map对象作为参数传递给该JAVA类,JAVA类对Map中“是否显示”、“是否只读”等key-value键值对进行修改。
将JAVA对象转换为浏览器能识别的JSON对象:调用org.json工具,将Map对象转换为JSONObject,将List对象转换为JSONArray。
5、表单运行引擎单元中的表单展现模块,其作用是在浏览器中展示出HTML页面,其工作过程为:
调用DOM生成器:根据JSON对象中所包含的表单结构,在HTML页面中创建div;根据区域包含的字段信息,在div里面创建table、label、ul、li、input;根据区域包含的按钮信息,在div里面创建button。
调用CSS生成器:往HTML页面添加统一的样式,这样做的好处是开放人员无需关心用户界面的显示风格(颜色、大小、字体)。如需将WEB程序的显示风格进行全局的更新,只需简单地改变CSS,然后WEB程序中的所有用户界面均会自动地更新。
调用JavaScript生成器:为表单中的每个按钮生成一段JavaScript脚本,用于监听点击该按钮的事件。

Claims (9)

1.一种基于XML的表单引擎装置,该装置包括表单设计单元和表单运行引擎单元,表单设计单元包括元数据生成模块和表单设计模块,表单运行引擎单元包括表单装载模块和表单展现模块;
所述元数据生成模块,用来读取数据库中的数据模型,并将数据模型中的字段属性信息转换为XML形式的元数据文件;
表单设计模块用于指定表单的结构类型,将表单划分为多个区域,将元数据文件中的字段复制到区域中,并添加用户操作的按钮;最终将表单信息组装起来,保存为XML格式的表单文件;
表单装载模块,用于读取以上XML格式的表单文件,解析表单内容,将XML格式的表单转换为Map对象;
表单展现模块,该模块根据JSON对象所包含的内容,在浏览器中创建DOM,CSS,JavaScript这3种HTML的基本元素,最终将表单展示为浏览器中的HTML页面;
所述表单装载模块包括:
表单解析器,用来读取表单文件,解析表单内容,将XML格式的表单转换为JAVA对象;
表单装饰器,调用开发人员预先写好的程序,对JAVA对象进行加工,并且转换为浏览器能识别的JSON对象。
2.根据权利要求1所述基于XML的表单引擎装置,其特征是:所述表单设计模块包括:
表单结构设计器,用于设计表单的结构类型,将表单划分为多个区域,将元数据文件中的字段放置在区域中;
字段设计器,用来调整字段的显示属性;
按钮设计器,用于添加用户界面上的操作按钮;
表单组装器,用来将表单结构设计器、字段设计器和按钮设计器的信息组装起来,保存为XML格式的表单文件。
3.根据权利要求1所述基于XML的表单引擎装置,其特征是:表单展现模块包括:DOM生成器、CSS生成器、JavaScript生成器。
4.根据权利要求1所述基于XML的表单引擎装置,其特征是:所述的表单设计模块,每个表单划分为多个区域,对应XML中的parts、part节点;每个区域包含字段信息,对应XML中的fields、field节点;每个区域包含按钮信息,对应XML中的buttons、button节点。
5.一种基于XML的表单引擎方法,该方法包括以下步骤:
1)读取数据模型,通过JDBC接口获取得数据模型的字段属性信息;
2)生成元数据文件,调用DOM4J接口将步骤1)的字段属性信息转换为XML形式的元数据文件;
3)指定表单的结构类型,将表单划分为多个区域,并指定区域的类型,调用DOM4J接口读取步骤2)的元数据文件,将元数据文件中的字段属性信息复制到区域中;
4)修改区域中的字段的属性,并且设计字段的显示属性;
5)在区域中添加按钮,并且设计按钮的属性;
6)调用DOM4J接口将步骤3)、4)、5)的设计信息保存为XML格式的表单文件;
7)调用DOM4J接口读取步骤6)生成的表单文件,解析XML格式的文件并转换为JAVA对象;
8)调用预先写好的JAVA类,将Map对象作为参数传递给该JAVA对象,JAVA对象对Map对象中的key-value键值对进行修改,并将JAVA对象转换为浏览器能识别的JSON对象:调用org.json工具,将Map对象转换为JSONObject,将List对象转换为JSONArray;
9)根据JSON对象中所包含的表单结构,在HTML页面中创建DOM对象;根据表单包含的区域信息,DOM对象中创建div;根据区域包含的字段信息,在div里面创建table、label、ul、li、input;根据区域包含的按钮信息,在div里面创建button;
10)往HTML页面添加统一的样式,将WEB程序的显示风格进行全局的更新,所有用户界面均会自动地更新;
11)为区域中的每个按钮生成一段JavaScript脚本,用于监听点击该按钮的事件。
6.根据权利要求5所述的基于XML的表单引擎方法,其特征是:步骤1)每个字段的属性有:字段名、字段类型、字段长度、数值精度、是否可空、是否主键。
7.根据权利要求5所述的基于XML的表单引擎方法,其特征是:步骤3)所述表单结构类型为单一结构、上下结构、上中下结构、左右结构或左中右结构。
8.根据权利要求5所述的基于XML的表单引擎方法,其特征是:步骤4)所述字段的显示属性包括:是否可见、是否只读、显示宽度、可否排序、显示格式。
9.根据权利要求5所述的基于XML的表单引擎方法,其特征是:步骤5)所述按钮的属性包括:是否可见、标题、提示信息;步骤7)转换过程为:将XML的form、part、field、button节点转换为JAVA的Map对象;将节点的属性作为Map的key-value键值对;将XML的parts、fields、buttons节点转换为JAVA的List对象,将这些节点的子节点转换生成的Map对象按照XML的顺序加入到List对象中。
CN201310657866.5A 2013-12-09 2013-12-09 基于xml的web表单引擎装置及方法 Active CN103631597B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310657866.5A CN103631597B (zh) 2013-12-09 2013-12-09 基于xml的web表单引擎装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310657866.5A CN103631597B (zh) 2013-12-09 2013-12-09 基于xml的web表单引擎装置及方法

Publications (2)

Publication Number Publication Date
CN103631597A CN103631597A (zh) 2014-03-12
CN103631597B true CN103631597B (zh) 2017-03-08

Family

ID=50212695

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310657866.5A Active CN103631597B (zh) 2013-12-09 2013-12-09 基于xml的web表单引擎装置及方法

Country Status (1)

Country Link
CN (1) CN103631597B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461513B (zh) * 2014-11-21 2018-01-09 山东航天信息有限公司 一种生成表单界面的方法及装置
CN104407868A (zh) * 2014-11-28 2015-03-11 国家电网公司 一种组织机构图的实现方法及装置
RU2015116133A (ru) * 2015-04-29 2016-11-20 Общество с ограниченной ответственностью "1С" Способ автоматизированного генерирования интерфейса приложения
CN105677803B (zh) * 2015-12-31 2019-07-02 清华大学 水文时序数据的json格式设定方法
CN105760440B (zh) * 2016-02-02 2019-06-04 广州市科南软件有限公司 在线表单设计器的实现方法及其系统
CN105912517B (zh) * 2016-03-31 2020-05-01 深圳市八零年代网络科技有限公司 可支持自由表单设计的数据结构及其转换方法及系统
CN107038148A (zh) * 2017-04-25 2017-08-11 大象慧云信息技术有限公司 Xml文档的解析方法及解析装置
CN107341141B (zh) * 2017-07-24 2020-11-10 上海网易小额贷款有限公司 表单管理方法、装置、介质和计算设备
CN107741903A (zh) * 2017-09-11 2018-02-27 平安科技(深圳)有限公司 应用程序兼容性测试方法、装置、计算机设备和存储介质
CN109669693A (zh) * 2017-10-16 2019-04-23 航天信息股份有限公司 一种基于动态页面生成表单页面的方法及系统
CN108038089B (zh) * 2017-12-01 2021-07-30 方欣科技有限公司 一种财税在线电子表单引擎
CN108446262A (zh) * 2018-02-11 2018-08-24 杭州连帆科技有限公司 一种表单生成、分析方法及装置
CN108200107B (zh) * 2018-03-30 2020-08-14 浙江网新恒天软件有限公司 一种在多域环境中实现单点登录的方法
CN110046336A (zh) * 2019-04-15 2019-07-23 南京孜博汇信息科技有限公司 位置编码表单处理方法及系统
CN111898049B (zh) * 2020-06-16 2021-04-13 广州市玄武无线科技股份有限公司 一种表格实现方法、装置、计算机终端设备及存储介质
CN112162801B (zh) * 2020-09-09 2021-08-06 埃尔利德(广东)智能科技有限公司 空压机设备通用Web在线流程图展示方法、系统介质及终端
CN112528615A (zh) * 2020-12-23 2021-03-19 安徽航天信息有限公司 税务系统中纳税申报表生成方法、装置及计算机设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102339314A (zh) * 2011-09-24 2012-02-01 国网电力科学研究院 一种基于xml的跨终端的数据表单描述与展现方法
US8396900B1 (en) * 2008-05-12 2013-03-12 Adobe Systems Incorporated System and method for editing an item list in electronic content
CN103020033A (zh) * 2013-01-10 2013-04-03 昆山百润科技有限公司 一种支持离线使用的电子表单系统及构建方法和电子表单

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8396900B1 (en) * 2008-05-12 2013-03-12 Adobe Systems Incorporated System and method for editing an item list in electronic content
CN102339314A (zh) * 2011-09-24 2012-02-01 国网电力科学研究院 一种基于xml的跨终端的数据表单描述与展现方法
CN103020033A (zh) * 2013-01-10 2013-04-03 昆山百润科技有限公司 一种支持离线使用的电子表单系统及构建方法和电子表单

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于XML的表单设计器构件的设计与实现;王瑞霞等;《计算机应用研究》;20070731;第183页左栏第1段,右栏第1-7段,第184页左栏第1-8段,右栏第1-8段,第185页左栏第1-3段,右栏第1-2段,图1-2 *

Also Published As

Publication number Publication date
CN103631597A (zh) 2014-03-12

Similar Documents

Publication Publication Date Title
CN103631597B (zh) 基于xml的web表单引擎装置及方法
CN107807913A (zh) 一种基于web的电子表单设计系统及方法
US9142192B2 (en) Simulation of web applications and secondary devices in a web browser, web application development tools, and methods using the same
RU2536390C2 (ru) Способ для автоматизированного создания отчетов
KR101975616B1 (ko) 소스 코드를 실행 요소에 링크시키는 기법
CN104424338B (zh) web系统的自动生成装置和自动生成方法
Kennard et al. Towards a general purpose architecture for UI generation
CN108984172B (zh) 一种界面文件的生成方法及装置
EP2724258A2 (en) Dynamically updating a running page
CN103383645A (zh) 代码生成方法及系统
EP2761448A1 (en) Simulation of web applications and secondary devices in a web browser, web application development tools, and methods using the same
CN101477462A (zh) 一种用于动态改变系统行为的模型驱动软件开发方法
JP6866551B2 (ja) 数式処理方法、装置、デバイス及びプログラム
Cerny et al. Model-driven rich form generation
Coppit et al. Spotlight: A prototype tool for software plans
Fujima Building a meme media platform with a JavaScript MVC framework and HTML5
CN104598636B (zh) 复杂文档分离组织方法以及复杂文档自动生成方法
JP2009237759A (ja) 表示制御装置、表示制御方法、及び、表示制御プログラム
da Cruz et al. Automatic generation of user interface models and prototypes from domain and use case models
Martin et al. Integration of a template system into model-based user interface development workflows
Trivedi User interface implementation of environmental data integration system with React
Ousterhout Fiz: A component framework for web applications
Cameron et al. Pro ASP. NET 3.5 Server Controls and AJAX Components
Ridjanovic Modelibra software family
Freeman Customizing Web Forms Controls

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant