《XML文件中节点元素的索引信息表示法.pdf》由会员分享,可在线阅读,更多相关《XML文件中节点元素的索引信息表示法.pdf(6页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN101996252A43申请公布日20110330CN101996252ACN101996252A21申请号201010547334222申请日20101117G06F17/3020060171申请人浙江省电力试验研究院地址310014浙江省杭州市下城区朝晖八区华电弄1号申请人浙江省电力试验研究院技术服务中心72发明人吴俊黄晓明陆承宇楼伯良王松阮黎翔董毅74专利代理机构浙江翔隆专利事务所33206代理人张建青54发明名称XML文件中节点元素的索引信息表示法57摘要本发明公开了一种用于解决大型XML文件的处理效率问题的XML节点元素索引信息表示方法。现有的文档对象模型在解析大型。
2、XML文件的应用中均存在一定的缺陷DOM对计算机的性能和内存要很高的要求;SAX在处理文件编码和文件编辑时存在困难。本发明的特征在于在解析XML文件时,将原始XML文件以字节数组的形式读入内存;在加载文件的同时,扫描文件内容,并且为每一个扫描得到的节点创建索引信息,节点索引信息中的各信息单元以定长的整数形式保存。本发明加载XML文件时直接将XML文件以字节数组形式读入内存,加载效率高,速度快;索引信息以整数形式保存,容易编程处理;索引信息长度固定,实现了高效率检索。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书1页说明书3页附图1页CN101996257A1/1页21。
3、XML文件中节点元素的索引信息表示法,其特征在于在解析XML文件时,将原始XML文件以字节数组的形式读入内存;在加载文件的同时,扫描文件内容,并且为每一个扫描得到的节点创建索引信息,所述的节点索引信息包括前驱节点、节点类型、深度、节点长度、预留单元、偏移量和后继节点,节点索引信息中的各信息单元以定长的整数形式保存,所述的偏移量指XML节点首字节在整个XML文档中的位置,所述的深度指XML节点在文档树中的深度,所述的前驱节点为当前XML节点的前驱节点,所述的后继节点为当前XML节点的后继节点。2根据权利要求1所述的XML文件中节点元素的索引信息表示法,其特征在于如果当前节点是根节点,则前驱节点指。
4、向当前节点的起始位置;如果当前节点是第一个子节点,则前驱节点指向当前节点父节点的起始位置;其他节点的前驱节点指向上一个兄弟节点。3根据权利要求1或2所述的XML文件中节点元素的索引信息表示法,其特征在于如果当前节点是文件中最后一个节点,则后继节点指向该节点的起始位置;如果当前节点是叶子节点,则后继节点指向当前节点父节点的下一个兄弟节点;其他节点的后继节点指向下一个兄弟节点。4根据权利要求3所述的XML文件中节点元素的索引信息表示法,其特征在于节点索引信息的总长度为128BIT,表示前驱节点和后继节点的信息长度均为32BIT,表示节点类型的信息长度为4BIT,表示深度的信息长度为8BIT,表示节。
5、点长度的信息长度为20BIT,表示偏移量的信息长度为30BIT,表示预留单元的信息长度为2BIT。权利要求书CN101996252ACN101996257A1/3页3XML文件中节点元素的索引信息表示法技术领域0001本发明涉及W3C标准,具体地说是一种用于解决大型XML文件的处理效率问题的XML节点元素索引信息表示方法。背景技术0002目前在解析XML文件时,主要有二种技术文档对象模型DOMDOCUMENTOBJECTMODEL和SAXSIMPLEAPIFORXML。0003DOM是W3C的成熟标准,是一个基于树型的解析技术。在内存中构建起一棵完整的解析树,并生成解析树上的所有节点NODE对。
6、象,以实现对整个XML文档的全面、动态的访问。0004在DOM构造的节点树中,每一个元素、属性均被当作对象进行处理。内存中的解析树结构提供了很好的导航支持,但存在以下问题首先,整个XML文档必须一次解析完成,不可能只做部分解析;其次,在内存中加载整个文档和构建完整树结构成本很高,尤其当文档非常大的时候。通常,DOM树的容量比文档容量要大一个数量级,所以它要消耗大量内存;第三,一般的DOM节点类型在互操作性上有优势,但并不是非常适合对象类型的绑定。0005SAX是一个用于处理XML的事件驱动的“推”模型。它不是W3C标准,但它是一个得到广泛认可的API。SAX解析器不象DOM那样为整个文档建立树。
7、型表示,而是在读取文档时激活一系列的事件。这些事件被推给事件处理器,由事件处理器提供对文档内容的访问。0006上述二种技术在解析大型XML文件的应用中均存在一定的缺陷DOM对计算机的性能和内存要很高的要求;SAX在处理文件编码和文件编辑时存在困难。发明内容0007本发明所要解决的技术问题是克服上述现有技术存在的缺陷,提供一种在解析XML文件时对节点元素的新的处理方法,使用该方法能够以高效、灵活和低资源占用率的方式来解析大型XML文件。0008为此,本发明采用如下的技术方案XML文件中节点元素的索引信息表示法,在解析XML文件时,将原始XML文件以字节数组的形式读入内存;在加载文件的同时,扫描文。
8、件内容,并且为每一个扫描得到的节点创建索引信息。0009本发明加载XML文件时直接将XML文件以字节数组形式读入内存,不需要象其它方式那样将文件转换成对象树,加载效率高,速度快;索引信息以整数形式保存,容易编程处理;索引信息长度固定,容易实现高效率检索。0010索引信息中的各项内容说明如下0011前驱节点当前XML节点的前驱节点。如果当前节点是根节点,则前驱节点指向当前节点的起始位置;如果当前节点是第一个子节点,则前驱节点指向当前节点父节点的起始位置;其他节点的前驱节点指向上一个兄弟节点。0012节点类型定义XML节点的类型;说明书CN101996252ACN101996257A2/3页400。
9、13深度XML节点在文档树中的深度;0014节点长度XML节点的长度;0015预留单元目前不使用,预留至将来使用;0016偏移量XML节点首字节在整个XML文档中的位置;0017后继节点当前XML节点的后继节点。如果当前节点是文件中最后一个节点,则后继节点指向该节点的起始位置;如果当前节点是叶子节点,则后继节点指向当前节点父节点的下一个兄弟节点;其他节点的后继节点指向下一个兄弟节点。0018索引信息的长度为固定长度128BIT,表示前驱节点和后继节点的信息长度均为32BIT,表示节点类型的信息长度为4BIT,表示深度的信息长度为8BIT,表示节点长度的信息长度为20BIT,表示偏移量的信息长度。
10、为30BIT,表示预留单元的信息长度为2BIT。因此在对大型XML文件进行索引时,总索引信息所占用的内存空间与XML文件大小成线性关系,特别是当节点字节数多时,效率高。不会如DOM处理方式中,当文件体积增大时,所占用的内存空间成倍增长。0019本发明结合了传统的DOM和SAX解析XML文件的优点,通过改变XML节点元素的表示方法,使本发明的XML元素处理方法与传统方法相比有以下几方面的改进00201处理XML文件的速度更快。由于不需要把XML文件中的各个元素当作对象来进行处理,在处理XML元素时操作的对象是字节数组中的数据,使得编程处理时速度比传统方式有成倍提高。00212解析XML文件时占用。
11、的存储空间小。用本发明方法处理的XML文件,所占用的内存空间只是文件本身加上额外的索引信息;与DOM将节点当作对象存储在内存的方式相比,所占用的存储空间大为减少。00223可以方便地对文件进行随机读写、访问。索引信息中的节点地址信息保证了在访问XML文件时,可以随时访问文件的任何一个节点,而且由于索引信息是以定长的整数形式保存的,所以访问速度很快。而传统的SAX技术在访问XML文件时由于缺少有效的索引信息,在随机访问文件时就会遇到困难。0023下面结合说明书附图和具体实施方式对本发明作进一步说明。附图说明0024图1为本发明XML节点元素的索引信息格式。0025图2为本发明索引信息与XML文件。
12、的关系。具体实施方式0026下面以一个具体的XML文件为例,来说明该文件节点元素的索引信息表示方法。00270028GEORGE0029JOHN0030REMINDER0031DONTFORGETTHEMEETING0032说明书CN101996252ACN101996257A3/3页50033该XML文件在被读入内存的同时,根据图1定义的格式,生成如下形式的索引信息。其中每一个节点的前驱和后继节点的信息是前驱和后继节点在内存中的偏移量。003400350036在解析该XML文件时,通过偏移量和节点长度可以确定每一个节点。如偏移量为21个字节,节点长度为6的数据内容是“FROM”,通过节点类型0可知该节点是一个XML标记,通过节点深度1,可判断该节点是一个二级节点。“FROM”的前驱节点的偏移量在第10个字节处,后继节点在第27个字节处。根据前面解析“FROM”节点的方法,可以分别推导出第10个字节和第27个字节处的XML元素。“FROM”节点的索引信息和XML文件的关系如图2所示。说明书CN101996252ACN101996257A1/1页6图1图2说明书附图CN101996252A。