XML文档分析论文(精选7篇)
XML文档分析论文 篇1
0 引 言
随着互联网和信息化技术的快速发展,医院在逐步完成医院信息数字化建设过程中,它的核心技术之一就是电子病历的数字化管理和应用。电子病历包括病人就诊或治疗的全部临床信息,这些信息一般由数字、文字、图形和图像等数字信息组成。
本文仅对纯文本数据电子病例的存储和查询的性能进行分析和比较。电子病历的存储、交换、共享和使用要求电子病历必须以一种统一的格式规范或语法进行定义[1],能够支持高效的查询和更新存储。定义基于语义标记的XML文档格式[2]能够为解决各种类型的数据共享、交换和使用问题提供一种行之有效的技术解决方法。Oracle XML DB[3]和IBM DB2 pure XML[4]数据库管理系统都对XML文档提供了强大的支持,是将关系型数据和XML数据进行混合管理的数据库软件[5],但这两种XML文档技术解决方法,在电子病历的应用性能方面是否存在差异成为系统构架师和设计师高度关注的技术要素,本文就该技术要素展开分析和比较。
1 在存储和查询实现技术上的比较分析
Oracle XML DB和IBM DB2 pure XML都采用了W3C的XML数据模型,但在物理存储层的设计和实现差异很大。查询虽都是基于XQuery语言,但因采用了不同的存储技术而各自做了不同的封装和扩展。
1.1 在物理存储层实现方式比较
Oracle XML DB 11g 中针对不同的数据可选用三种不同的存储机制,即以大字符对象(CLOB)方式的非结构化存储、二进制存储和完全结构化的存储机制。
针对结构化存储,Oracle XML DB用XMLSchema所含信息派生一个对象模型、该模型可使符合XMLSchema的XML内容得到分解并以对象集的方式存入数据库。注册XMLSchema之后,Oracle XML DB为XMLSchema定义的每个全局元素创建一个默认的XMLType表,即对象表[6]。XMLSchema中的类型如String 、Decimal和Date 分别被映射成SQL中的Varchar2、Number和Date 类型。
当XML实例文档被装载进Oracle XML DB知识库时,XML文档内容将被“分解”并保存在对象关系表中。表1是在Oracle XML DB中采用结构存储方式存储XML文档的示例,该XML文档片段如下:
DB2 V9引入了DB2 pure XML支持,是一种高效的大字段存储模式,其性能优于传统CLOB的文本字段处理。因为XML 标签元素存有内在的层次结构,所以在DB2 pure XML数据库中的物理存储层主要存储单元是节点且以树型形式展现,同时可在保存XML文档层次结构的前提下,在节点的粒度上存储XML文档的片段,而不破坏其层次结构。图1为XML文档在DB2 pure XML中存储方式的示例。
由于Oracle XML DB把XML文档转换为关系表保存,基此方便XML文档的有效性验证,但插入时开销偏大。DB2 pure XML可高效维护XML文档的层次结构和加速对XML文档的检索性能。通过节点与父、子节点的关联有利于遍历。如果待查节点在同一页上,那么遍历速度将比指针遍历还快。
1.2 在查询方式上的比较
DB2提供两种语言规范查询 XML 数据,即SQL/XML 和 XQuery。既可以单独使用 XQuery 和 SQL,也可将 XQuery 嵌入 SQL 中使用,反之亦然。还增加了新的 SQL/XML 查询函数,包括 XMLQUERY、XMLTABLE 函数以及 XMLEXISTS 谓词。这些函数允许用户在 SQL 语句中嵌入 XQuery 或简单的 XPath 表达式。如果需要结合关系型数据和 XML 数据,那么 SQL/XML是一种最佳选择。
Oracle XML DB 对采用结构化存储技术保存的XML文档,尝试将SQL/XML运算符中的XPath表达式翻译成等价的SQL查询。SQL查询主要使用于基于模式的XMLType对象关系数据结构,该过程被称为XPath重写。XPath重写使得数据库能使用传统关系SQL操作来有效处理含有一个或多个XPath表达式的SQL语句。通过将XPath表达式翻译成传统的SQL语句,Oracle XML DB使数据库优化器无需理解XPath格式和XMLTpye数据模型。XPath重写处理的相关资源开销非常少,使得Oracle XML DB能以接近关系查询的速度执行基于XPath的查询[7] 。
Oracle XML DB 和DB2 pure XML的查询语言都基于XQuery语言。Oracle XML DB存在更细粒度的数据检索,而且基于 B 树和基于函数的索引使其得到了增强。实际应用中XQuery 是一种用于查询 Oracle 数据库存储的 XML 内容的高效方法。因为DB2不提供调用带参数标记的独立 XQuery 的方法,要向 XQuery 传递参数,则必须使用 SQL/XML 将一个参数标记(“?”)转换为指定变量,所以DB2中的SQL/XML是一种更佳的查询语言。
2 应用于电子病历系统的技术实现
本文通过示例说明Oracle XML DB和DB2 pure XML应用于电子病历系统的技术实现。本文设计和实践的电子病历系统分为中心服务器端的文档注册模块和客户端的文档提交模块。客户端按间隔时间参数值以批次方式向中心服务器端提交要注册的病历文档。客户端向中心服务器端一次提交的数据量称为提交集。每个提交集对应一个病人在数据库中的一条记录,它可以包含多份文档,这些文档组装成一条XML数据存入数据库。系统采用多库多表(分区)技术。存储时按照患者的唯一标识将数据按关联关系分布在多表中。
本系统开发语言基于JAVA;Oracle和DB2的数据库配置和多库多表策略均采用了Spring的动态数据源配置,持久层的操作采用了Spring的JDBCTemplate,系统服务方法之间的依赖关系通过Spring来管理,以利更好地进行效率测试对比。下面是要存入数据库中的XML电子病例文档片段示例:
<display>自胸廓入口向下扫描至两肺底,层厚、层距10mm。右肺上叶前段见一直径为1cm大小的肿块,平扫密度为Hu,可见分叶及毛刺;肿块早期强化较显著,密度较高且不均匀,其密度为Hu。周围肺纹理较粗;邻近胸膜可见凹陷征象。右侧肺门区可见淋巴结肿大。纵隔内亦见异常增大的淋巴结。纵隔内血管影正常。心影未见明显异常。</display>
<docs>标记为根节点,可包含多个<doc>节点,每个<doc>节点为一份病历文档。<doc>节点包含两部分内容:一部分为医院、科室、医生等信息,另一部分为详细的诊疗信息。
2.1应用Oracle XML DB的技术实现
本系统数据库采用Oracle 10g中Oracle XML DB存储和查询XML文档的技术实现路线概述如下。
1)XMLSchema约束
本文采用结构化存储方式,因此首先需要定义XMLSchema以约束XML电子病例文档的格式和数据类型。使用PL/SQL存储过程调用函数DBMS_XMLSCHEMA.Registerschema()向数据库中注册复杂的XML模式。通过语句select schema_url from user_xml_schemas;查看已经注册的XMLSchema。建立基于此模式的表。只要在建表语句后添加XMLTYPE COLUMN列名EL-EMENT″xds_metadata.xsd#docs″就能把XMLSchema和表关联起来。
2)插入XML文档
通过JAVA的JDBC方式插入XMLType,根据SQL中参数的类型通常有3种方法供选择使用:第一种,客户端只需传递一个字符串参数,通过Oracle数据库的sys.xml Type.create XML()函数构造成XMLType类型的值[8]。由于把创建XMLType的任务完全交给数据库,此方法对数据库的压力最大;第二种,客户端调用JAVA API函数XMLType.create XML(conn,xmldata)创建一个XMLType给数据库,此方法将创建XMLType的任务完全交给了客户端,因此数据库的压力最小;第三种,在客户端把XML文档转换为ORACLE.SQL.CLOB类型再传入数据库端,通过Oracle数据库的XMLTYPE()函数构造成XMLType类型的值。此方法客户端和数据库端同时承担了创建XMLType的任务,因此数据库的压力居中。
上述第一、第二种方法的XMLType型字段只能存储4k字节的数据,当添加超过4k字节的XML文档到XMLType型字段时不能采用直接插入字符串的方式,建议采用第三种方法。
为了更好地对Oracle XML DB和DB2 pure XML关于存储、查询和更新性能做对比,本文采用JDBCTemplate方式存入数据,相关程序片段如下:
上述代码通过向get Jdbc Template().update(sql,params,types)函数传递三个参数分别为SQL语句、参数的值和参数的类型,实现向table Name表中插入XML文档。
3)查询XML文档
根据指定患者全局唯一标识符(Patinet ID)和相关文档的可用性状态查询XML文档信息,通过参数作为进一步的限定条件。使用Oracle中的SQL函数get String Val()只能查询小的文档数据,当文档数据太大时需使用XMLQuery()方法或EX-TRACT()方法。
不失一般性的查询语句示例如下:
根据病人的ID从表registry12中的XMlType类型的DOCU-MENTENTRYS列查询出病人的所有文档即所有的doc片段,有两种查询方式:
使用XMLQuery()函数查询DOCUMENTENTRYS列docs条目下包含的所有doc片段。
查询XMLType类型的DOCUMENTENTRYS列的docs节点下包含的所有doc节点。
4)应用程序获得查询结果的方法
用Jdbc Template().query()函数查询出XML文档,用orset.get OPAQUE()函数取出结果集中的一条数据,使用XML-Type.create XML()函数转换为XMLType类型。
2.2应用DB2 pure XML的技术实现
用于性能比较的数据库使用DB2000,数据存储和查询采用DB2 Version 9的pure XML技术。基于DB2 pure XML存储和查询XML文档的技术实现路线概述如下:
1)创建XML文档的存储表
根据实际需求,创建XML文档的存储表程序如下:
2)存储XML电子病例文档到DB2数据库
存入XML字段的参数为XML文档的字符串,采用JDBC-Template方式存入数据:
向函数get Simple Jdbc Template().update(sql,param)中传递两个参数分别为SQL语句和SQL语句中的参数值实现向表中存入数据。
3)查询要求与Oracle XML DB中的要求相同
使用带表空间的XMLQUERY()的查询语句如下:
查询DOCUMENTENTRYS列下的docs标记下的所有doc片段,即病人的病历文档。DOCUMENTENTRYS/docs/doc为查询路径。
4)使用Spring的JDBCTemplate获得结果集
相关程序如下:
使用get Simple Jdbc Template().query()函数的行映射功能返回结果集中的每一条数据。
3 关于存储和查询XML电子病历的性能测试
存储负荷:Oracle XML DB和DB2 puer XML的提交集和每个提交集包含的文档数量均相同。
查询要求:根据患者ID把所有属于此患者的病历文档完整地查询出来。
查询测试条件为从数据库一张表中查询出属于某个病人的所有完整的病历文档。
提交集数量为表中含有的数据量。
存储性能测试结果如表2所示。
查询性能测试结果如表3所示。
由表2和表3容易看出,在存储相同XML文档量负荷和相同查询限制条件下,Oracle XML DB 与DB2 pure XML关于存储和查询的耗时之比分别约为2∶1和1.32∶1。
图2为Oracle与DB2性能测试对比。X轴为提交集的数量,Y轴为提交数据耗时。每个提交集的文档数量固定为20份。由图2可以得出提交集数量与Oracle和DB2的耗时都成线性关系。Oracle 的线性比例系数为K=47.375,DB2的为K=20.22,说明提交集数量越大Oracle所花费的时间增长的速度也越快。
4 结 语
本文分析了Oracle XML DB 和DB2 pure XML关于存储和查询XML文档的技术特点及其实现原理,并就测试准备给出了相关程序片段。Oracle XML DB按对象关系型存储数据到基于模式的XMLTYPE 表列中,这种细粒度的拆分可以方便地执行XML文档的有效性验证,但在存储上要多花费时间。查询时Oracle XML DB将SQL/XML中的XPath表达式翻译成等价的SQL查询,再去查询相应的表列,在查询完整的XML数据文档时同样耗费更多的时间。DB2 pure XML是根据XML数据层次结构按节点的方式存储数据,在节点粒度上存储XML文档的片段。这在存储和查询完整的XML文档的速度上比Oracle XML DB的技术实现更具优势,但是在应用程序端需要花费额外的时间对XML文档的有效性进行验证。
本文给出的测试对比结论提示应用这两种产品时,要在数据存储、查询速度和数据质量方面根据应用场景做出合理的取舍和平衡。
参考文献
[1]巴斯,等.软件构架实践[M].车立红,等译.清华大学出版社,2004.
[2]Houqin SU,Jinquan SU.A Study and Practice of Report System Tech-niques based on Three-layer Calculating Architecture[C/OL].The 2ndInternational Workshop on Education Technology and Computer Sci-ence(ETCS2010),March 6~7,2010-03-06/07,Wuhan,Chian.http://www.icetcs.org/etcs2010/.
[3]任金铜.基于Oracle XML DB的GML存储_查询及索引研究[D].江西理工大学,2009.
[4]使用SQL查询DB2XML数据[EB/OL].http://www.ibm.com/de-veloperworks/cn/data/library/techarticles/dm-0603saracco2/.
[5]覃永胜,等.Oracle XML DB和DB2pure XML在基于XML电子病历实现技术方面的比较分析[J].医学信息学杂志,2009(30):10-13.
[6]Murthy R.XML Schemas in Oracle XML DB[S].Oracle Corporation.
[7]Oracle SQL/XML(XML的详细介绍)[EB/OL].http://meidayhxp.blog.163.com/blog/static/11760815620103295626909/.
[8]Java操作XMLType的几种方法[EB/OL].http://3ccoder.iteye.com/blog/585709/.
XML文档分析论文 篇2
HTML语言是超文本标记语言 (HyperText Markup Language) 的缩写, 也译为“多媒体文件语言”, 它是一种描述文档结构的语言, 而不能描述实际的表现形式。
随着WWW的普及和人们对Web日异增长的需求, 就需要不断地有新的Web语言产生。
在WWW中发布HTML文档, 大多数信息还是静态的, 而且要求服务器响应用户的交互。DHTML (Dynamic HTML) 的出现, 使Web范例从要求服务器交互改变为创建Web站点和Web应用。由于DHTML允许HTML文档与用户交互及客户机的巨大变化, 则可以创建丰富的Web应用。
DHTML并不是什么新的技术, 只不过是一些现有网页技术与标准的整合, 主要包括以下一些内容:1.HTML 4.0;2.CSS;3.浏览器对象模型;4.Script.
总结以上技术, DHTML的结构如下所是:DHTML=HTML+浏览器对象模型结构+CSS+Script
DHTML的特点如下:
1. 动态内容
通过浏览器与网页文字的对象模型, 网页不用下载, 其内容与对象即可以动态的增, 删除, 或是改变显示内容。
2. 动态样式
CSS除了可以扩展HTML标记的样式属性外, 还可以通过Script程序来改变这些属性。传统网页的内容与样式编排, 在下载到浏览器后, 即使固定的, 相比之下, 以CSS定义的样式网页, 只要通过Script控制, 网页就算已经下载显示来了, 还是可以改变其字体, 颜色, 甚至是样式的编排内容。
3. 绝对定位
以前的HTML只能定位网页对象的X, Y坐标, 现在DHTML可以定位网页对象的X, Y, Z坐标, 也就是说, 可以在网页上建立三维的立体空间。如:
尽管DHTML实现的基础 (HTML、CSS、JavaScript) 两大浏览器Netscape和IE全都支持, 但是它们实现DHTML的方法仍然是不相同的, 书写能在两种浏览器顺利执行的DHTML页面就成了一桩复杂的工作。CSS是DHTML的基础, CSS用于设定HTML元素在页面上的显示风格, 而CSS-P则是CSS的一个扩展, 它可用来控制HTML元素在网页上或者说在窗口的位置。
近来又产生了新的Web语言VRML (Virtual Reality Modeling Language) 。它是一种模型语言, 用来描述一个目标对象是如何呈现在Web上的。和HTML一样, VRML也是可由浏览器解释的描述语言, 只不过VRML不是描述成一个Page的格式, 而是描述成3D环境和目标的布局。HTML和VRML的差别与建筑物的蓝本和它的模型的差别是同一个道理。
用VRML, 我们将“看到一个新的虚拟的时代, 它将改变人们生活和工作的方式--虚拟企业、虚拟旅行、虚拟商业会谈、虚拟办公室、虚拟大学以及其他许多虚拟体验。
VRML (Virtual Reality Modeling Language) 为虚拟环境的建立提供了规范, 综合了现有三维软件的景象描述语言的优点。它有基本元素, 顶点, 线和面的定义, 坐标变换有缩放 (Scaling) , 旋转 (Rotation) 和平移 (Translation) , 并有优化的数据结构。
如果说VRML是一种语言的话, 显然VRML浏览器就是它的解释器。VRML浏览器的主要功能是读入VRML代码文件, 并把它解释成一图形映象。目前VRML浏览器软件种类很多, 如:Netscape公司的Live3D, Paper Software公司的WebFX, SGI和Template Graphics Software公司的WebSpace, InterVista软件公司的World View, 以及Microsoft公司的Virtual Explorer等等。它们基本上实现了物体的变换效果, 如灯光, 视角变换, 模糊, 裁剪, 阴影, 投影, 碰撞?
VRML语言具有的基本物体有:球体, 锥体, 柱体, 立方体, 文本等为创建景象提供了方便, 如下面为建立一球体的实例。
目前有许多创建VRML文件的模型软件, 并且有许多软件可以把其他三维格式的文件转换成VRML文件, 如3DS, RAW等。VRML的出现使得虚拟现实象多媒体和因特网一样逐渐走进我们的生活, 简单地说, 以VRML为基础的第二代万维网=多媒体+虚拟现实+因特网。第一代万维网是一种访问文档的媒体, 能够提供阅读的感受, 使那些对Windows风格的PC环境熟悉的人们容易使用因特网, 而以VRML为核心的第二代万维网将使用户如身处真实世界, 在一个三维环境里随意探xiong因特网上无比丰富的巨大信息资源。每个人都可以从不同的路线进入虚拟世界, 和虚拟物体交互, 这样控制感受的就不再是计算机, 而是用户自己, 人们可以以习惯的自然方式访问各种场所, 在虚拟社区中“直接”交谈和交往。事实上, 目前采用VRML技术取得成功的案例已经很多, 例如探路者到达火星后的信息就是利用VRML在因特网上即时发布的, 网络用户可以以三维方式随探路者探索火星。
总之, VRML将创造一种融多媒体、三维图形、网络通讯、虚拟现实为一体的新型媒体, 兼具先进性和普及性。
HTML只是一种表达的技术, 它并不一定能揭示HTML tag中说揭示的含义.举一个最简单的例子,
Apple
这句话在网络浏览器中有特定的表现, 但是HTML却并没有告诉我们它倒底是什么, Apple只是一个英文单词罢了, 它在不同的环境之下可能会有不同的意义, 是一个计算机公司, 还是一个水果?HTML并没有告诉我们Apple具体的内容, HTML中有一个大问题就是它的tag的集合是固定的.用户不能新增有意义的能供他人使用的tag, 网络浏览器是一个应用平台, 以HTML作为数据标准, 网络上的应用程序依赖服务器上的CGI (公共网关接口) 脚本来处理网页上的数据, 这样的结构是非常清晰的, 但HTML却使在服务器的一端要处理的数据量过大.这使得网络速度降低, 效率不高.SGML (通用标记语言标准ISO 8879:1986) 是HTML的前身技术.它是文件和文件中信息的构成主体.SGML与HTML不同.它允许用户扩展tag集合, 允许用户建立一定的规则.SGML所产生的tag集合是用来描叙信息段特征的, 而HTML仅仅只是一个tag集合.所以我们可以说HTML是一个SGML的子集。
XML开发者源于SGML的设计和应用者, 他们已经在SGML上投入了大量精力, 但却发现SGML并没有完全发挥作用。早在Seattle会议之前, Bosak和一些精心挑选的SGML结构信息专家就已向W3C提出了“网络上的SGML”计划.W3C支持并赞助了他们的努力。工作于1996年7月正式开始起动。工作的早期, 有较大的阻力。因为也存在反对SGML的人, 一些制定XML标准的W3C代表甚至声称“网络上的SGML”是不可能实现, 工作组 (原称“SGML编辑审议委员会”) 并未退缩。他们打算让SGML以全新的面目出现在网上, 给SGML以全新的面貌, 故给它命名为“可扩展标识语言”, 即XML。
工作组制定了一个计划来展示XML特色的计划, 计划的实施分三部分:
(1) XML的句法。
(2) XLL (可扩展链接语言) :XML的语义链接。
(3) XSL (可扩展类型语言) :XML的表现。
XML 1.0版本标准由W3C正式批准公布于1998年1月10日.XLL和XSL的工作还正在进行。
XML语言, XML名域和DOM是W3C建议的, 这是W3C发展过程中决定性的一步。由于它们已经成为正式的规范, 开发人员能够用XML的格式标记和交换数据。XML在三层架构上为数据处理提供了很好的方法。使用可升级的三层模型, XML可以从存在的数据中产生出来。使用XML结构化的数据可以从商业规范和表现形式中分离出来。
CSS仍然被应用于结构简单的XML数据, 并且也很有用。但是, CSS不提供与数据源结构不同的数据显示结构。使用XSL, 可以产生与原来的XML数据结构完全不同的表达结构。
XML的一个主要目标市场是电子商务。传统EDI (电子数据交换) 机制依靠不同商业之间的强大计算机系统来实现压缩的信息传输, 每一条信息在传输使用, 提供给用户之前都必须编码。电子商务在网上运作时用户端每填完一个HTML的表格之后, 都要把表格法还给初始的服务器处理。产品交易, 谈判签约, 后勤管理, 税收报表等等这一些活动的数据处理都集中在了一端。可以预测到, 有了XLL所链接的行为控制机构和XSL所提供的客户端评价功能, 将来的数据可以从屏幕上抓取, 有必要的话可在客户端处理, 在处理数据时, 传输给相关用户而不必要改换数据格式, 一个类似的协议是OTP (开放网络贸易协议) 。它的草稿最初是于1998年1月发布的。这个协议的制定是为了满足在网上。消费者和销售者之间交易时消息的传输。它同时也允许第三方, 比如说供货商, 市场评估机构, 消费者保护机构等来参与使用。
XML的应用弥补了许多HTML的缺陷, 我们把它在网上的应用总结为四点:
1.当网络客户必须在不同的数据库之间传递信息时的应用。
2. 当需要把大部分从网络服务器载下的数据在用户端处理时的应用。
3. 当相同的数据对于不同的用户需要有不同的界面时的应用。
4. 当网络情报供货商要把发现的信息精心裁减, 并发送给不同的个人用户时的应用。
可以看到, 网络继续以很快的速度在发展。“无论XML和元数据标签过时与否, 可以肯定将来的网络会以比现在的网络文档更灵活的方式提供更多的信息。网络代表着很多人的艰苦工作, 这些人遍布全球各地, 但希望和他们所关心的同事和客户交换信息的愿望使他们组织到一起。XML和元数据的使用——或其他—些相似的技术——将会使用户管理大量的信息, 并使信息的选择和表现形式符合他们明确的需求。” (选自 (2) )
参考文献
[1]《贝尔实验室》
XML文档分析论文 篇3
现在传统的方式是使用DOM或SAX协议对XML文档进行操作, DOM是建立文档树来访问XML数据, 建立树的过程会花费很大的系统开销, 对于较大的XML文档, 这种方式会很大程度上降低系统的性能, 即使使用SAX协议访问, 也是顺序方式查找XML文档, 还是很难满足日益发展的Web服务的要求。当数据量很大时必须找到一种新的方式来提高查询的效率, 人们已经开始着手研究Native XML数据库 (NXD) 并取得了一定的成就, Native XML数据库是一种新的数据库技术, 是一个完整的数据库系统, 有着传统数据库的各种功能和组件, 如今NXD的技术还在研究中, 一些机制还不是很完善。该文利用NXD的思想, 保持XML文档的原格式, 并建立索引来提高查询效率, 针对一种特定情形下的数据查询基于XML文档的存储结构建立索引机制, 这里要处理的是图书查询系统的图书信息, 针对常见的查询建立索引, 使用关系数据库来保存索引, 加快查询效率的提高。
1 图书查询系统应用分析
首先, 分析一下图书查询系统常用的查询有哪些种类, 针对这些应用来建立索引。
1) 用户要求返回具有某种属性的书目列表。这是最常用的查询方式, 几乎绝大部分查询都是这种类型的查询, 如题名检索、作者检索、主题词检索、出版社检索等, 我们为题名检索和出版社检索为例。
问题一:查询书名为“我的童年”的书目列表。
问题二:查询“清华大学出版社”出版的书目列表。
2) 返回一类书目的列表。这里可能是某一类书中的一个子类, 如一个网页设计的入门者, 他只是想浏览网页设计方面的书籍, 并不是确定要找哪一本书。
问题三:查询类别名为“网页制作”的书目列表。
3) 返回具有某一属性的书本的其他属性列表。这种应用很少, 但也存在, 如想要查找在清华大学出版社出书的作者列表。
问题四:查询出版社为“清华大学出版社”的书目作者列表。
2 建立索引
根据实际的应用给要查询的文档建立索引, 一个书店或者图书馆里的书目是众多的, 所以我们的XML文档也是非常庞大的, 因此已经不可能用DOM或SAX来访问了, 我们也不使用XED (XML-Enabled DBMS) 的方式, 把数据都存储在关系数据库中, 然后转换成XML格式。我们采用了一种折中的方法, 依然使用原始的XML文档方式来存储数据, 但把检索中会用到的数据另外存储到关系数据库中, 这样在查询的过程中使用的是关系数据库系统, 效率比较好, 而最终读取的结果又会依赖XML文档。将XML文档中的一部分内容读取出来, 这样我们查询得到的结果依然是XML格式, XML的优势同样能够得到发挥。其具体结构如图1:
从关系数据库到XML文档, 其实是一个定位过程, 如果不通过关系数据库建立索引, 我们可能是顺序方式查找需要的信息, 现在把查询过程中用到的信息存储在关系数据库中的表中了, 我们需要将这些表 (可能不止一个表) 关联到XML文档中的某个特定的位置, 这样才能减轻查询的负担, 常用的做法是利用XML文档的行号来实现。我们通过例子来看, 附表是一个图书信息文档, 其书目分为两大类, 文学类和计算机类, 在计算机类中又有子类网页制作, 从结构上来说已经是有点复杂了, 存在一个子类结构, 我们看一下《亲密接触ASP.Net》这本书, 这本书的信息是从
现在来建立下一个表, 考虑到第一类应用, 也是几乎绝大部分的查询方式, 这一类查询强调某本书的一个子元素或属性, 而这些元素或属性正好是XML文档里的路径。由此引入路径表:path_list, 见表2。把XML文档中出现的所有路径存储到表中, 这样我们要查询时可能从该表中选择正确的路径进行查询, 例如要查询书名时, 可以在path属性里匹配字符串“/catalog (/category) +/book/name”即可, 这里的字符串是用正则表达式表示的, 其中“/category”在path里可以出现多次, 但至少出现一次。
表2只是存储了XML文档中的所有路径, 至于路径下的内容才是查询时用到的主要信息。单有这个路径是不行的, 必须再引入一个表来存储XML文档中每个元素或属性的值, 即value_list表, 见表3。value_list表存储了路径和值, 在查询的时候可以依照路径查询, 而最终得到的结果是某本书或某些书的列表, 而这些信息可以通过book_list来获得, 这要求在value_list表中再存储一个book_id来定位到某一本书,
对于第一类的书目, 包括子类别, 需要单独存储出来, 以保证分类查询时的效率, 因此再加入一个表:category_list, 见表4, 这个表能确保分类查询时快速返回结果。
value_list、category_list两个表这里没有设主键, 实际应用时应添加主键。
3 执行查询
通过上面的四个表, 我们建成了图书目录XML文档的索引, 这里并不是把信息存储在一个表中, 而是分开建立索引, 以利于询和实现XML优势, 现在来执行前面提到的三类应用。第一类应用中, 对问题一, 首先从path_list表中查询合适的路径, 也就是配前面说到的字符串, 得到1和13两个path_id符合, 然后从value_list表中查询这两个path_id且value字段为用户给定的“我的年” (或者以“我的童年”为子串的字符串) 的记录, 返回book_id值, 最后从book_list表中得到其内容在XML文档中的位置, 定位XML文档中返回最终结果。主要用到以下的SQL语句:
SELECT start_pos, end_pos FROM book_list WHERE book_id IN (SELECT book_idFROM value_listWHER (path_id=‘1‘ORpath_id=‘13‘) AND value LIKE‘我的童年‘)
第二类问题通过category_list表就可以解决, 书目种类毕竟是少数, 数据量不会很大, 在这个表中查询要找的信息应该很方便问题三执行的SQL语句:
SELECT start_pos, end_pos FROM category_list where category_name=‘网页制作’
第三类应用比较少, 这种查询不需要返回书本信息, 需要操作的是value_list和path_list两个表, 重复查询value_list就可以得结果。这里我们为了简单起见, 只查询没有子类结构的情形。问题四的查询SQL语句为:
SELECT value
FROM value_list
WHERE path_id=’14’AND book_id IN
(SELECT book_idFROM value_listWHERE path_id=‘15‘AND value=‘清华大学出版社‘)
4 结束语
本文简单介绍了图书查询系统XML文档的一种索引建立方法, 它是针对查询这种特殊的应用设计实现的, 利用关系数据库来建立索引, 但最终的数据还是保存在XML文档中, 索引中建立了路径表, 能够支持XPath查询的实现。这种索引机制适用网上书店系统, 图书馆检索系统等, 只提供给用户查询, 不提供修改, 执行修改和更新的是图书管理员, 而且面向单一应用, 用特定的表实现, 效率较高。在有新的应用时, 我们可以建新的表机制来实现需求。这种索引能大大提高查询效率, 但存在一些不足, 由于是对查询建立的索引机制, 在多用户频繁更新数据的情形下, 系统需要重建索引, 会大大提高系统需求。
摘要:该文针对XML, DOM和SAX协议操作大文档的缺陷, 将技术成熟的关系数据库索引机制应用于图书书目查询系统, 从而实现对XML文档的快速查询。
关键词:XML,关系数据库,索引
参考文献
[1]Arzucan Ozgur, Taflan I Gundem.Efficient Indexing Technique for XML-based Electronic Product Catalogs[J].Electronic Commerce Re search and Applications, 2006 (5) :66-77.
[2]王宏宇.基于Native—XML数据库倒排索引算法研究[J].情报科学, 2006, 24 (7) :84-88.
[3]李素清, 陶世群.一种基于关键词的XML文档查询算法[J].计算机工程与应用, 2012, 48 (5) :138-142.
[4]赵雄峰.一种高效检索XML文档的倒排索引技术[J].电脑知识与技术, 2010, 6 (30) :8429-8431.
XML文档分析论文 篇4
交互性电子技术手册IETM(Interactive Electronic Technical Manual)作为欧美等国推行持续采办和全寿命周期支持CALS(Continuous Acquisition and Life-cycle Support)战略的核心技术,一直以来都是装备保障信息化研究与应用的热点之一[1]。IETM的核心问题就是实现技术信息的共享和交换问题[2]。可扩展标记语言XML是万维网协会(W3C)[3]推出的新一代数据交换的标准。它具有可扩展性、交互性好、高结构化、内容与显示分离等优点[4]。美军、欧盟以及国内各IETM标准也都推荐使用XML来描述IETM技术数据。
目前,随着我军信息化建设的不断深入,各级、各类管理和保障机构为提高装备维修保障信息化水平,逐步将装备IETM作为信息化建设的重要方向。但是,要形成规范、统一的IETM还存在着如下问题:
(1) 装备研发、使用、维护保障过程中产生的信息数据大多以word、excel等文件形式存储;
(2) 各级、各类管理和保障机构现有的装备IETM技术数据格式各异,大多以HTML、关系数据库等形式存在;
(3) 装备技术数据分布在各级、各类管理和保障机构,地域广、时间跨度大,无法保证数据统一。
针对上述问题,设计一个IETM系统与外部系统信息交换的接口,导入不同文件格式的技术数据文档,自动生成相应的符合IETM标准的XML文档,能够显著提高工作效率,推进军队装备IETM建设。
1 相关理论基础
IETM标准中规定,装备的所有技术信息均以数据模块的形式组织,并采用严格按照模式定义的XML进行描述。数据模块通常分为很多种类别,包括描述类信息、故障类信息、零件类信息等。
针对不同类别的数据模块,都给出了相应的XML模式(DTD或XML-Schema),用以对XML文档在结构、语意等方面进行规范和约束。由于XML-Schema相对DTD而言,具有以下优点[5]:
(1) 丰富的数据类型、支持用户自定义的数据类型;
(2) 结构化,代码重用高;
(3) XML-Schema本身就是一个特殊的XML文档,可以利用DOM对它进行解析。
因此,本系统选用XML-Schema来定义XML文档的结构。利用DOM解析技术对XML-Schema进行解析,分析其内部结构,得出其元素和层次关系,由此制作出符合该XML-Schema定义的XML文档。DOM将XML文档的逻辑结构看成树形结构,随机访问DOM树,进行读写操作[6]。在DOM树中用节点来表示XML文档中的数据内容,节点包含节点名称、节点类型、节点值等信息。一棵典型的XML-Schema的DOM树如图1所示。
利用XPath[7]可以快速查询和定位XML元素,提供一个路径表达式,检索出所查询的XML文档片段,从而对该XML文档片段进行读写操作。
2 算法设计与验证
系统的总体设计思路分为以下四个步骤:
(1) 针对标准中罗列的不同类别的数据模块,事先准备好相应的XML-Schema。
(2) 对于用户提交的文档,建立相应连接,将查询得到的数据保存至数据集中。
(3) 获取用户选择的需要创建的数据模块类别,对相应的XML-Schema进行DOM解析,找出所有的与数据有关的节点和属性,以及它们之间的层次结构,对于其中的叶子节点和属性节点,加入步骤⑵中的数据。
(4) 对结果XML文档进行验证,通过XML-Schema验证的XML文档显示给用户。
分析不同类别数据模块的XML-Schema,可以得出以下结论:XML-Schema文档中与数据有关的节点只包含在根元素xs:schema(xs为命名空间前缀)中。根元素xs:schema下含有若干个子节点,第一个子节点(顺序无关性)应为该XML-Schema所描述的主体。其他子节点为全局声明,主体中包含了对它们的引用(ref)。
算法schemaToxml有关的参数与函数定义。
schemaFirstChild:XML-Schema文档描述的主体,根元素xs:schema的第一个子节点。该节点不被其他任何节点引用。
xmlRoot:与XML-Schema文档匹配的XML文档的根元素,其名称应为schemaFirstChild的name属性值。
parent:当前活跃节点,任何新建的元素节点作为它的子节点,任何新建的属性节点作为它的属性。
checknode(xmlelement,parent):递归函数,对参数节点xmlelement进行相关处理,过程中新建的节点或元素添加为parent的子节点或属性。xmlelement初始值为schemaFirstChild. FirstChild,parent初始值为xmlRoot。
具体处理过程如下:
输入:XML-Schema和数据文档。
输出:XML。
Step1 开始调用递归函数checknode(xmlelement,parent)。
Step2 获取xmlelement节点名称xmlelement.name。
如果 xmlelement.name为xs:element或xs:group,转step3;
如果 xmlelement.name为xs:attribute或xs:attributegroup,转step4;
如果 xmlelement. HasChildNodes,转step5。
Step3 判断xmlelement是否有ref属性。若有,转step6;若没有,转step7。
Step4 判断xmlelement是否有ref属性。若有,转step6;若没有,转step8。
Step5 获取其子节点集合,依次将每个子节点赋值给xmlelement,回step1。
Step6 调用XPath,找到其引用的全局声明,将其赋值给xmlelement,回step1。
Step7 获取xmlelement的name属性,再判断xmlelement是否为叶子节点。若是,转step9;若不是,转step10。
Step8 获取xmlelement的name属性,再判断xmlelement是否为叶子节点。若是,转step11;若不是,转step12。
Step9 创建以该name属性值命名的元素节点newelement,添加为parent的子节点,节点值从数据集中获取。
Step10 创建以该name属性值命名的元素节点newelement,添加为parent的子节点,将newelement赋值为parent。
Step11 创建以该name属性值命名的属性节点newattribute,添加为parent的属性,属性值从数据集中获取。
Step12 创建以该name属性值命名的属性节点newattribute,添加为parent的属性。
综上所述,算法流程如图2所示(只判断是否为xs:element的情况,其他情况类似)。
为了验证算法的可行性,现以零件类信息为例,为了简化,取某段弹簧的XML-Schema如下。
对于用户提交的数据文档,必须满足一定的格式,否则可能导致生成XML不符合要求。因此,先给出示例,用户只需将原有的文档格式稍加修改,符合相应的格式要求之后,即可提交给系统。假设用户提交文件形式为excel,则给出如表1示例。
系统的关键是对XML-Schema解析,提取出文档结构,加入数据集中的数据,生成XML的过程。如图3所示。
这样,最终将excel表转换为符合XML-Schema定义的XML文档。
3 系统设计与实现
前文已经提到,本文旨在建立一个IETM系统与外部系统信息交换的接口,接收来自外部系统的各种格式的技术文档,统一输出为符合IETM标准的XML技术文档。其主要模块如图4所示。
获取数据集模块是系统的入口,负责从外部系统接收数据文件。首先,获取文档的后缀名,判断文档的类型。针对不同格式的数据文档,实例化相应的数据连接字符串,调用数据集填充函数,获取数据集datatable,目前只实现了excel和关系数据库的转换。数据转换模块是系统的核心,负责对XML-Schema的解析和数据的录入工作,生成相应的XML文档。数据验证模块负责对生成的XML文档进行有效性验证,验证其是否与XML-Schema匹配,并给出错误提示和修改意见等。
该系统的主要特点如下:
(1) 用户透明性。用户无需对XML-Schema标签定义以及各种约束有深刻的认识,系统会根据用户提交的技术文档和相应的数据模块类别,自动生成XML文档。整个工作过程对于用户端是透明的。
(2) 可扩展性。转换算法对于所有数据模块的XML-Schema都是通用的。因此,对于新格式的文件,只需制定新的数据连接,获取相应的数据集,从而进行XML转换。
(3) 验证功能。生成的XML文档不一定符合XML-Schema格式要求,未通过验证模块验证的XML文档,系统会给出错误原因、修改意见等。最终将符合标准的XML文档显示给用户。
利用asp.net进行开发,asp.net提供了良好的DOM接口。利用XmlDocument对象的Attribute属性、Child属性以及SelectSingleNode方法快速查找节点,同时也可以利用XmlDocument对象的CreateElement方法和AppendChild方法建立XML文档。同时还可以使用 XmlValidatingReader 对XML进行验证[8]。
4 结 语
本文围绕装备IETM系统开发前期XML文档制作的过程,设计了一个信息转换接口,重点解决不同格式的数据文档,统一转换为XML文档,为IETM的开发奠定了基础。后期将在系统中加入XML-Schema约束规则,输入数据的同时会提示相应的信息,则本系统完全可以担当IETM数据模块制作的大任。
参考文献
[1]高万春,等.S1000D下IETM的研究与实践[J].微计算机信息,2007,23(6-3):1-3.
[2]姜莉莉,等.XML和关系数据库在IETM开发中的应用[J].微计算机信息,2009,25(10-3):28-30.
[3]W3C XML[OL].http://www.w3.org/XML.
[4]曾春平,王超,张朋.XML编程从入门到精通[M].北京:北京工业出版社,2002.
[5]朱建山.基于S1000D规范的IETM数据管理系统研究[D].南京航空航天大学,2010.
[6]常浩.基于XML的异构数据交换模型的研究[D].太原理工大学,2011.
[7]王竞原,等.XPath中的文本查询研究[J].计算机工程,2007(11):70-72.
XML文档分析论文 篇5
关键词:XML,.net,电子订单
1 引言
XML或称为可扩展标记语言(Extensible Markup Language),是一种您可以用来创建自己的标记的标记语言。Web服务使用XML技术能够实现真正与平台无关的方式来描述任何数据,以进行跨系统交换数据,而且Web服务工作在较抽象的层面上,可以按照需要动态地对数据类型进行重新评估、修改或处理。
2 XML的应用
在当今的信息社会中,存在各式各样的信息产品,如PC、i MAC、掌上电脑以及智能平台等,各种产品的系统间差异大相径庭。在这些异构系统之间。往往因平台、数据库软件的差异,造成信息流通的因难,信息流速必须通过特殊的软件才能实现。且一旦系统需要更新或是改动部分系统结构,那么很可能会造成系统问不兼容等问题。由于XML提供了一套标准、通行的方式传送可描述的资源,且对各类资源都能标识,因此它是将文档和结构化资源一起移动和沟通的最佳机制。同时,由于其数据内容与具体应用无关,用其表示的数据具有很高的使用效率以及可重用性,使XML对企业、政府,尤其是B2B的电子商务在网络数据交换方面产生革命性的冲击。
3. NET平台下订单自动转化为XML文档的设计过程
通过Visual Studio2008和SQL SERVER2005开发工具,使用C#语言,开发一个基于.net的电子商务平台。在.net平台的电子商务系统的根目录下建立一个名为Order Xml的文件夹,用于存放注册用户在电子商务平台购买商品下订单后,自动转化为XML文件的原始订单,订单的命名方式以系统时间为准生成的随机文件名。设计一个Check Out.aspx.cs页面,用于完成订单自动转化为XML的设计过程的主要功能,其转化过程如下:
3.1 首先读取平台购物车生成的用户订单程序,主要程序代码如下:
3.2 其次把订单文件保存在指定的Order Xml目录中,主要程序代码如下:
3.3 平台中生成的订单自动转化为XML文件,并存放在指定好的Order Xml目录中,其主要程序代码如下:
3.4 最后设计一个Golbal.cs类,用于设置保存生成的XML的路径和XML文档的命名方式,其主要程序代码如下:
图1按系统时间命名生成的XML订单文件();
综上所述,完成了在.NET平台下,通过C#编程,将电子商务平台中的购物订单自动转化为XML文件的过程,并保存在Order Xml文件夹中,其中XML文件命名以系统时间随机生成。如图1所示。
结束语
本文分析了在.NET平台下订单自动转化为XML文档的实现过程,其主要意义是:转化后的XML文档可以在不通网络环境中无差异的传输;订单转化后,通过对XML订单加密、解密和数字签名的设计、可以增强电子商务交易中的安全性。
参考文献
[1]傅海英,李辉,王育名.XML及相关安全研究进展[J].计算机应用研究,2004(4):86-88.
[2]Mark Birbeck.XML高级编程[M].北京:机械工业出版社,2005.
[3]徐国祥,张新荣.XML在未来Web中的应用[J].计算机工程,2001.(8):20-23.
[4]NavarroAnn,周生炳.XML从入门到精通[M].北京:电子工业出版社,2000.123-134.
[5]李长林.ASP.NET+SQL Server动态网站开发与实例[M].北京:清华大学出版社,2006.
XML文档分析论文 篇6
关键词:XML,PSD,信息获取,Photoshop
1 PSD文档的信息获取方法
Photoshop文档的扩展名为.psd, 亦称PSD文档。目前计算机实现PSD文档信息的获取方法有多种, 但每种方法都存在各自的优缺点, 下面作简要介绍。
(1) 二进制文件分析法。二进制文件分析法就是依据Photoshop的源文件以字节分析的手段实现提取Photoshop操作结果的信息。该方法准确但比较繁琐, 但是实现的前提是必须清楚了解Photoshop源文件的内部结构和含义。目前由于adobe公司对于Photoshop文档说明书等内容保密, 因此无法获取最新版本的信息, 只能借助早期版本的相关说明进行部分信息的获取。
(2) Photoshop对象分析法。Photoshop对象分析法就是借助Photoshop高版本中出现的Photoshop对象控件实现信息提取。目前提供的较高版本9.0中的Photoshop控件对象所提供的信息并不是很多, 只能提取部分Photoshop操作结果信息, 但是该方法具有直接、准确的特点。二进制文件分析法和Photoshop对象分析法都是针对Photoshop源文件操作结果信息进行直接分析。这两种方法都是非常准确, 虽然实现方法不同, 但在信息提取内容上相差不大。
(3) 操作记录日志分析法。操作记录日志分析法就是通过考试时对用户操作进行监控和记录, 通过系统分析记录文件实现用户操作的还原和信息获取。这种方法优点在于可以实现基于用于操作过程的全程阅卷, 能够获取操作过程中几乎所有的操作信息, 但是也存在一些不足。由于Photoshop的操作手段相当丰富, 大部分操作实现手段有鼠标操作、菜单操作、快捷键操作等多种。同时用户在实现某一操作时可能进行重复操作或者分步操作, 因此操作具有随意性和不确定性, 导致对操作记录日志分析不可能完全达到精确的效果。
综上所述, 在Photoshop考试中采取的信息获取策略是综合上述三种策略, 各取所长、优化组合。首先使用Photoshop对象方法提取文档基本信息、图层及其属性信息。再使用二进制文件方法提取部分图层效果信息。最后通过操作记录日志分析法分析用户操作记录, 提取用户操作信息, 这部分信息操作对象是精确的, 但是操作属性相对比较模糊。该本文主要是探究使用Photoshop对象法获取PSD文档的信息, 并阐述了PSD文档信息的表达结构以及信息表达的实现。
2 PSD文档的信息表达结构
PSD文档通过XML技术将其表达为XML文档结构, 该结构具有结构清晰、描述完整、检索方便、转换方便等特点。该结构通过元素及元素属性表达该节点对象信息, 通过元素间的层次关系表达对象之间的包含和被包含关系, 通过同层节点表达对象间的并列关系。PSD文档的信息表达结构如图1所示。
“DOCUMENT”为根节点, 描述的是PSD文档的基本信息, 包括PSD文档的色彩模式、图像像素 (即图像行数和列数) 及颜色深度等信息。在根节点内是“LAYERS”节点, 描述的是图层号、图层名称及图层类型等信息, 该节点包括n个结构相似的“LAYER”子节点。在“LAYER”子节点中描述的是具体图层的信息, 在该节点内有“ARTLAYER”子节点, 有图层混合模式、图层总体透明度、图层像素高度等参数, 如果没有图层效果信息和文本信息 (即普通图层) , 则仅会显示该节点的内容。如果有图层效果信息, 则会显示在其子节点“EFFECT”中, 该节点与节点“ARTLAYER”是并列关系, 在“EFFECT”节点中包括“DROP-SHADOW”、“OUTERGLOW”、“INNERGLOW”、“BEVEL”、“COL-OR”和“INNERSHADOW”等子节点, 在这些节点中又包含了各自不同的参数。如果在图层中包含有文本信息, 则会在“LAY-ER”子节点内的“ARTLAYER”子节点中出现“TEXTITEM”子节点, 该子节点中包含的就是文本的信息。
3 信息表达实现
3.1 实现原理
使用XML表达PSD文档, 需要一个流程如图2所示。
首先载入PSD源文件, 在载入PSD源文件的同时创建XML文档。其次是进行文档基本信息分析, 并用XML表达文档的基本信息。再次是进入PSD图层信息分析阶段, 在图层中进行图层效果分析, 如果在图层中含有文本, 也会对文本信息进行分析并将图层效果等信息进行XML表达。当图层全部分析完毕后, 关闭PSD文档, 如果没有分析完毕就返回图层分析阶段直至分析完毕, 最后在关闭PSD文档之后, 保存并关闭XML文档。
3.2 实现效果
通过运用Visual Basic工具编写程序使PSD文档转换为XML文档, 并使用XMLwriter工具查看某文档转换后的XML文档, 用XML表达PSD文档的基本信息如图3所示。
在图3中, 蓝色选中部分为该PSD文档用XML表达的基本信息, 包括PSD文档的色彩模式、图像像素 (即图像行数和列数) 及颜色深度等信息。PSD文档的所有图层信息表达都是在
图层中若有图层效果的信息时, 有关图层效果的信息则会出现在表示效果的语句中, 如图5所示。
在表达图层效果的语句中包括了能够获取的PSD文档图层效果及各自的参数信息, 比如投影、外发光、内发光、内阴影及斜面与浮雕等效果, 每一个效果也包含了各自的参数表达, 比如混合模式、透明度、颜色等参数。在该PSD文档图层中包含有文本信息, 故该XML文档中也有图层文本信息的表达语句, 它是在语句
PSD文档的图层可以同时包括文本信息和效果信息, 也可以只包括一个, 或者都没有, 如图7所示。
4 结束语
以上关于基于XML表达的PSD文档信息的自动获取是基于长期对PSD文档研究的经验所得, 针对考试阅卷Photoshop信息自动分析的实际需求, 并结合Photoshop自动阅卷的方向提出个人的见解, 希望能获得更多的观点和看法, 解决未来Photoshop等学科的自动阅卷所面临的各种难题。
参考文献
[1]金炳尧, 马永进, 骆红波, 等.阅卷信息的形式化描述及其应用[J].计算机科学, 2005 (10) .
[2]ARENAS, MARCELO, LIBKIN, LEONID, A Normal Form for XMLDocuments[J].ACM Transactions on Database Systems, 2004 (3) .
[3]FOURER.R, GASSMANN, H.I, MA, J, MARTIN, R K.An XML-based schema for stochastic programs[J].Annals of Operations Re-search, 2009 (1) .
[4]周长敏.基于XML的网络考试系统的研究与实现[D].贵阳:贵州师范大学, 2008.
[5]BURSTEIN JETAL.Automated Evaluation of Essays and Short An-swers[A].Fifth International Computer Assisted Assessment Confer-ence[C].Lough borough University, 2001.
从关系数据库到XML文档的转换 篇7
关键词:数据库,XML文档,JDBC,SQL
(一) 引言
XML (e Xtensible Markup Language, 可扩展标记语言) 因其具有支持信息系统交互和数据整合、生命周期长等方面的独特优势, 得到了信息技术界的普遍重视。另一方面, 传统的关系数据库依然是存储数据的主要手段, 是Internet信息的主要来源, XML为这些存储在不同关系数据库中的信息之间的交换提供了一条捷径。而与其他数据库编程环境相比, Java和JDBC有一个显著优点:使用Java和JDBC开发的程序可以跨平台运行, 且不受数据库供应商的限制, 具有很好的通用性。因此文中介绍如何利用JDBC从数据库中抽取数据, 并用Java实现数据到XML文档的转换。
(二) 从关系数据库到XML文档转换的系统结构
实现从关系数据库到XML文档转换的核心思想是, 利用JDBC从关系数据库中抽取数据, 通过java程序将抽取的数据转换为XML文档, 整个系统中数据的流程图如下所示:
(三) 通过JDBC访问数据库
JDBC是一种可用于执行SQL语句的Java API, 它由一些Java语言编写的类、界面组成。JDBC给数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口, 使开发人员可以用纯Java语言编写完整的数据库应用程序。通过使用JDBC, 开发人员可以很方便地将SQL语句传送给几乎任何一种数据库, 因此用JDBC来解析数据库, 具体的解析步骤如下:
(四) 生成XML文档
Java是一种广泛使用的网络编程语言, 它简单、面向对象、不依赖于机器的结构, 具有可移植性、安全性, 并且提供了并发的机制、具有很高的性能。其次, Java还提供了丰富的类库, 使程序设计者可以很方便地建立自己的系统, 因此使用Java来解析生成XML文档是一种很好的方式。
1. 从关系数据库结构到XML文档的映射
本文采用的方法是将命令语句嵌入模板的方法, 例如, 在元素中内嵌了SQL语句:
这种映射方法相当灵活, 在最后的结果中替换想要的内容, 包括在SELECT中使用的参数, 另外它还支持使用编程结构, 例如循环和条件判断结构。根据用户的需要生成相应的SQL查询语句, 把这些查询语句嵌入到模板的程序模块中, 最后生成文档。
2. 从关系数据库到XML文档转换基于模板映射的实现方法
(1) 生成DOM数代码实现
(2) 输出XML文档实现方法
(五) 结束语
XML是一个数据表示的开放标准, 其特点使得其在信息管理、数据交换, 应用集成等方面有着重要的用途, 基于XML的信息也将普遍存在, 它和现在很多信息数据库之间存在着大量的数据转换, 因此文中讨论了从关系数据库到XML文档的转换。基于JDBC和Java具有很好的跨平台性, 因此使用这两种工具语言来实现整个转换过程, 以做到整个转换系统具有很好的通用性。
参考文献
[1]Cay S.Horstmann, Gary Cornell.JAVA2核心技术[M].北京:机械工业出版社, 2006.
[2]Brett D.McLaughlin, Justin Edelson.Java与XML[M].南京:东南大学出版社, 2007.
【XML文档分析论文】推荐阅读:
XML文档05-20
文档管理系统需求分析05-27
勾股定理教材分析文档07-07
四年级数学上册期末试卷分析 文档07-20
2022-2023六年级第一学期期末试卷分析 Word 文档07-17
湘教版七年级地理下册《东南亚》第三课时教案分析-文档资料09-15
科技文档论文07-15
实践论文 文档07-24
论文资料文档11-13
组织行为学论文文档09-27