




已阅读5页,还剩56页未读, 继续免费阅读
(计算机软件与理论专业论文)excel到xml数据自动转换组件的研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
捅要 一论文题目 e x c e l 到x m l 数据自动转换组件的研究与应用 学科专业 计算机软件与理论 研究生 白仲贵 指导教师 张毅坤教授 摘要 签名 签名 e x c e l 具有强大的数据表现能力和处理能力 以及它极低的使用成本和良好的易用性 使得e x c e l 在中小型企业信息化过程中产生极其重要的作用 同时也使得目前绝大多数应 用系统都离不开与e x c e l 报表进行交互 提供e x c e l 报表导出和导入功能 随着x m l 的 西益普及 逐渐戒为数据交换的标准 一些专业人事对e x c e l 到x m l 的转换进行了一些 应用研究 更重要的是m i c r o s o f te x c e lx p 及以后版本都对x m l 提供了很大的支持 针对当前e x c e l 到x m l 数据转换需要入互参与的局限性 本文首先提出一种e x c e l 到x m l 数据自动转换的方法 该方法采用两级映射 模板样式到模板结构树和模板结构 树到x m l 架构 根据e x c e l 模板自动生成x m l 架擒 在架构生成过程中自动记录各数 据单元格的映射路径 然后借助e x c e lx m l 映射机制将e x c e l 报表数据自动转换成与模 板样式相对应的x m l 数据文件 其次以此方法为基础进彳亍e x c e l 到x m l 数据自动转换 组件的设计与实现 该组件最终在 n e t 环境下实现 并遵循c l r 组件设计标准 最岳发 布的组件具有很强的复用性 不仅可以在 n e t 环境下跨语言复用 同时可以与c o m 互操 作 实现跨平台复雳 最蜃将该组件瘴用予 基于e x c e l 的通用数据采集与汇总平台 实 际项目中 从而有效解决了企业数据采集与汇总所面临的问题 平台实现数据自动采集和 自动 汇总的思想是将e x c e l 报表数据自动转换成与e x c e l 模板相对应的x m l 数据 并存储 到大型数据库中实现数据的自动采集 同时将数据库中的x m l 数据采用x o u e r y 语言自动 提取并插入到e x c e l 汇总模板单元格中实现数据的自动汇总 实践表明 通过使用该数据自动转换组件 使应用系统对e x c e l 报袭的数据采集更加 容易 更加有利于系统扩展与集成 关键字 组件技术 x m l 架构 数据自动转换 数据采集 数据汇总 a b st r a c t 一 t i t l e r e s e a r c ha n da p p l i c a t i o no nc o n v e r t i n ge x c e l t o x m ld a t aa u t o m a t i c a l l yc o m p o n e n t m a j o r c o m p u t e rs o f t w a r ea n dt h e o r y n a m e z h o n g g u ib a i s u p e r v i s o r p r o f y i k u nz h a n g a b s t r a c t a se x c e lh a ss t r o n ga b i l i t yt or e p r e s e n ta n dp r o c e s sd a t a a n di t i su s e de a s i l ya n dw i t h v e r yl o wc o s t i tp e r f o r m sav i t a lr o l ei np r o c e s so fi n f o r m a t i z a t i o nf o rs m a l la n dm e d i u m s i z e b u s i n e s s e s a tt h es a n l et i m em o s t l ya p p l i c a t i o ns y s t e m sm u s ti n t e r a c tw i t he x c e la n dp r o v i d e t h ef u n c t i o no fe x p o r t i n ga n di m p o r t i n gd a t a w i t hp o p u l a r i z a t i o no fx m l a n di tb e c o m et h e s t a n d a r do fd a t ae x c h a n g eg r a d u a l l y s o m ep r o f e s s i o n a l sh a v er e s e a r c h e do nc o n v e r t i n ge x c e l t ox m li na p p l i c a t i o n m o r ei m p o r t a n t b o t hm i c r o s o f te x c e lx pa n dl a t e rv e r s i o n sp r o v i d e g r e a ts u p p o r tf o rx m l w i t ht h el i m i t e df u n c t i o n a l i t yo fc o n v e r t i n ge x c e lt ox m lm a n u a l l y t h i sp a p e rf i r s t l y s u g g e s t saw a y t oa u t o m a t i c a l l yc o n v e r te x c e lt ox m l i tu s e st w ol a y e rm a p p i n g t e m p l a t e m a p st ot e m p l a t es t r u c t u r et r e e a n dt e m p l a t es 觚c 嗽t r e em a p st ox m l s c h e m a f i r s t l y x m ls c h e m ai sg e n e r a t e da u t o m a t i c a l l yf r o me x c e lt e m p l a t ea n dt h em a p p i n gp a t ho fe a c h c e l ld a t aa r ea l s oa u t o m a t i c a l l yr e c o r d e d t h e nt h er e l a t e dx m l d o c u m e n tw h i c hi si na c c o r d w i t ht e m p l a t ei sa u t o m a t i c a l l ys e p a r a t e df r o me x c e lr e p o r td a t ab y t h ee x c e lm a pm e c h a n i s m t h e nt h ec o m p o n e n to fc o n v e r t i n ge x c e lt ox m la u t o m a t i c a l l yi sd e s i g n e da n di m p l e m e n t e d b a s e do nt h ew a y t h i sc o m p o n e n ti si m p l e m e n t e du n d e rt h e n e te n v i r o n m e n tf o l l o w i n gt h e c l rc o m p o n e n ts t a n d a r df i n a l l y a n dt h ec o m p o n e n tr e l e a s e dh a sr e u s a b i l i t ys t r o n g l y n o to n l y c r o s s i n gd e v e l o p i n gl a n g u a g e su n d e r n e te n v i r o n m e n tb u ta l s oc r o s s i n gd e v e l o p i n gp l a t f o r m t h r o u g h ti n t e r o p e r a t i n gw i t hc o m f i n a l l yi t b ea p p l i e di n t ot h ep r a c t i c a lp r o j e c tt h a t t h e c o m m o nd a t aa c q u i s i t i o na n ds u m m a r i z i n gp l a t f o r m a n dt h ep r o b l e mo f d a t aa c q u i s i t i o na n d s u m m a r i z i n gf a c e db ye n t e r p r i s e i sr e s o l v e de f f e c t i v e l y t h ec o r ei d e ai st h a ts a v e dx m l c o n v e r t e df r o me x c e li n t ol a r g ed a t a b a s et or e a l i z ed a t aa c q u i s i t i o na u t o m a t i c a l l ya n dq u e r i e d d a t af r o md a t a b a s eb ym e a n so fx q u e r ya n di n s e r t e dt h ed a t ai n t oc e l lo fs u m m a r i z i n gt e m p l a t e t or e a l i z ed a t as u m m a r i z i n ga u t o m a t i c a l l y p r a c t i c eh a sp r o v e dt h a tt h ec o m p o n e n tu s e dw i l lb em u c he a s i e rt oc o l l e c td a t af r o me x c e l t a b s t r a c t r e p o r ta n db em o r ea d v a n t a g e o u st os y s t e m se x p a n s i o na n di n t e g r a t i o n k e yw o r d s c o m p o n e n tt e c h n o l o g y x m ls c h e m a d a t ac o n v e r t i n ga u t o m a t i c a l l y d a t a a c q u i s i t i o n d a t as u m m a r i z i n g i i 独刨性声明 秉承襁国优良道德传统帮学校的严谨学风郑重申爨 本人所呈交的学位论文是我 个人在导师指导下进行的研究工作及取得的成果参尽我所鲰 除特别加以标注期致谢 的地方外 论文中不包含其他人的研究成果 与我一同工作的间忐对举文所研究的卫 一 作翻成果的任何贡献均已在论文中作了明确的说鳃并已致谢 本论文及其相关瓷料若有不实之处卜 由本人承担一切相关责任 本天 并已经在 论文佟者签名 蛐 一 如睁 3 蔗 矽 窭 学位论文使用授权声明 导帮皱指导下黼佟完成毕监论文一 事太邑逶涟论文的筹辩 请博士 硕士学位 本人作涛学位论文著作投拥有者 同意 授较麟安理王大学期宥学健论文黪部分使用投 帮 一薹 瑟获学位的研究生按学校篾定 提交印刷版和电子版学位论文 学校可以采用影印 缩印或其他复制手段保存研究生 主交豹学授论文 可叛将学位论文的全部或部分内容编入有关数据库进行检索 2 为 教学鞠科研目的 学校可以将公开的学位论文或解密后的学位论文作为资料在图书馆 资料室等场所或在校鼹爨上供校蠹师生瓣读 测览 本入学健论文全部或部分蠹容的公布 包括刊登 授权西安毽王大学研究生部办 理 保密的学位论文在勰密艨 适用本授权说明 论文作者签名趣塞 导师签名 力芎年 月码自 绪论 1 绪论 1 1 选题背景和意义 在实施山东某煤矿 数据采集与汇总 的项目中 作者了解到 该煤矿数据采集与 数据汇总面临以下问题 1 数据来源e x c e l 报表居多 该煤矿有十几个科室 并且各科室每月需要向企管科上报数据 由企管科负责全矿的 统计工作 这些科室需要在5 个工作日内 完成数十张e x c e l 报表的上报工作 如何保证 这些用户能够顺利完成填报 是一个重大的问题 2 报表种类繁多 报表样式复杂 报表格式经常发生变化 各科室上报的报表共有4 0 余种 这些报表有简单的固定表单 也有复杂的动态变长 表单 报表的信息之间有着复杂的校验关系 并且 每年年底 报表样式及统计指标均会 发生一定变化 如何在这样的情况下 保证信息的采集不因为报表样式的变化而受到影响 如何保证收集到的信息的规范性和正确性 是该项目面临的极大挑战 3 数据采集低效 在没有实施该项目之前 各科室要么在纸面上填写表格的方式来填写信息 再传真到 该统计机构或人工提交到企管科 要么以电子邮件的形式将e x c e l 报表发送给统计机构 然后由企管科将信息录入到一个专用的管理信息系统中 才能够进行信息的汇总分析 从 企业开始填报信息 到最终得到统计结果 需要半个月到一个月的时间 4 采集处理成本高昂 印刷纸面表单的成本 管理这些纸面表单的成本以及录入人员的成本等 使得过去信 息采集的成本一直居高不下 5 信息可复用程度低下 企业上报的信息 要么是纸面传真 要么是电子文档 要么是电子邮件 这些信息 无法直接提供给该企管科目前正在运行的企业信息管理系统 决策支持系统等实用 而必 须由专人将这些信息分别录入到应用系统中才能发挥信息的价值 为了解决以上数据采集与汇总面临的问题 作者设想了一种基于e x c e l x m l s o l s e r v e r 的数据采集与汇总解决方案 该解决方案的基本思想是用户前端使用e x c e l 进行 数据采集 并将采集到的e x c e l 数据转换为x m l 存储到数据库中 同时利用e x c e l 制作汇 总模板 然后将x m l 数据插入到汇总单元格中进行汇总 该解决方案的特点是 利用x m l 将电子表格软件e x c e l 和大型数据库管理系统s q ls e r v e r 进行集成 充分发挥e x c e l 的 应用水平 通过设计模板 定义表间公式等简易直观的操作 轻松 快速地将企业内部分 散的e x c e l 报表集中管理 并通过定制数据汇总模板的形式进行数据汇总分析 以支持决 策 基于此方案设计的数据采集与汇总平台 将易于系统集成 能够适应企业业务变化和 提高信息收集 汇总和分析的效率 但是为了使基于该解决方案的数据采集与汇总项目能 西安理工大学硕士学位论文 够顺利实施 那么必须解决e x c e l 到x m l 数据自动转换的问题 另外 由于e x c e l 报表存在的普遍性 以至于大多数企业信息系统如o a 系统 e r p 系统和m i s 系统等 或多或少都离不嚣与e x c e l 报表进行交互 实现数据采集 同时由于 x m l 是一种通用的数据交换标准 因此对e x c e l 到x m l 数据自动转换组件的研究具有一定 的现实意义 不仅能够减少系统开发中对e x c e l 数据采集所花费的时间 提高系统开发效 率 同时也能够降低应用系统与e x c e l 数据采集的耦合度 提高系统的扩展性 l 2e x c e l 到x m l 数据转换的现有方法 矾l 的不断普及 使得对x m l 的数据处理较e x c e l 容易的多 工程领域出现e x c e l 到 x m l 数据转换的不同方法 本节对每一种方法进行介缨n 喇 1 无格式转换 这种方法是用特殊的库来读取e x c e l 文档 e x c e l 文件格式并没有官方文档 但是 一些第三方机构曾对其进行逆向工程 他们还生成了一些用于解码e x c e l 文件的库 下 面列出一些可用的a p i j a v ae x c e l 是使用j a v a 编写的操作e x c e l 酶a p i 因为它是可移孝袁的 被缎多久使 用 可以很好地读取x m l 文档 还可以转换成x m l x m le x c e l 这是一个p e r la p i 用予将e x c e l 文档转换戒x m l o p e n o f f i c e 其中包括用于读取e x c e l 文档的c 库 可以用这些库作为将e x c e l 转换 成煳l 的基础 a p a c h ep o i 它支持在j a v a 代码中读取e x c e l 文件 同样 也可以把它用作e x c e l 转 换成x m l 的基础 使用这种方法转换e x c e l 文件能带来三方面的好处 文件可以运行于任何平台上 这些库可以很容易地与服务器集成 用户不需要自己导出数据 这种方法存在的阆题是不仅开发人员需要邋过调用这些a p i 来实现数据格式的转换 同时还需要编写x s l t 对转换后的x m l 进一步转换 因为 调用a p i 转换后的x m l 有很多 冗余信息 如单元格 2 c s v 文件 这种方法较第一种方法是不需要直接操作实际的电子表格 而是改为操作c s v c o m m a s e p a r a t e dv a l u e 文件 c s v 是用来交换电子表格文件的常用格式 任何适当 的电子表格都可以通过c s v 文件导出和导入 此外 很多可以处理电子表格的第三方产龋也都支持c s v 例如 大多数会计软件包 都可以处理c s v 文件 尽管c s v 文件不是x m l 但用x m le x p l o r e r 或x m l s p y 工具很 容易将其转换成x m l 文件 t o p x m l 站点上也包含了纯x s l t 转换方法的算法 使用c s v 文件对于服务器的吸弓 力更大一些 首先用户不再被限制在菜种特定的平 2 绪论 台上 而是为用户提供了更多的选择 用户现在可以用l o t u s1 2 3 以及其他电子表格工 具 也可以使用很多能够识别c s v 格式的第三方工具 这种方法唯一的缺点是 用户必须花费额外的步骤 首先要将e x c e l 数据保存为c s v 然后借助c s v 到x m l 的转换工具把c s v 转换成x m l 甚至也需要编写x s l t 对转换后的x m l 进一步转换 3 x m l s s 最新版本的e x c e l 包括e x c e l2 0 0 2 和e x c e lx p 可以将电子表格导出为x m l 类 型文件 虽然无法选择其中使用哪些标签 但是的确可以得到一个有效的x m l 文档 同 时也可以用包括x s l t e x t e n s i b l es t y l e s h e e tl a n g u a g et r a n s f o r m a t i o n 样式表在内 的任意一种x m l 工具来处理它 这种格式称为x m l s s 4 e x c e lx m l 映射 m i c r o s o f to f f i c ee x c e l2 0 0 3 和e x c e l 2 0 0 7 不仅允许将e x c e l 文件保存为 x m l 表格 类型 同时可以将自己的x m l 架构定义 x s d 添加到工作薄 进行e x c e l 表的数据分离 提高了对使用本机x m l 的支持 将x m l 架构添加到e x c e l 工作薄后 就可以创建一个x m l 映射 就可以导入或导出数据 使数据变得更有意义 因此 使用者可以导入符合自定义 m l 词汇或架构的数据 然后使用相同的x m l 架构将该数据写回去 这种方法较其它的 方法更方便 但是需要编写 m l 架构 s c h e m a s c h e m a 和x s l t 都需要专业人员编写 因 为必须遵循一些语法规范 1 3e x c e l 到x m l 数据转换存在的问题 e x c e l 是一种流行的工具软件 可用于准备各种想用x m l 处理的数据 幸运的是 用户可以采用上一节介绍的很多方法从e x c e l 中获得x m l 数据 最好的选择需根据项目的 特定需求而定 尽管本章上一节所介绍的前三种方法都可以将e x c e l 转换为x m l 但使用中人们发现 最终得到的x m l 文档和人们期望的相差甚远 也许里面会包含一些不需要的单元格 或 甚至连x m l 词汇表都不是最终想要的 尽管可以采用x s l t 样式表进行数据格式转换 但 是需要开发人员为每一个e x c e l 转换文档编写x s l t 尽管编写x s l t 不是太复杂 但无疑 增加系统的开发时间 同样本章上一节所介绍的 e x c e lx m l 映射 数据转换方法借助e x c e l 的x m l 映射机 制进行数据转换 较其它方法更加方便 但是需要针对自己所要提取x m l 数据的需要 编 写自定义x m l 架构 x s d 由于编写x m l 架构比较复杂 在系统开发过程中 如果要对多 张e x c e l 报表进行数据转换 那么需要花费很长的开发时间 可以看出来 上一节介绍的四种数据转换方法 都存在一个问题 数据转换需要人工 干预 需要针对每个e x c e l 文件编写x s l t 或s c h e m a 基于以上背景 本文对 e x c e lx m l 映射 的数据转换方法进行改进 实现e x c e l 到 3 西安理工大学硕士学位论文 x m l 的数据囱动转换 整个转换过程无需人工干预 即不需要编写s c h e m a 该s c h e m a 是 根据e x c e l 模板自动创建 这种方法不仅可以提高系统开发效率 减少应用系统开发时间 同时使系统对e x c e l 报表的采集更加灵活 真正实现对e x c e l 采集的松教耦合 提高系统 的扩展性 1 4 本文研究的主要内容与论文结构安排 本文重点对 e x c e l 到x m l 的数据自动转换 的方法进行研究 并结合目前组件技术 的发展 设计和实现 e x c e l 到x m l 的数据自动转换 组件 论文主要包括以下研究内容 1 研究 e x c e l 到x m l 的数据自动转换 方法 即在现有数据转换的基础上进行改 进 使数据转换无需人工干预 实现e x c e l 到x m l 转换的鸯动化 2 研究 e x c e l 到x m l 的数据自动转换件 设计和实现 即在所研究的数据自动转 换方法和现有组件模型的基础上对组件进行设计和实现 3 将该组件应用到 基于e x c e l 的通用数据采集与汇总平台 实际项目中 从而解 决企业数据采集与汇总所面临的问题 本文具体的内容组织如下 第一章主要介绍论文的选题背景 意义和e x c e l 到x m l 数据转换的现有方法 第二章主要对c r l 组件技术进行简要介绍 第三章是论文的核心理论部分 详细讨论 e x c e l 到x m l 的数据自动转换 方法 为 组件的设计与实现奠定基础 第四章详细介绍组件的设计与实现 第五章简要介绍组件在 基于e x c e l 的通用数据采集与汇总平台 颈蔷中的应用 第六章对本文所研究的内容进行总结和展望 4 c r l 组件技术 2c r l 组件技术 本文第四章将在 n e t 2 0 0 5 环境下 使用c j f 语言对 e x c e l 到x m l 数据自动转换组 件 进行实现 最终将形成c l r 组件 所以本章先对c l r 相关概念进行简要介绍 c l r 是c o m m o nl a n g u a g er u n t i m e 公共语言运行时 的缩写 是 n e t 的核心技术 它可以视为是c 0 1 d 技术的继承和发展 它解决了c o m 组件模型中存在的主要问题 n e t 框架的分层结构如图2 1 所示 w e b 服务 框架和库 a s p n e t a d o n e t w i n d o w s 窗体 交互标准开发工具 s o a p w s d l v i s u a ls t u d i o n e t 2 0 0 5 组件模型 对象模型和c l s c l r 图2 1 n e t 框架的分层结构 f i g 2 1l a y e r e ds t r u c t u r eo f n e tf r a m e w o r 2 1c o m 的缺陷 c o m 含d c o m 和c o m 组件技术存在许多问题 其中有一些是关键的 有的甚至是 致命的 组件技术主要强调在独立开发和部署的程序之间的一套约定 c o n t r a c t c o m 则是 微软公司将这些约定规范化的首次尝试 c o m 既能作为设计范例 p a r a d i g m 它将组件 的约定 表示为类型定义 也可用作支持平台技术 作为前者 c o m 编程模型相当成功 但是后者却存在诸多问题 正是由于缺乏稳固的平台技术 c o m 时代面临着终结 组件间的约定 纯粹是通过用户与组件之间的语义保证和假设的形式来表示的 但是 仍需要定义某种形式来表示语义 专业的做法是 采用可编程的类型定义 以及描述这 些类型定义的人工可读文档 c o m 用类型的形式表示组件约定 但是该约定存在如下两个关键问题 使得其对语义 的表示并不是最优的 1 约定的描述 c o m 没有定义约定的交换格式 即c o m 规范所约定的类型定义 必须通过完全是c o m 之外的某种技术来进行交互 微软定义和支持的e o m 交换格式有两个 i d l i n t e r f a c e d e f i n i t i o nl a n g u a g e 接口语言定义 和t l b t y p el i b r a r y 类型库 但是这两种格式 并不是同构的 其中也没有哪种格式是权威的或标准的 5 西安理工大学硕士学位论文 另外 c o m 的描述约定方式 至少还存在两个其他的关键闯题 c o m 缺乏对组件依赖性的描述 因此 没有办法来解析c o m 组件 或者其约定的 定义 也不熊确定它所需要的其他组件 放两无法保证它的正确运行 由于缺少楣关信 息 使得部署基于c o m 的应用程序 很难确定它需要哪些d l l 也不能静态确定所需要的 是哪个舨本的组件 这让对版本阿题的诊断变得极其复杂 c o m 约定的描述格式缺乏扩展性 i d l 是基于文本的 极少随组件部署 通常只有 c 程序员才会使用 但是 在m t s 下开发企业应用的c 程序员很少 这使得i d l 约定 用处不大 t l b 在扩展性方面存在缺陷 而且v b 与t l b m t s 之闻被隔离开来 这最终导 致了t l b 的没落 2 约定的工作方式 c o m 组件的约定是基于类型描述的 所采用的类型系统是c 十 的可移植子集 而且c o m 对组件的约定是物理的 二进制约定 它要求 每个方法都具有精确的虚丞数表v t a b l e 偏移量 每个被传递的参数在堆栈规则中都有明确的偏移量 对象引用采用接口指针的明 确格式 使用规定的分配器进行被调用内存分配 就底层技术而言 c o m 组件的约定 最终只是在内存中形成堆栈结构的协议 根本没 有 按组件所要求的那样来 描述语义内容 二进制的物理约定 过度关心细节 使c o m 难于使用和开发 尤其在针对c o m 组件的舨本控制问题上 物理性约定所产生的闯题就更 大了 这使得c o m 组件 难以进行语义修改和版本升级 c o m 组件的约定定义的精确性 产生了高效的代码 但这却是以难 以接受的不可靠性 和开发使用及扩展升级的困难与复杂性为代价的 2 2c l r 与c ll 为了解决c o m 所存在的这些问题 微软公司的c o m 和m t s 小组 计划开发一个新的组 件平台 开始时器唾c o m 3 或c o m 2 0 后来又羹堪c o r c o m p o n e n to b j e c tr u n t i m e 组件对 象运行时 和u r t u n i v e r s a lr u n t i m e 通用运行时 最后才被命名为c l r c o m m o nl a n g u a g e r u n t i m e 公共语言运行时 库 层 它是现在 幽微软提交的 成为星际标准的c l i c o m m o n l a n g u a g ei n f r a s t r u c t u r e 公共语言基础结构 在w i n d o w s 平台上的一种具体实现 c l i 是针对可执行代码格式 以及能执彳亍该代码的运行时环境的一种规范 c l i 标准 包含如下几个主要组成部分 c t s c o m m o nt y p es y s t e m 公共类型系统 被编译器 工具和c l i 本身所共用的 一种统一类型系统 它是一个模型 定义了在声嗳 使用和管理类型时 c l i 应遵循的 规则 c t s 建立了一个框架 使跨语言集成 类型安全和高性能的代码执行成为可能 c l s c o m m o nl a n g u a g es p e c 主f 主c 氇t 主o n 公共语言规范 语言设计者和框架 类 库 设计者之间的一种协定 a g r e e m e n t 它指定了c t s 的一个子集和一个用法常规 u s a g e c o n v e n t i o n s 集 6 c r l 组件技术 m e t a d a t a 元数据 描述和引用c t s 所定义类型的数据 元数据被以一种独立于 任何特定的程序设计语言的方式存储 从而 元数据为操作程序的工具 如编译器和调试 器 之间 以及这些工具和v e s 之间提供了一种公共交换机制 v e s v i r t u a le x e c u ti o ns y s t e m 虚拟执行系统 该系统实现和实施c t s 模型 v e s 负责装入和运行为c l i 编写的程序 它在运行时 利用元数据将分开产生的模型连接 在一起 并为执行托管代码和数据提供所需要的服务 v e s 也被称为执行引擎 c i l c o m m o ni n t e r m e d i a t el a n g u a g e 公共中间语言 可被v e s 理解的指令集 也被称为m s i l 微软i l 程序集 a s s e m b l y 装配 汇编 就是c l r 中的组件 它是一种功能上不可分割的逻 辑单元 由一个或多个模块 m o d u l e d l l 或e x e 文件 组成 大多数程序集就是一个d l l 所以程序集也被称为 托管d l l 每个程序集中有一个程序清单 m a n i f e s t 它包含了程序集内所有模块和其他文件 的信息 如程序集的名称 版本号 文化和语言 程序集包含的所有文件列表 程序集所 依赖的其他程序集等 程序集中自然包含了若干c l r 类的 m s i l 中间语言 代码 同时还包含了这些类的 元数据 元数据 m e t a d a t a 描述模块中类型的相关信息 如类型的名称 类型的可见性 p u b l i c 或a s s e m b l y 基类 实现的接口和方法 暴露的属性 提供的事件等 程序示 例如图2 2 所示 圃琴 l 篓圣堕垂鍪堡 i 糍厝鬃囊 轻 笋桑bo 图2 2 程序示例 f i g 2 2p r o g r a md e m o n s t r a t i o n 2 3c l r 与c o m 与c o m 相比 c l r 的组件技术有了质的飞跃 前面提到的各种c o m 问题都迎刃而解 一扫而光 c l r 与c o m 的相同点 约定 类型 与c o m 平台一样 c l r 也注意组件间的约定 而且这些约定也是基于类型的 注意 组件技术里的类型是广义的 除了包括字符 布尔 整数和浮点数等基本数据类型之外 还包括类 结构 接口 串 数组 枚举 委托 d e l e g a t e 指向方法和函数的安全指针 用于事件处理和回调 等高级结构类型 c l r 与c o m 的不同点 1 约定的描述 元数据 7 西安理工大学硕士学位论文 但是与c o m 没有标准格式来描述约定 不同的是 c l r 有完全规范的格式来描述组 件之间的约定 元数据 m e t a d a t a c l r 的元数据是机器可读的 其格式是公开的 国际标准化的 完全规范的 c l r 还提供了读篱元数据的实用工具 使用者不需要了解元 数据的底层文件格式 不像c o m 的元数据 i d l 和t l b 难以定制和扩展 而且其元数据中又缺少依赖和版 本信息 使得对组件的部署和版本的控制都十分困难 另外 c o m 元数据的存在是可选的 而且经常会被忽略掉 这对组件应用的构建会造成很多问题 c l r 通过定制 本身就是强类型的 特性 a t t r i b u t e 使其元数据可以达到清晰 容易的可扩展性 c l r 元数据中还包括组件的依赖关系和版本信息 从而允许使用新技 术来处理版本控制问题 另外 c l r 元数据的存在是强制性的 部署或加载组件都必须访 问元数据 因此 构建基于c l r 的基础架构和各种工具 显然要比c o m 容易的多 2 约定的类别 逻辑结构 c l r 约定与c o m 约定的第二个主要差别 是约定本身的特性 在c o m 中 组件的 进制物理 约定隐含了 堆栈约定 虚函数表和 作为方法参 数传递的 数据结构在内存中的表示形式 在c l r 中 约定被描述为类型的逻辑结构 而不是物理的二进制格式 因此 在c l r 的约定中 并没有暗示访问字段和方法的精确代码顺序 所以 在考虑虚方法布局 堆 栈规则 对齐方式 以及参数传递方式时 c l r 具有极大的灵活性 c l r 是通过名字和签 名来弓 溺字段与方法 而不是偏移量 这样 c l r 就避免了困扰c o m 的声甓顺序阀题 组 件成员的实际地址 偏移量 需要等到运行时在类型被加载及初始化时 才能够确定 另 外 c l r 版本的改变 如从2 0 0 2 年1 0 到2 0 0 3 年的l l 再到2 0 0 5 年的2 o 也不会 带来组件的重新编译 3 c i l 实现数据表示形式和方法地址的虚拟化 需要延时对约定的物理方西 如方法表和字 段偏移量等 的解析 这就要求组件中不含具体的机器代码 基于c l r 的组件 通过采用 c i l c o m m o ni n t e r m e d i a t el a n g u a g e 公共中间语言 而实现了这一要求 c i l 是一组与处理器无关的指令集 它具有抽象能力 将与机器代码密切关联的物 理数据的表示形式抽象出来 c i l 使用的操作码在访闷字段和调用方法时 不再使用绝对 地址和偏移量 而是利用元数据进行基于名字和签名的引用 c i l 会在 第一次被 执行前被翻译成本地的机器语言 c l r 执行的是由c i l 生成的 本地代码 而c l r 在c i l 翻译成本机代码之前 是不会解析其物理绑定的细节的 由于翻 译工作是在部署机器上进行的 所以 组件所需的外部类型定义 将与部署机器上的某个 类型匹配 丽不是开发者的枫器 这极大减少了跨组件约定的不可靠性 同时又不会降低 代码的运行性能 另外 由于c i l 到机器代码的翻译 发生在部署的机器上 所以 任何用到的待定处 8 c r l 组件技术 理器布局或对齐规则 都将与 代码将在其上面运行的 目标处理器架构相匹配 现在 软件正面临着一次重大的处理器迁移 即从i a 一3 2 p e n t i u m 和a m d 3 2 架构向 i a 一6 4 i t a n i u m 和a m d 6 4 架构的发展 对于这次升级 c l r 显得尤为重要 c o m 向c l r 过渡 鉴于c o m 技术已经被使用多年 有许多现存的资源 程序员和用户也不可能一下子就 全部完全转换到 n e t 环境 因此 微软公司也允许在c l r 环境中继续使用c o m d c o m c o m 和d n a 这可以通过 n e t 框架的s y s t e m e n t e r p r i s e s e r v i c e s 命名空间来进行 但是鉴于与c o m 相比 c l r 组件所具有的无比优越性 c o m 技术必然会走向灭亡 而 n e t 的c l r 终将取而代之 2 4 本章小结 本章对c o m 和c l r 进行了讨论 为后面 e x c e l 到x m l 数据自动转换 组件的设计与 实现奠定了基础 9 数据自动转换的方法研究 3 数据自动转换的方法研究 3 1 数据自动转换的基本思想 3 1 1m se x c eix m l 映射机制 m i c r o s o f te x c e l2 0 0 2 中引入了用于在x m l 电子表格架构中打开 编辑并保存x m l 文件的功能 e x c e l2 0 0 3 或以后版本扩展了此功能 可以通过在e x c e l 工作簿中使用 x m l 数据的用户定义的映射 来在任何预定义的x m l 架构 木 x s d 中打开 编辑并保存 任何x m l 数据 在e x c e l2 0 0 3 中 可以将x m l 架构映射到e x c e l 工作簿 映射时 可以从任何符合映射架构的x m l 源中导入导出数据 总而言之 利用新增的x m l 映射功 能 将x m l 架构与工作簿相关联 这样能够更为简单和可靠地在e x c e l 中导入和导出数 据 这意味着 无论是电子表格内部还是外部的数据都对e x c e l 和用户的特定任务具有 更重大的意义 借助e x c e lx m l 映射机制 实现e x c e l 到x m l 数据的转换步聚 首先 根据实际需要 编写自定义x m l 架构 其次 将已经编写好的x m l 架构添加到已打开的工作簿中 然后 使用 x m l 源 将单元格映射到架构元素 最后 就可以向映射的单元格中无缝导入或从 中导出x m l 数据 当将x m l 架构添加到工作簿时 e x c e l 会创建一个称为x m l 映射的对象 这些x m l 映射就可以将单元格或范围映射到x m l 架构中的元素 在导入或导出x m l 数据时 e x c e l 还使用这些映射将映射范围的内容与架构中的元素联系在一起 工作簿可以包含许多x m l 映射 并且每个映射都独立于所有其他映射 但是 多个映射可以引用同一基础架构 例如 e x c e l 单元格与x m l 架构元素映射过程如图3 1 所示 而基于此映射导出的x m l 数据如图3 2 所示 abcdel rg 芗i l l 禳 y l掘进进尺戮戮潮 2 l r 让 i i t 1 酗 1亿映 瞳 3 计划 浆 提莆完成 掘进进尺舅射 v 唾 毙 核作业考核作业计翅l 天数 耢澄掘进滋歹 5 金矿 7ib o 1 15 0l 劲 1 p1 j 0 翁必 之矿 6其中 葑拓 1 0 0l a o1 2 01 o1 1 0 疰茜 一多il 戈彗 7 弱囝 8 j西作业 r j u 哭p 豕贞曲 9 玉 西分比 中 1 0 j 丐纭 j 女2 一 l l i f 亚 1 2 o 攫前究成ii 划天数 1 3 耢嬲 茸中开拓 图3 1 单元格 x m l 架构元素映射图 f i g 3 一lc e l l s c h e m ae l e m e n tm a p p i n g 西安理工大学硕士学位论文 c 捆逡透昃 l 童r o 计翻 考羲 l 专羲 妒 作业 1 0 0 一 实象意寰 1 2 卖赛意塞 一 c 百务l i 一 考楼 1 2 0 p 舂韭 1 2 8 彝韭 一 菁奢魄 p 挺前完成计鬣玉叠 j 崔前完丧计魁夭重 一 垒r 一 茭串秀据 计割 一 考楼 1 0 0 p 嚣建 1 0 0 1 垂 c i t 撼 一 实际完成 1 2 0 实际完点 一 委 移p 考蕊 1 2 0 t j y 羲 审 c 业 1 2 0 妒 c 鋈蓊恚童诗潮芙羹 l 灌秀完蠢诗潮篝羹 一 其中开拓 妒 摺避进冗 j 圈3 2 x m 乙数据 f i g 3 2x m i d a t a 3 1 2 数据自动转换的基本思想 根据上一节所介绍的借助m se x c e l 煳l 映射机制实现e x c e l 到x m l 数据转换 不难 看出 将e x c e l 转换为x m l 的整个过程需要人工干预 不仅要求操作入员编写x m l 架构 s c h e m a 同时还得手工建立映射 将单元格与架构元素绑定 因此要实现e x c e l 到y d v l l 数据的自动转换 必须解决勰l 架构和映射信息的自动生成问题 本文研究的重点就是通过解决以上x m l 架构和映射信息的自动生成问题 然后借助 e x c e l 涮l 映射机制实现e x c e l 到x m l 数据的囱动转换 其基本思想是通过采用两级映射 模板样式到模板结构树和模板结构树到 m l 架构 根据e x c e l 模板样式自动生成x m l 架构 在架构生成过程中自动记录各数据单元格的映射路径 然后借助e x c e lx m l 映射将 e x c e i 报表数据自动转换成与模板样式相对应的潮l 数据文件 3 2 架构信息和映射信息自动生成 这是e x c e l 到x m l 数据自动转换组件能够实现数据自动转换的关键所在 3 2 1 架构信息自动生成算法的核心思想 1 2 数据自动转换的方法研究 首先将e x c e l 模板样式用树型结构表示 而把每一个数据单元格作为树的叶子结点 其次根据模板样式结构树生成自定义x m l 架构 即实现两级映射 一是从模板样式到模板 结构树的映射 二是模板结构树到x m l 架构的映射 例如 煤矿
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络营销推广效果评估方法实践指导书
- 2025年行政助理招聘面试模拟题与参考答案详解
- 2025年财务精英专业认证考试模拟题及答案
- 远程音乐教学2025年春季衔接计划
- 2025年教育心理学考研复习模拟题集
- 2025年初试殡葬礼仪师的必修课模拟题解答与知识点梳理
- 新北师大二年级数学教学资源开发计划
- 改色节能环保知识培训课件
- (2025年标准)股东签字协议书
- 2025年茶艺师中级笔试模拟题解析
- 亚马逊运营每周工作汇报
- 2025年郑州人才公司面试题及答案
- 2025年跨境电子商务测试题及答案
- 休克的诊断和治疗课件
- 广东省湛江市2024-2025学年高一下学期期末调研测试政治试卷(含答案)
- 2025-2030中国汽车玻璃水行业竞争优势与前景趋势洞察报告
- 厨房刀具安全培训课件
- 私密抗衰培训课件
- 2025年全国高中物理竞赛试题及答案
- 2024风电项目开工管理办法
- 供热企业运营管理制度
评论
0/150
提交评论