admin 管理员组文章数量: 1184232
2024年4月20日发(作者:查看apk源代码)
维普资讯
纪 堡差
文章编号:1 671・1 041(2007)06-01 08-03
壁 塞旦
用XM L实现用户自定义表格发布
丁宏伟 ,郭字周2
(1.河北软件职业技术学院软件工程系,071000;2.河北大学计算中心,河北保定071 ̄2)
摘要: 利用XML数据存储与疑示分离的特点实现用户自定义表格的发布、
数据提交以及数据查询
关键词:XML;XSL;组件
中图分类号: ̄'P31 文献标识码:B
Using XML Realized User.defined
Table Deployment
DING Hong-wei1,GUO Zi-zhou
(1.Hebei Software Institute,071000;2.Computer
center,Hebei University,Baoding 071002)
Abslracl:Usjng XML characte ristic of data save and display separation
realized User-defined Table Deployment.data submit and data query
Key wOrds:XML:XSL:COmDOne nl
随着信息技术的发展,无纸化办公是必然趋势,然而在实现过
程中处理表格蚓人们遇到了困难。表格形式种类繁多、各式各样,
而关系型数据库中表对象是严格二维形式,所以要实现表格的无纸
化首先要解决的问题是:非二维表格数据与二维表对象数据的转
换。为解决此问题,我们提m利用XML数据存储与显示分离的特
点实现片j户自定义表榕的发布、数据提交及数据查询思想。
1 XML
XML(eXtensible Markup Language,可扩展置标语言)是由
w3C于1998年2,呵发布的…种标准,同HTML一样足SGML的
一
个简化子集。它将SGML的丰富功能与HTML的易用性结合到
web应瑚中, 、种开放的角我描述方式定义数据结构,在描述数
据内容的 时能突出I 'J 结构的描述,从而体现数据之间的关系。
XML1)勺最大优点征 :它的数据存储格式 受显示格式的制
约。它把显示格式从数据内容中独立出来,保存在样式表文件
(Style Sheet)婶、这样如果需要改变文档的短示方式,只要修改
样式表文件即可。
2 XSL
由于XM[ 史刷预先确定的标记,所以浏览器不知道如何显
示 一个XML文档 为了挂示XML文档,必须有一个机制来描述
如何显示文档,这 机制前选就是可扩展的样式表语言XSL。就
显示XML文件 亩。XSI 样式表比串接样式表(CSS)具有更
丰富的功能。XSI 样式表提供了完整的输出控制权.利辟】XSL能
够精确地挑选 Ill要 示晌XML数据 并且可以自由地修改或新增
信息。XSL还提供了对所有XML组件(像元素、属性、批注和
处理指令)的控制权,利用XSL可以轻松地区分、逛滤XML数
据
3设计与实现
3.1 设计思想
明户办公所j}j裘辫种类繁多、各式各样,在用计算机软件实现
过程 可以归为以 i .L什情况:
(1)在用 呵以接受ffj情况下川’以通过变通表格样式,使之符
收稿日期:2007—07—22
1O8 ElC Vo1.14 2007 No.6
合数据库三个范式,这样就可以和数据库表形成对应关系。
(2)表格可以通过变通样式符合数据库三个范式,用户也可以
接受,但由于表格结构中,大部分是描述性单元格,数据单元格只
是极少部分。这样会造成数据库大量冗余,并非理想情况。
(3)表格可以通过变通样式符合数据库三个范式,但由于使用
上的习惯,用户不能接受。用户习惯以传统表格的样式与浏览表格
数据。
基于后两种情况,我们提出如下设计思想:结合XML数据存
储与显示分离的特点,利用xML技术存储表格样式:数据库中只
存储数据单元格的数据,这样不会造成数据库的大量冗余;用XSL
解决显示问题。
由于用户表格样式千差万别,所以我们设计目标不是针对某一
具体表格或一类表格,而是提供一种工具。用户只需用熟悉的
Microsoft EXCEL制作表格,然后通过该系统实现表格的转换、
发布、数据提交及数据查询,流程图如图l。
图1流程斟
3.2实现步骤
3.2.1 EXCEL表格约定
根据转换及统计的需要,我们对EXCEL表格作如下约定:
(1)A1单元格存放表格的行数,B 1单元格存放表格的列数,
C1单元格存放单元格的名称。
(2)由于在转换过程中,转换工具要根据EXCEL表格中单元
格的数据类型来决定所创建数据库表字段的数据类型,所以要求用
户定义表格数据单元格的数据类型。
(3)由于转换工具无法获取描述性单元格与数据单元格之间的
关系.比如图中的姓名单元格A2和待填姓名单元格B2,所以要求
用户在制作表格时,标明哪些是数据单元格(约定用 表示).哪
些是空白单元格(约定用 表示),同时还要填写数据单元格扼
要说明。比如职工信息表ZGXX,XLS如图2。
D醇日庙I
璺 堡雯塑 堂堡垒 ;
凸 铲 矗l
塑 王 婴墼堡 L暮 =
… r■z 2l }I11回 J
:挈 ——…
宋 ’n’
Il1 .r一可——
j『……一
2 l蛙各l 蛙名 性别l・性剁】并份证号I ‘身恃证号
3・ l各糌 -工作卓倥占称
4『工1 罩位I通讯地址 ・通讯地址 f单位性店l 卓世注质
5} i鞋系电话 ・联系电话 ☆嘞蝙碥I 蟪张
6 I毕业院拉、专业最毕 毕业 撞I 哗业嘲 {矗高聿历 l ・最高苇所
—
业时同 专业I ・专业 l毕业时问 I 哗业时问
8 I取得专业摧术职务任 时同『 ・任职资描at何 f参加工作对同I’鲁加工作时间
9 l暇资格 名称l ・任职资格名瑞 l摹率号业年强/ 从辜率幸业年
3.2.2表格转换组件
转换组件读取EXCEL表格。主要完成
欢迎光临本刊网站http://www.eic.com.cn
维普资讯
仪器仪表用户
21世纪人才培养伊
(1)创建表格的XML模板文件~M—ZGXX XML (5)向数据库表对象A._TjNFO添加新表格信息
转换组件逐行读取每一个单元格,根据单元格中的各种约定符 此表为整系统一张表记录所有已发布表格信息,用户通过此表
号来创建XML文档中相应节点。节点值为“ ”表示此节点单元 了解系统中有哪些已发布的表格。
格将来显示为空白,节点值为“ ’表示节点单元格将来显示为文
本框。另外每个节点设有三个或四个属性.rowspan和colspan属
性分别标识单元格的行数和列数,取自EXCEL单元格的
3.2.3显示提交页面的XSL样式文件
MergeArea.rows.Count和MergeArea.Columns.Count属性,
显示提交页面的XSL文件为通用文件,根据XML模板文件节
width属性决定页面所显示文本框的大小,取自ExCEL单元格的
点的rowspan、colspan设置所显示表格的结构,id、width属
width属性。转换后的XML模板如下所示。
性分别作为所显示文本框的id、name和size大小。
<?xml version=”1-0”?>
<?xml—stylesheet href=' transform xsl”type=”text/xsl ̄ ?>
<TABLE border=”1t' cellspacing=”0” cellpadding=”0”
<TABLE>
bgcolor=”#ccffff style=”border—collapse:collapse”>
<TR>
<xsl:for—each select=”TR ’>
<td id=”C2 1”rowspan=”1”colspan=”1”>姓名</td>
<TR>
<td id=”C2
2”r0wspaI1=”1”colspan=”1”、vidth=’ r> </td>
<xsl:ofr—each select=”td”>
<td id=”C2 3”rowspan=”1”colspan=”1”>性别</td>
<xsl:variable name=”num”><xsl:value—of select=”.”/></xs1:v
<td id=”C2M'’rowspan=”1”colspan=”1”width=”3’>r </td>
affable>
<td id=”C2
_
5”row ̄an=”1”colspan=”1’『>身份证号</td>
<xsl:variable name=”rr”select=”@rowspan”></xsl:vaffable>
<td id=’℃2
6 mwspan=”l”co.an=”3”width=”12 :td>
<td rowspan=”{@rowspan}”colspan=”{@colspan}”>
</TR>
<xsl:if test=”¥num=’ ’and¥rr=’1” >
<input type=”text”id=”{@id}”name=”{@id}”size
</TABLE>
=
”{@width}”></input>
(2)创建表格数据单元格的XML文件一D—zGXX.XML
</xsl:if>
虽然上面已经定义了XML模板文件,但在有些表格的结构中,
<xsl:if test=”¥num=’ ’and¥rr!=’1 >
大部分为描述性单元格,数据单元格占很少部分,所以为了提高数据 <textarea id=”{@id}”cols=”{@width}”></textarea>
校验速度,需要单独为所有数据单元格创建了一个XML文件。
</xsl:if>
<?xml version=”1.0”?>
<xsl:if test=”¥num=’’”>
<TABLE>
</xsl:fi>
<C2 2></C22>
<xsl:if test=”¥num I_’ ’and¥num!=…’>
<C2
_
4></C2-4>
<xsl:value—of select=”.”,>
<C2 6></C2 6>
</xsl:if>
</td>
<厂rABLE>
</xsl:ofr—each>
(3)仓啦塞 备 娄哳荦 O 帕,*jXML Schema文件~D—S—ZGXX.XSD
<,TR>
在数据提交前,为校验数据的合法性,需要创建一个数据单元
</xsl:ofr—each>
格的XML Schema文件。
<,TABLE>
<?xml version=”1.0”?>
<xsd: ̄hema xmlns:xsd=”http://www.w3.org/m0 )( chema’I>
3.2.4提取数据并生成XML文件的组件、数据校验组件、
<xsd:element name-:’TABLE”type=”C TYPE1’'></xsd:element>
数据提交组件
<xsd:complexType name=”C TYPE1”>
提取数据并生成XML文件的组件负责将用户填写的数据根据
<xsd:sequence>
D
<xsd:element name:”C2 2”type=”xsd:string”/>
ZGXX.XML生成携有结果的D—zGXX—R.XML文件。数据校
<xsd:element name=”C2 4”type=”xsd:string”/>
验组件调用XML Schema文件D—S—ZGXX.XSD对
D
ZGXX
—
R.XML文件中的数据进行合法检验,若数据正确,则
<xsd:element name:”C2 6”type=”xsd:string”/>
数据提交组件负责将数据发送到服务器端,若数据非法,!l!lJ终J 数
据提交,返回用户界面。
</xsd:sequence>
</xsd:complexType>
3.2.5定义查询条件组件
</xsd:schema>
由于表格任意,无法预先定义查询条件,所以我们设计了用户
(4)在数据库中创建相应的表对象
自定义查询条件组件,用户可以根据需要通过该组件自行定义查询
提交数据表zGXX
条件,决定显示风格。如图3所示。
此表结构只对应EXCEL表格中带有单个“ ’号单元格,表
字段数据类型取决下单元格数据类型,宁段名称为XML模板文件
中对应节点的id。比如上述表格对应的数据表zGxx结构为:
魏l
]i
-
a 1,
至 !
I
~
回— — 卫— 一
{......... .......j,..,.,.,...,... ,J . .... ....... .,...,...,. .,.......... ...... ...................一
带有单个“牢.’号单元格的扼要描述与提交数据表zGXX字
段对应关系表ZGXX—DY。此表在用户自定义条件查询时使用。
_
l ‘tII
”
型I
圈3自定义查询条件组件
欢迎订阅欢迎撰稿欢迎发布产品广告信息
ElC VO1.14 2007 No.6 1O9
维普资讯
! 纪 堡羞
3.2.6查询结果转换组件、显示查询结果的XSL样式文件
数据库的查询结果为二维表形式,该组件根据模板文件
ZGXX.XML,将查询结果转换成携有结果的M—ZGXX—R.XML
文件,然后经显示查询结果的XSL样式文件转换后以表格形式通
过浏览器显示输出。
M
—
仪器仪表用户
法,并详细阐述了该方法实现过程中的几个关键步骤。解决了用户
自定义表格与关系数据库中表对象的相互转换问题,推动了无纸化
办公的进程。圆
参考文献
[1】王超,张鹏著.ASP.NET/XML深入编程技术.北京希华电子出版
社,2o02.
3.2.7非原表格样式显示结果组件
该组件实现比较简单,是将查询结果不经任何转换直接以原二
维表形式显示输出。
4
[2】Chris Knowles等著.刘爽译.ASP.NET XML高级编程一C#编
程篇.清华大学出版社,2O02.
结合 的特点本文提出了处理用户自定义表格的XML
种方
~… 。 … ……
一
盏
’ …” ’
( 1974)硕,-k士-
…” 。 。
艨惭 郭
文章编号:1 671-1 041(2007)06-01 1 O-O2
基于FPGA的测频技术的一种
王丽霞,陈万里
(黄河科技学院,郑州45o ̄3)
摘要:以FPGA为核,ha9高速高精度的频率测量,不同于常用测频法和测周
产生±1个字误差,并且测试精度与计数器中记录的数值Nx或Ns
期法 本文介绍的测频方法.不仅消除了直接测频方法中对测量频率需要采
有关。为了保证测试精度,一般对于低频信号采用测劂期法;对于
用分段测试的局限.而且在整个测试频段内能够保持高精度不变。又由于采
高频信号采用测频法,因此测试时很不方便,所以人门提出等精度
用FPGA芯片来实现频率测量.因而具有高集成度.高速和高可靠性的特
点。
测频方法。 ‘
等精度测频方法是在直接测频方法的基础上发展起米的。它的
关键词:频率:测量:FPGA
闸门时间不是固定的值,而是被测信号周期的整数倍,即与被测信
中图分类号:TP1 1 文献标识码:B
号同步,因此,消除了对被测信号计数所产生±1个字误差,并且
Design of Frequency Measurement
达到了在整个测试频段的等精度测量。其测频原理如图1所示。
Technology Based on FPGA
赛 闸r1}=== :
}j11】l1lll l1ll】 lllll岫姗llj】】lllij mulII】
WANG li.xia.CHEN Wan-li
r~ ——■
(Huang He Science and Technology College,
Ⅻ e n广]厂_]n广]
一
、
M———
Zhengzhou 450063)
图1 等精度测频原理拨形图 图2等精度测频买现方法的原理
Abstract:The high precise measurement technique based on FPGA is
diferent frOm frequency measurement or period measurement.This
在测量过程中,有两个计数器分别对标准信号和被测信号同时
paper presents the way of frequency measurement not only eliminat
计数。首先给出闸门开启信号(预置闸门上升沿),此时计数器并
ion of direct frequency measurement method for measuring frequency
不开始计数,而是等到被测信号的上升沿到来时,计数器才真正开
required by subparagraph Inter test.but also in the entire test
始计数。然后预置闸门关闭信号(下降沿)到时,计数器并不立即
frequency can be maintained within the same precision.because
停止计数,而是等到被测信号的上升沿到来时才结束计数,完成一
FPGA chip to achieve frequency measurement,Hence.it has high
次测量过程。可以看出,实际闸门时间f与预置闸门时间d并不严
integration,high speed and high reliability features.
格相等,但差值不超过被测信号的‘一个周期。
Key words:frequency;measurementFPGA
设在一次实际闸门时间f中计数器对被测信号的计数值为Nx,
对标准信号的计数值为Ns。标准信号的频牢为fs,则被测信号的频
在电子测量技术中,测频是最基本的测量之~‘。常用的直接测
率为
频方法在实用中有较大的局限性,其测量精度随着被测信号频率的
fx=(Nx/Ns)fs (1)
由式(1)可知,若忽略标频fs的误差,则等精度测频可能产
下降而降低,并且对被测信号的计数要产生±1个数字误差。采用
生的相对误差为
等精度频率测量方法具有测量精度,测量精度保持恒定,不随所测
O=(Ifxc—fxl/f-xe)x 100% (2)
信号的变化而变化:并且结合现场可编程门阵列FPGA(Field
其中fxe为被测信号频率的准确值。
Programmable Gate Array)具有集成度高,高速和高可靠性的特
在测量中,由于f)【计数的起停时间都是由该信号的t升测触发
点,使频率的测频范围可达到0.1Hz~100MHz,测频全域相对误
的,在闸门时间f内对f)【的计数Nx无误差( NxTx);对fs的计
差恒为1/1o00ooo。
数Ns最多相差一个数的误差,即l zSNsl<1.其测量频率为
1 测频原理及误差分析
fxc=(Nx/(Ns+ ̄SNs))/fs (3)
常用的直接测频方法主要有测频法和测周期法两种。测频法就
将式(1)和(3)代入式(2).并整理得:
是在确定的闸门时问Tw内,记录被测信号的变化周期数(或脉冲
6=1 zSNsl/Ns≤1/Ns=1/(f・fs)
个数)Nx,则被测信号的频率为:fx=Nx/TW。测周期法需要有标
由上式可以看出,测量频率的相对误差与被测信号频率的大小
准信号的频率fs,在待测信号的一个刷期Tx内,记录标准频率的周
无关,仅与闸门时间和标准信号频率有关,即实现了整个测试频段
期数Ns,则被测信号的频率为:fX=fs/Ns 这两种方法的计数值会
的等精度测量 闸门时间越长,标准频率越岛,测频的相对误差就
越小。标准频率可由稳定度好、精度高的高频率晶体振荡器产生,
收稿日期:2007—08—21
在保证测量精度不变的前提下,提高标准信号频率,可使闸门时间
1 10 EIC VOI.14 2007 No.6
欢迎光临本刊网站http://www.eic.com.cn
版权声明:本文标题:用XML实现用户自定义表格发布 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1713605039a642953.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论