APP下载

面向接口数据描述的XML应用研究

2013-10-17

网络安全技术与应用 2013年11期
关键词:表项数据类型表单

杨 婕

(山西中医学院医药管理学院 山西 030024)

0 引言

在实际应用中,用户需要设计出基于后台数据库的表单。开发人员将表单按照用户的需求设计在固有的系统中,可以在短时间内满足特定用户的需求。但是随着用户需求的改变,固定在系统中的表单可以导致可重用性差,可扩展性低,维护成本高等问题。

为了满足用户的不断变化的业务需求,设计一种表单设计器成为一种需求。XML(eXtensible Markup Language)作为一种可扩展标记语言,具备良好的自描述性和扩展性,以及对多语言的支持等特点。设计开发基于XML的表单设计器构件,以XML作为表单存储形式,由用户根据自身需求设计和管理基于后台数据库的表单,能很好的满足用户的需求,增强系统的可重用性,减少维护成本。

1 基于XML的设计表单设计器的系统简介

1.1 表单设计器功能简介

本系统所提供的表单设计器功能有:用户可以在表单设计界面设计票据,将设计的票据以XML文件的形式存储,生成与票据对应的后台数据库;可以解析识别生成的XML文档。本系统主要有两个大模块:表单设计和解析XML文档,其中表单设计模块包含表单设计界面,转化生成XML文档和生成数据库表3个模块。

1.2 表单设计器界面的特点

(1)灵活的界面设计。初始化界面时可由用户确定表单和票据的大小,并根据用户设定形成一个设计界面的网格背景。用户在设计表单的过程中可以根据需要灵活的调节网格大小。

(2)表单设计的过程中给表项指定属性,用以确定票据表项在后台数据库中对应的字段类型。

(3)用户可添加任意个数的表项和与之对应的表项内容。

1.3 表单设计器所提供的数据类型

用户设计表单时,需为设计的表项确定数据类型,以确定后台数据库中的字段类型。该表单设计器为用户提供了五种数据类型,分别是:默认性、数字型、日期型、固定型和自增型。

若用户不指定数据类型或指定为默认类型,在创建表时默认其为字符型,用户可以给其设置绑定默认值。用户指定这些类型,记录在动态的属性数组里,在创建数据库表的时候将其对应到数据库的表字段类型并在XML文档中记录这些信息。用户还可以将设计的表项内容绑定到相应的表项,在用户使用该表单时,表项内容中添加的数据必须是表项属性中设定的数据类型,否则,有在数据库中出现不合规定数据的可能。

2 利用页面信息生成表单对应的XML文件

XML本身仅仅是一种存储表单形式,并不能与应用程序进行交互。要实现与应用程序的交互,存储数据时就需要用XML解析器来解析XML文档。解析器分析XML文档的组成结构大致采用两种模型:线性模型和树模型。构造过程自顶向下。本系统采用DOM(Document Object Model,文档对象模型)模型来解析和生成XML文档。

DTD文档可看作一个或多个XML文件的模板。XML文件中的元素,即我们所创建的标记,是根据实际情况来创建的。本系统所生成的XML文档也是遵从给定的DTD文档的。

按照给定的DTD文档,用获取的动态数组与页面信息创建存储表单的XML文件。流程图如图1所示。

图1 创建xml文档的流程图

创建XML后将在指定的路径下生成一个XML文件,文件名由用户输入。如图2所示(生成一个user.xml文件,文件名user由用户输入)。

3 利用页面参数生成数据库表

用户设计好页面之后,不仅要有创建存储表单信息的XML文档,还要创建出与表单上的表项对应的后台数据库表。因此必须在本系统中动态生成数据库表,且生成的数据库表必须与设计好的界面绑定。使用ADOX技术可以在数据库中动态的创建数据库表。

根据获取的页面信息,来创建后台数据库表,创建的过程大致如下:

(1)创建ADOX的Catalog对象,(Dim tabl As New ADOX.Catalog)。连接数据库的搜索引擎,创建数据库连接,连接到指定数据库。

图2 系统生成的XML文件示例

(2)创建ADOX的Table对象,获取Table的表名,用于在指定数据库中创建一个表。

(3)重新声明全局的存放表项属性信息的动态属性数组。

(4)用ADOX的Append(Columns)方法,将新的 字段Column 对象添加到 Columns 集合中。

(5)创建新的表。将创建的新table对象添加到Catalog集合中。

数据库表创建成功之后,会在access指定的数据库中生成一个数据库表。

4 解析XML文档的过程

本系统XML文档的解析,是按照给定DTD文档解析的。若要使用本系统所设计的表单,只需根据本系统所提供的DTD文档写出相应的解析程序即可。解析过程大致如下:

(1)加载要解析的XML文档。

(2)若table节点不为空,获取其lnum与tnum这两个属性的信息。否则结束。

(3)重新声明用于存放属性的动态类型数组。用以存放解析的信息。

(4)遍历所有的row节点,将节点信息存放在row类型的数组里。

(5)遍历所有的text节点,将节点信息存放在text类型的数组里。

(6)根据解析的信息在不同的系统中生成相应的表单。

5 结束语

目前系统已经可以识别用户创建的表单,并将其解析成XML文档和在后台创建与之对应数据库表,很好的解决了固定在系统中的表单导致的可重用性差,可扩展性低,维护成本高等问题。

[1]王瑞霞 .基于XML的表单设计器构件的设计与实现[J].计算机应用研究.2007,27(7)

[2]Jake Strurm .开发XML解决方案[M].北京大学出版社

[3]Brett McLaugblim .Java 与 XML 数据绑定[M].中国电力出版社

[4]史胜利.VB中数据库编程时使用ADOX创建对象[J].阴山学刊.2007.03

猜你喜欢

表项数据类型表单
一种改进的TCAM路由表项管理算法及实现
电子表单系统应用分析
如何理解数据结构中的抽象数据类型
基于ARMA模型预测的交换机流表更新算法
基于图表示和匹配的表单定位与提取
浅谈网页制作中表单的教学
SDN数据中心网络基于流表项转换的流表调度优化
基于SeisBase模型的地震勘探成果数据管理系统设计
线上众筹产品的特征分析与研究
相似度计算及其在数据挖掘中的应用