资源描述:
《sql server对xml文档的数据抽取方法的分析与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、SQLServer对XML文档的数据抽取方法的分析与实现2006年第2期桂林航天工业高等专科学校(总第42期)JOURNALOFGUILINCOLLEGEOFAEROSPACETECHNOLOGY计算机技术及应用SQLServer对XML文档的数据抽取方法的分析与实现黄锐吉斌武(桂林航天工业高等专科学校计算机系广西桂林541004)摘要XML正在逐步成为新一代Web数据描述和数据交换标准,将XML文档中的数据抽取到关系数据库中进行管理,可以极大的提高数据的使用效率.本文针对SQLServer对XML文档的数据抽取方法的原理进行了分析,并提出了具体
2、的实现方法.关键词XML;SQLServer;数据抽取中图分类号:TP311文献标识码:A文章编号:1009-1033(2O06)O2一O024一O2随着Internet的快速发展,Web已经成为全球信息传递和获取的重要方式.XML作为一种标准的,可扩展的,结构化语言的出现,使其迅速成为Web上数据表示和数据交换的标准,XML正在逐步成为新一代Web数据描述和数据交换标准.而用XML存储大量的数据,进行多次查询时,利用目前XML的查询方法,将非常困难,且速度也较慢,不能满足要求.如果抽取XML中的数据存储在关系数据库中进行查询将不存在该问题,如何
3、应用数据库技术进行对其进行有效的存储和管理是一个亟待解决的问题.SQLServer数据库系统是当今主流的数据库系统之一,在SQLServer2000中,引入了对XML的直接支持.因此,研究SQLServer对XML文档的数据抽取有着重要的意义.1XML概述xML(可扩展标记语言)是全球信息网协会(W3C)推荐在Web上使用的数据表示和交换标准,它源于SGML.这种通用标记语言,采用标记来表示信息内容.它不仅提供关于数据本身的信息,而且侧重于提供对数据结构的描述,是标识和描述的集合,具有自描述性.XML数据由嵌套和标记元素组成,标记包含对文档存储形
4、式和逻辑结构的描述.这种嵌套标记元素结构使XML很适合描述web上的半结构化数据;此外,这种标记代表数据的含义而不是显示数据结构,也使XML可用来描述内容而非表现形式;再加上XML文档一般是成型的合法结构文档.使一般的应用软件能解读它,并通过标记语言的意义对其进行特定的处理,使XML具有良好的可扩展性.XML实际上是一种定义语言,使用者可自由定义标签,并通过元素之间的嵌套包含来体现层次关系.XML与HTML的最大不同在于XML具有丰富的结构信息和明确的语义,而HTML只对表现形式做了约定.XML可以定义丰富的语义信息,Web上的所有的信息都能用X
5、ML表示,并且扩充了许多以往HTML无法表示的内容.XML语义的丰富性体现在:(1)信息提供者可以根据自己的意愿定义新的标记和特性名称.(2)文档结构可以具有任意复杂的层次.(3)可以创建文档类型定义(DTD)作为XML表示某种特定类型的文档的一组规则.2XML文档数据抽取的原理XML文档的逻辑结构由XML声明,XML元素,CDATA,注释,处理指令组成,XML元素是XML文档内容的基本单元.在进行数据抽取时,基本只用到XML元素,CDATA.可以使用树结构处理XML结构化数据,构成XML结构化数据的元素作为树的结点,根元素可看作树的根结点,元素
6、之间的嵌套关系可看作树结点之间的父子关系,元素之间的先后关系可看作树结点之间的兄弟关系.这样,把XML结构化数据存储到数据库的过程就是采用前序遍历树的结点并把每个结点的信息存人数据库的过程.设一个XML文档中包含的信息可以用3个表来存储,即Document,Element,Attribute.Document表用来存储XML文档的名字和一个唯一id;Element表用来存储XML文档所有元素的基本信息,包括名称,内容,次序和指向Document表的id等字段;Attribute表用来存储XML*黄锐,(1978~),男,桂林航天工业高等专科学校计
7、算机系讲师242006年第2期桂林航天工业高等专科学校(总第42期)JOURNALOFGUILINCOLLEGEOFAEROSPACETECHNOLOGY黄锐,吉斌武/文元素的属性信息,包括属性名,属性值,指向Document表的id和Element表的id等字段.算法描述如下:设T是以r为根的树,V1,V2,……Vn是r的子结点,T1,T2,……Tn分别是以V1,V2,……Vn为根结点的子数.首先获取根结点r的信息存入Element表中,获取r属性信息存入Attribute表中.其次使用前序遍历的方法遍历子树T1,T2,……Tn.该算法是一个递
8、归算法.调用该算法前,必须获取XML文档的文件名并生成一个id,将其存入Document表中.这种递归算法与一些专业软件厂商所采用的方法