一种存储XML数据到关系数据库的方法,包括以下步骤:将一个XML的Schema拆成一个或多个映射配置文件,每个映射配置文件对应一个关系数据库的表;解析XML文本,按照映射配置文件中的关联关系将XML文本中的数据插入到多个关系数据库的表中;通过访问数据库的方式读取XML文本的数据。采用本发明专利技术的方法,将XML文件数据存储到关系数据库中,加快数据的读取访问速度。
【技术实现步骤摘要】
本专利技术涉及一种数据的存储方法,尤其涉及一种存储XML数据的方法。
技术介绍
XML是一种描述型的标记语言,与HTML同为SGML (标准通用标记语言,IS0-8879国际标准)的一种应用。由于XML在可扩展性、可移植性和结构性等方面的突出优点,它的应用范围突破了 HTML所达到的范围。一篇XML文档由标记和内容组成。XML中有六种标记元素(elements)、属性(attributes)、实体引用(entity references)、注释(comments)、处理指令(processinginstructions)和 CDATA 段(CDATA sections)。XML 与 HTML 最显著的不同是 XML 文档中引入了“文档类型声明” (Document Type Declarations)。DTD使文档可以与分析器交流关于它的内容的元信息。DTD的出现,赋予了 XML文档可扩展性、结构性和可验证性,使XML具备了类似于数据库的一些性质,可以利用XML来组织和管理信息;又可以与HTML—样在浏览器中方便地表示,在Internet上高效地传递和交换。目前,处理XML文档的方式主要有SAX与DOM两种。SAX (SimpIeAPIforXML)是一种基于流的、以事件处理方式工作的接口。SAX 2. O在2000年5月发布,增强了许多功能,包括对名字空间的支持。D0M(Document Object Model)则是在对XML文档进行分析后,在内存中建立起一个完整的树结构,然后在此基础上进行各种操作。简单地比较来看,SAX对系统资源要求低、速度快,但对文档的操作是只读的;D0M的处理能力强大,但要求大量的系统资源,尤其是对于大的文档。而后还出现了 Xpath和Xpointer用以完成XML的搜索和转换;XSL、XSLT和SOAP用以完成XML的远程对象访问,XML Query Languages的出现使XML查询语言可用于任何XML文档。而随着网络和Internet的发展,数据交换的能力已成为新的应用系统的一个重要的要求。XML的好处是数据的可交换性(portable),同时在数据应用方面还具有如下优点=(I)XML文件为纯文本文件,不受操作系统、软件平台的限制;(2)XML具有基于Schema自描述语义的功能,容易描述数据的语义,这种描述能为计算机理解和自动处理;(3)XML不仅可以描述结构化数据,还可有效描述半结构化,甚至非结构化数据。XML文件是数据的集合,它是自描述的、可交换的,能够以树型或图形结构描述数据。XML提供了许多数据库所具备的工具存储(XML文档)、模式(DTD,XML schema,RE1AXNG等)、查询语言(XQuery, XPath, XQL, XML-QL, QUILT 等)、编程接口 (SAX, DOM, JD0M)等。但XML并不能完全替代数据库技术。XML缺少作为实用的数据库所应具备的特性高效的存储、索引和数据修改机制;严格的数据安全控制;完整的事务和数据一致性控制;多用户访问机制;触发器、完善的并发控制等。因此,XML文本在数据读取的性能方面较差,如果需要多次读取同样的XML文本,这种劣势就会更加明显,尽管在数据量小、用户少和性能要求不太高的环境下,可以将XML文档用作数据库,但却不适用于用户量大、数据集成度高以及性能要求高的作业环境。
技术实现思路
为了解决现有技术存在的不足,本专利技术提供一种存储XML数据到关系数据库的方法,将XML数据保存到关系数据库中,加快数据的读取访问速度。为了实现上述目的,本专利技术提供的一种存储XML数据到关系数据库的方法,包括以下步骤 将一个XML的Schema拆成一个或多个映射配置文件,每个映射配置文件对应一个关系数据库的表; 解析XML文本,按照映射配置文件中的关联关系将XML文本中的数据插入到多个关系数据库的表中; 通过访问数据库的方式读取XML文本的数据。其中,所述映射配置文件由一个根节点和多个子节点构成,其中,所述根节点的属性包括名称,起始深度,深度数;所述子节点的属性包括ID,父ID,名称,深度数,最大值,类型。其中,所述根节点的名称,为非空字符串,用于指定数据库表的名称; 所述根节点的起始深度,为正整数,当XML树解析深度为该值时开始使用该映射文件; 所述根节点的深度数,为正整数,在XML树从开始深度解析该值时停止使用该映射文件; 所述子节点的ID,为正整数,表示节点的ID ; 所述子节点的父ID,为正整数,此节点的父节点的ID,无父节点时此字段为O ; 所述子节点的名称,为非空字符串,表不标签的名称; 所述子节点的深度数,正整数,相对起始深度的深度数,在XML解析深度数为该值时,进行匹配该节点的尝试; 所述子节点的最大值,为正整数,同名标签将在最大值内展开为一条记录的多个字段; 所述子节点的类型,为字符串,表示是否为主键,基本数据类型,是否是叶子节点。其中,相同节点可以在不同的映射文件中出现;根据类型为主键的节点在不同映射文件中建立索引。其中,所述解析XML文本,进一步包括以下步骤 根据索引文件,判断是否需要进入; 根据索引文件,判断是否为不包含其它子节点的叶子节点; 根据索引文件,判断是否完成了一条记录。采用本专利技术的方法,根据XML的Schema和用户的需求等,将一个XML的Schema拆成一个或多个映射文件,每个映射配置文件对应一个关系数据库的表。在第一次解析和读取XML文本时,按照映射文件中的关联关系将XML文本中的数据插入到多个关系数据库的表中,实现了将XML数据保存到关系数据库中的目的,加快了数据的读取访问速度。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。附图说明附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,并与本专利技术的内容和实施例一起,用于解释本专利技术,并不构成对本专利技术的限制。在附图中 图I为根据本专利技术的存储XML数据到关系数据库的方法流程 图2为根据本专利技术的标签入口处理流程 图3为根据本专利技术的标签内容处理流程 图4为根据本专利技术的标签出口处理流程图。具体实施例方式以下结合附图对本专利技术的优选实施例进行说明,应当理解,此处所描述的实施例仅用于说明和解释本专利技术,并不用于限定本专利技术。XML文件是标签和有效数据组成的树型结构,利用XML纯文本文件可以用来存储格式化数据。应用程序通过解析XML的标签,来读取XML的数据,相比通过数据的索引可以快速地定位到需要读写的记录的关系数据库,XML文本在数据读取的性能方面较差,如果需要多次读取同样的XML文本,这种劣势就会更加明显。这种情况下,可以将XML数据保存到关系数据库中,来加快数据的读取访问速度。但由于关系数据库是二维结构,而XML文本是树形结构,因此需要将XML的树形结构的数据映射到关系数据库的二维结构上来。图I为根据本专利技术的存储XML数据到关系数据库的方法流程图,下面将参考图1,对本专利技术的存储XML文件数据到关系数据库的方法进行详细描述 首先,在步骤101,根据XML的Schema和用户的需求等,将一个XML的Schema拆成一个或多个映射配置文件文本文档来自技高网...
【技术保护点】
【技术特征摘要】
【专利技术属性】
技术研发人员:毕松,
申请(专利权)人:北京播思软件技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。