一种快速处理大型xml文件时节点元素的缓存方法

文档序号:6519358阅读:436来源:国知局
专利名称:一种快速处理大型xml文件时节点元素的缓存方法
技术领域
本发明涉及W3C标准《Extensible Markup Language (XML) 1. 1 (Second Edition)), 是关于在处理大型XML文件节点元素时,对输入、编辑过的元素在保存至磁盘之前的缓存 处理方法。
背景技术
XML数据具有半结构化的特点,在节点元素之间存在结构关系,因此在其索引记录 中需要保存必要的结构信息,这导致XML数据的更新通常会带来节点结构关系的变化。目前针对XML的查询语言主要有Qui 11、XML查询语言(XML Query Language, XQuery)、XML 路径语言(XML Path Language, XPath)、XML 转换语言(Yet Another Transformation Language, YA TL)。其中使用最广泛的是XQuery和XPath。这两种查询语 言功能强大,语法简洁易懂,适用于各种XML数据源,具备很好的通用性,得到广泛的支持。XPath是轻量的XML查询语言,也是其他XML查询语言如XQuery、XSLT的基础,它 通过带有搜索路径表达式来在XML文档中定位文本数据、元素、属性以及其他信息。XQuery是处理大量XML文档的功能性语言,它是依据对XPath和XQuery通用的数 据模型而被描述的。在这种模型里,XML文档被看做树,称为“文档树”。目前XQuery已经 增加了支持在XML文档上执行子文档更新的扩展,即W3C标准XQueryUpdate Facility。通 过这些扩展可以添加新节点、删除或重命名已有的节点以及替换已有的节点和它们的值。XQuery Update Facility在处理大型XML文件的查询/更新任务时,查询和更新 文件需要占用大量的内存空间和时间,影响XML文件的处理效率,并且极大地增加了系统 的负荷,延缓了查询响应的时间。

发明内容
本发明所要解决的技术问题是克服上述现有技术存在的缺陷,提供一种快速处理 大型XML文件时节点元素的缓存方法,以避免在用户对文档仅做了少量修改时程序去处理 整个大型文档。为此,本发明采用以下步骤处理XML文件1)将XML文件读入内存,在读入的同时对XML节点进行分析,将节点位置及类型作 为附加信息一起存储在内存中。2)如果仅对XML文件进行读取操作,则不生成节点缓存文件;当出现对XML节点 的增加、更新和删除操作时,生成缓存文件,所述的缓存文件包括文件头部和数据部分,数 据部分保持发生变化的XML节点元素,每个元素数据的结构组成包括控制块元素数据、本 元素的数据长度、下一个元素相对于本元素的偏移量和上一个元素相对于本元素的偏移 量,控制块元素数据使用缓存控制块封装,所述的缓存控制块用于控制对节点元素的访问。3)在对XML文件进行修改时,步骤1中导入的XML文件内容不做修改,仅在其中检 索并根据需要修改节点元素的位置和类型信息,如果这是对文件的第一次修改,则生成缓
权利要求
一种快速处理大型XML文件时节点元素的缓存方法,其步骤如下1)将XML文件读入内存,在读入的同时对XML节点进行分析,将节点位置及类型作为附加信息一起存储在内存中;2)如果仅对XML文件进行读取操作,则不生成节点缓存文件;当出现对XML节点的增加、更新和删除操作时,生成缓存文件,所述的缓存文件包括文件头部和数据部分,所述的文件头部由文件头部信息和文件头部数据组成,数据部分由多个元素数据组成,数据部分保持发生变化的XML节点元素,每个元素数据的结构组成包括控制块元素数据、本元素的数据长度、下一个元素相对于本元素的偏移量和上一个元素相对于本元素的偏移量,控制块元素数据使用缓存控制块封装,所述的缓存控制块的结构组成包括元素类型、元素状态、元素长度、元素、实体类数据长度和实体类数据,用于控制对节点元素的访问;3)在对XML文件进行修改时,步骤1中导入的XML文件内容不做修改,仅在其中检索并根据需要修改节点元素的位置和类型信息,如果这是对文件的第一次修改,则生成缓存文件,将被修改节点的位置信息保存在缓存文件的数据部分中,将修改后的节点状态信息以及节点数据保存在缓存控制块中;如果这不是对文件的第一次修改,则检索已经存在的缓存文件,对于节点的更新和删除操作,首先判断缓存文件中是否曾对相同节点做过修改,如有,则先删除缓存文件中已有的内容,然后将需要更新或删除的节点写入缓存文件的数据部分中;对于节点的插入操作,则直接将需要插入的节点保存在缓存文件的数据部分中。
2.根据权利要求1所述的快速处理大型XML文件时节点元素的缓存方法,其特征在于 所述文件头部信息的结构由头部数据偏移量和缓存文件标识组成。
3.根据权利要求1或2所述的快速处理大型XML文件时节点元素的缓存方法,其特征 在于所述文件头部数据的结构包括数据部分偏移量、文件创建时间、缓存的元素个数、源文 件的完整路径长度、源文件的完整路径和保留数据。
全文摘要
目前在处理大型XML文件的查询/更新任务时,需要占用大量的内存空间和时间,影响XML文件的处理效率,并且极大地增加了系统的负荷。本发明公开了一种快速处理大型XML文件时节点元素的缓存方法,将XML文件读入内存,在读入的同时对XML节点进行分析,将节点位置及类型作为附加信息一起存储在内存中,通过引入缓冲区以暂存用户修改过的XML节点,同时维护索引信息的完整性。本发明通过缓存用户修改过的内容,仅对用户修改过的内容进行处理,该处理方法减少了内存的占用量并降低了查询响应时间。
文档编号G06F17/30GK101986311SQ20101054733
公开日2011年3月16日 申请日期2010年11月17日 优先权日2010年11月17日
发明者吴俊 , 楼伯良, 王松, 董毅, 阮黎翔, 陆承宇, 黄晓明 申请人:浙江省电力试验研究院;浙江省电力试验研究院技术服务中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1