首页 / 专利库 / 专利权 / 形式要求 / XML文件中节点元素的索引信息表示法

XML文件中节点元素的索引信息表示法

阅读:1084发布:2020-06-03

专利汇可以提供XML文件中节点元素的索引信息表示法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种用于解决大型XML文件的处理效率问题的XML 节点 元素索引信息表示方法。现有的文档对象模型在解析大型XML文件的应用中均存在一定的 缺陷 :DOM对计算机的性能和内存要很高的要求;SAX在处理文件编码和文件编辑时存在困难。本发明的特征在于在解析XML文件时,将原始XML文件以字节数组的形式读入内存;在加载文件的同时,扫描文件内容,并且为每一个扫描得到的节点创建索引信息,节点索引信息中的各信息单元以定长的整数形式保存。本发明加载XML文件时直接将XML文件以字节数组形式读入内存,加载效率高,速度快;索引信息以整数形式保存,容易编程处理;索引信息长度固定,实现了高效率检索。,下面是XML文件中节点元素的索引信息表示法专利的具体信息内容。

1.XML文件中节点元素的索引信息表示法,其特征在于在解析XML文件时,将原始XML文件以字节数组的形式读入内存;在加载文件的同时,扫描文件内容,并且为每一个扫描得到的节点创建索引信息,所述的节点索引信息包括前驱节点、节点类型、深度、节点长度、预留单元、偏移量和后继节点,节点索引信息中的各信息单元以定长的整数形式保存,所述的偏移量指XML节点首字节在整个XML文档中的位置,所述的深度指XML节点在文档树中的深度,所述的前驱节点为当前XML节点的前驱节点,所述的后继节点为当前XML节点的后继节点。
2.根据权利要求1所述的XML文件中节点元素的索引信息表示法,其特征在于如果当前节点是根节点,则前驱节点指向当前节点的起始位置;如果当前节点是第一个子节点,则前驱节点指向当前节点父节点的起始位置;其他节点的前驱节点指向上一个兄弟节点。
3.根据权利要求1或2所述的XML文件中节点元素的索引信息表示法,其特征在于如果当前节点是文件中最后一个节点,则后继节点指向该节点的起始位置;如果当前节点是叶子节点,则后继节点指向当前节点父节点的下一个兄弟节点;其他节点的后继节点指向下一个兄弟节点。
4.根据权利要求3所述的XML文件中节点元素的索引信息表示法,其特征在于节点索引信息的总长度为128bit,表示前驱节点和后继节点的信息长度均为32bit,表示节点类型的信息长度为4bit,表示深度的信息长度为8bit,表示节点长度的信息长度为20bit,表示偏移量的信息长度为30bit,表示预留单元的信息长度为2bit。

说明书全文

XML文件中节点元素的索引信息表示法

技术领域

[0001] 本发明涉及W3C标准,具体地说是一种用于解决大型XML文件的处理效率问题的XML节点元素索引信息表示方法。

背景技术

[0002] 目前在解析XML文件时,主要有二种技术:文档对象模型DOM(Document Object Model)和SAX(Simple API for XML)。
[0003] DOM是W3C的成熟标准,是一个基于树型的解析技术。在内存中构建起一棵完整的解析树,并生成解析树上的所有节点(Node)对象,以实现对整个XML文档的全面、动态的访问
[0004] 在DOM构造的节点树中,每一个元素、属性均被当作对象进行处理。内存中的解析树结构提供了很好的导航支持,但存在以下问题:首先,整个XML文档必须一次解析完成,不可能只做部分解析;其次,在内存中加载整个文档和构建完整树结构成本很高,尤其当文档非常大的时候。通常,DOM树的容量比文档容量要大一个数量级,所以它要消耗大量内存;第三,一般的DOM节点类型在互操作性上有优势,但并不是非常适合对象类型的绑定。
[0005] SAX是一个用于处理XML的事件驱动的“推”模型。它不是W3C标准,但它是一个得到广泛认可的API。SAX解析器不象DOM那样为整个文档建立树型表示,而是在读取文档时激活一系列的事件。这些事件被推给事件处理器,由事件处理器提供对文档内容的访问。
[0006] 上述二种技术在解析大型XML文件的应用中均存在一定的缺陷:DOM对计算机的性能和内存要很高的要求;SAX在处理文件编码和文件编辑时存在困难。

发明内容

[0007] 本发明所要解决的技术问题是克服上述现有技术存在的缺陷,提供一种在解析XML文件时对节点元素的新的处理方法,使用该方法能够以高效、灵活和低资源占用率的方式来解析大型XML文件。
[0008] 为此,本发明采用如下的技术方案:XML文件中节点元素的索引信息表示法,在解析XML文件时,将原始XML文件以字节数组的形式读入内存;在加载文件的同时,扫描文件内容,并且为每一个扫描得到的节点创建索引信息。
[0009] 本发明加载XML文件时直接将XML文件以字节数组形式读入内存,不需要象其它方式那样将文件转换成对象树,加载效率高,速度快;索引信息以整数形式保存,容易编程处理;索引信息长度固定,容易实现高效率检索。
[0010] 索引信息中的各项内容说明如下:
[0011] ●前驱节点:当前XML节点的前驱节点。如果当前节点是根节点,则前驱节点指向当前节点的起始位置;如果当前节点是第一个子节点,则前驱节点指向当前节点父节点的起始位置;其他节点的前驱节点指向上一个兄弟节点。
[0012] ●节点类型:定义XML节点的类型;
[0013] ●深度:XML节点在文档树中的深度;
[0014] ●节点长度:XML节点的长度;
[0015] ●预留单元:目前不使用,预留至将来使用;
[0016] ●偏移量:XML节点首字节在整个XML文档中的位置;
[0017] ●后继节点:当前XML节点的后继节点。如果当前节点是文件中最后一个节点,则后继节点指向该节点的起始位置;如果当前节点是叶子节点,则后继节点指向当前节点父节点的下一个兄弟节点;其他节点的后继节点指向下一个兄弟节点。
[0018] 索引信息的长度为固定长度128bit,表示前驱节点和后继节点的信息长度均为32bit,表示节点类型的信息长度为4bit,表示深度的信息长度为8bit,表示节点长度的信息长度为20bit,表示偏移量的信息长度为30bit,表示预留单元的信息长度为2bit。因此在对大型XML文件进行索引时,总索引信息所占用的内存空间与XML文件大小成线性关系,特别是当节点字节数多时,效率高。不会如DOM处理方式中,当文件体积增大时,所占用的内存空间成倍增长。
[0019] 本发明结合了传统的DOM和SAX解析XML文件的优点,通过改变XML节点元素的表示方法,使本发明的XML元素处理方法与传统方法相比有以下几方面的改进:
[0020] 1)处理XML文件的速度更快。由于不需要把XML文件中的各个元素当作对象来进行处理,在处理XML元素时操作的对象是字节数组中的数据,使得编程处理时速度比传统方式有成倍提高。
[0021] 2)解析XML文件时占用的存储空间小。用本发明方法处理的XML文件,所占用的内存空间只是文件本身加上额外的索引信息;与DOM将节点当作对象存储在内存的方式相比,所占用的存储空间大为减少。
[0022] 3)可以方便地对文件进行随机读写、访问。索引信息中的节点地址信息保证了在访问XML文件时,可以随时访问文件的任何一个节点,而且由于索引信息是以定长的整数形式保存的,所以访问速度很快。而传统的SAX技术在访问XML文件时由于缺少有效的索引信息,在随机访问文件时就会遇到困难。
[0023] 下面结合说明书附图和具体实施方式对本发明作进一步说明。

附图说明

[0024] 图1为本发明XML节点元素的索引信息格式。
[0025] 图2为本发明索引信息与XML文件的关系。

具体实施方式

[0026] 下面以一个具体的XML文件为例,来说明该文件节点元素的索引信息表示方法。
[0027]
[0028] George
[0029] John
[0030] Reminder
[0031] Don′t forget the meeting!
[0032]
[0033] 该XML文件在被读入内存的同时,根据图1定义的格式,生成如下形式的索引信息。其中每一个节点的前驱和后继节点的信息是前驱和后继节点在内存中的偏移量。
[0034]
[0035]
[0036] 在解析该XML文件时,通过偏移量和节点长度可以确定每一个节点。如偏移量为21个字节,节点长度为6的数据内容是“from”,通过节点类型0可知该节点是一个XML标记,通过节点深度1,可判断该节点是一个二级节点。“from”的前驱节点的偏移量在第10个字节处,后继节点在第27个字节处。根据前面解析“from”节点的方法,可以分别推导出第
10个字节和第27个字节处的XML元素。“from”节点的索引信息和XML文件的关系如图2所示。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈