用于二进制XML数据的生成及其节点定位的方法和装置制造方法及图纸

技术编号:7718661 阅读:369 留言:0更新日期:2012-08-30 02:48
本发明专利技术涉及可扩展标记语言(XML)数据处理技术领域。更具体地,本发明专利技术涉及对二进制XML数据的生成及查询进行改进的技术。本发明专利技术提供了一种用于生成二进制XML数据的方法,包括:获取XML数据源;针对该XML数据源中的元素节点,生成该元素节点的首子距FCD标识和邻弟距NSD标识;以及利用所述FCD标识和NSD标识,生成该XML数据源的二进制XML数据,所述二进制XML数据中包含所述FCD标识和NSD标识。同时,本发明专利技术还提供了一种用于定位二进制XML数据中的节点的方法,所述二进制XML数据中包含首子距FCD标识和邻弟距NSD标识,包括:接收查询二进制XML数据中的节点的请求;获取该请求的查询路径;以及利用该查询路径以及所述FCD标识和NSD标识,定位被查询的节点。

【技术实现步骤摘要】

本专利技术涉及可扩展标记语言(XML)数据处理
更具体地,本专利技术涉及对ニ进制XML数据的生成及查询进行改进的技木。
技术介绍
XML是ー种良好的数据描述语言,具有強大的数据描述能力,同时具备自描述的特征,使得人和机器都能阅读XML数据源。XML技木本身的特征及其相关技术的标准化,使得XML在Web技术等领域具有极其广泛的应用,XML是不同的系统之间数据交换的通用格式,以XML为接ロ的自动化系统具有良好的交互性。但是,XML技术本身很复杂,处理XML将给系统増加相当的工作负荷,XML的冗余也増加了系统之间的网络开销。因此,人们在使用XML作为传输数据的格式吋,为了减低数据冗余,提高带宽利用率,想到了 XML压缩技术,但这却进一步增加了本机的运算负荷。如何在提高XML的网络传输效率的同吋,减轻单机XML的运算压力,变成了人们探究的课题。ニ进制XML,也就是Binary XML正是在此背景下应运而生,解决了资源受限的运算系统使用XML的重要难题。Binary XML是XML数据紧凑的ニ进制表示形式,显著地降低了 XML数据的冗余性,使得XML数据的解析也变得容易很多,减轻了处理XML数据的系统的运算工作,降低了 XML数据传输时所占的带宽。Binary XML首先由无线应用领域提出并使用,先后有ー些不同的规范出现,包括 Wbxml (WAP Binary XML)、Fast Infoset (X. 891)和 EXI (EfficientXML Interchange)等。除了资源受限因素,许多要求高性能的系统,如数据库,也开始采用Binary XML来传输XML数据,完成XML数据的处理。虽然Binary XML显著地降低了 XML数据的冗余性,但其应用中存在的一个问题是在处理针对Binary XML的查询请求以定位其中的节点(或元素)时,需要逐个遍历Binary XML数据源中的姆个节点(包括元素节点和非元素节点),这在XML数据源本身节点数量庞大、树型关系复杂的情况下会导致定位节点的效率大大降低,并导致相应查询请求的时间延长。
技术实现思路
考虑到上述存在的问题,本专利技术的目的之ー在于提供一种能够在定位(查询)Binary XML数据源中的节点时避免逐个遍历Binary XML数据源中的姆个节点的方法,以提高定位节点的效率。本专利技术的又一目的在于提供ー种生成能够支持快速定位节点的BinaryXML数据源的方法。根据本专利技术的ー个方面,提供了一种用于生成ニ进制XML数据的方法,包括获取XML数据源;针对该XML数据源中的元素节点,生成该元素节点的首子距FCD标识和邻弟距 NSD标识;以及利用所述FCD标识和NSD标识,生成该XML数据源的ニ进制XML数据,所述ニ进制XML数据中包含所述F⑶标识和NSD标识。根据本专利技术的一个实施例,元素节点的FCD标识表示该元素节点的结束端至其第一个子节点的起始端的距离,并且如果该元素节点为叶子节点,则FCD标识为零,以及该元素节点的NSD标识表示该节点的结束端至其下ー个兄弟节点的起始端的距离。根据本专利技术的另一方面,提供了一种用于定位ニ进制XML数据中的节点的方法,所述ニ进制XML数据中包含首子距FCD标识和邻弟距NSD标识,包括接收查询ニ进制XML数据中的节点的请求;获取该请求的查询路径;以及利用该查询路径以及所述FCD标识和NSD标识,定位被查询的节点。通过本专利技术的方法和系统,可以实现在定位ニ进制XML数据过程中对不必要的节点进行跳转,从而节约了节点定位的时间、避免了扫描或读取不必要的节点,提高了节点查询和节点定位的效率。附图说明 通过对结合附图所示出的实施方式进行详细说明,本专利技术的上述以及其他特征将更加明显,本专利技术附图中相同的标号表示相同或相似的部件。在附图中,图I示出了根据本专利技术一个实施例的用于生成ニ进制XML数据的方法的流程图;图2示出了根据本专利技术一实施例的用于生成TOD标识和NSD标识的流程图;图3示出了根据本专利技术一个实施例的用于定位ニ进制XML数据中的节点的方法的流程图;图4A示出了基于不包含TOD和NSD标识的IBM Binary XML进行节点查询的示意图;图4B示出了基于包含TOD和NSD标识的IBM Binary XML进行节点查询的示意图;图5示出了根据本专利技术的又一实施例的用于定位ニ进制XML数据中的节点的方法的流程图;图6示出了根据本专利技术一个实施例的用于生成ニ进制XML数据的系统的框图;图7示出了根据本专利技术又一实施例的用于定位ニ进制XML数据中的节点的系统的框图;图8A示出了基于不包含TOD和NSD标识的WBXML数据进行节点查询的示意图;图8B示出了基于包含TOD和NSD标识的WBXML数据进行节点查询的示意图;图9A示出了基于不包含TOD和NSD标识的MS-BINXML数据进行节点查询的示意图;以及图9B示出了基于包含TOD和NSD标识的MS-BINXML数据进行节点查询的示意图。具体实施例方式在下文中,将參考附图通过实施方式对本专利技术提供的用于确定要被物化的节点的方法和系统进行详细地描述。图I示出了根据本专利技术一个实施例的用于生成ニ进制XML数据的方法的流程图。图I所示的方法从步骤101开始。在步骤101中,获取XML数据源。这里,所获取的“XML数据源”是指未经紧凑化处理的,以树型结构存在的可扩展标记语言XML数据源。XML数据源可以是以任意形式存在的、表达XML语义的信息,包括但不限于XML文档、XML信息流、SAX事件流、层次性或树状的存储结构等。其中,“树型结构”是XML数据源的ー个重要特征,其含义是指XML数据源表示了具有分层结构的多个元素节点间的层级关系,最顶端的元素节点称为“根节点”,最底端的元素节点称为“叶子节点”。“根节点”没有父节点,也没有兄弟节点,但是可能拥有“子节点”。“叶子节点”没有子节点,也是可能拥有“父节点”或“兄弟节点”。一个节点与其“父节点”或“子节点”之间存在类似于上级和下级的关系,而ー个节点与其“兄弟节点”之间则处于同一层级。需要指出的是,“元素节点”与“节点”在含义上有所区别,本专利技术中所指的“节点”可能包括元素节点、文本节点、属性节点等多种节点。而“元素节点”则专指由XML数据源中的元素所构成的节点。然而,如果本专利技术中提到“根节点”、“父节点”、“子节点”、“兄弟节点”或“叶子节点”,则它们分别为“根元素节点”、“父元素节点”、“子元素节点”、“兄弟元素节点”或“叶子元素节点”的简称。接下来图I所示的方法进行至步骤102。在步骤102中,针对该XML数据源中的元素节点,生成该元素节点的首子距FO) (First Child Distance)标识和邻弟距NSD (NextSibling Distance)标识。根据本专利技术的一个实施方式,该元素节点的F⑶标识表示该F⑶标识的结束端至该元素节点的第一个子节点的起始端的距离,并且如果该元素节点为叶子节点,则FCD标识为零,以及该元素节点的NSD标识表示该NSD标识的结束端至该元素节点的下ー个兄弟节点的起始端的距离。这样定义的依据是因为XML本质上就是树形关系的一种表达,所以元素a中可以嵌套元素b,所以元素a结束时,元素b肯定已经先结束,也就是说a(外层本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于生成二进制XML数据的方法,包括 获取XML数据源; 针对该XML数据源中的元素节点,生成该元素节点的首子距FCD标识和邻弟距NSD标识; 利用所述FCD标识和NSD标识,生成该XML数据源的二进制XML数据,所述二进制XML数据中包含所述F⑶标识和NSD标识。2.如权利要求I所述的方法,其中该元素节点的FCD标识表示该FCD标识的结束端至其该元素节点的第一个子节点的起始端的距离,并且如果该元素节点为叶子节点,则FCD标识为零,以及该元素节点的NSD标识表示该NSD标识的结束端至该元素节点的下一个兄弟节点的起始端的距离。3.如权利要求2所述的方法,如果该元素节点没有兄弟节点,则该元素节点的NSD标识表示该NSD标识的结束端至该元素节点的父节点的结束端的距离,如果该元素节点既没有兄弟节点也没有父节点,则该元素节点的NSD标识为零。4.如权利要求I或2所述的方法,其中针对该XML数据源中的元素节点,生成该元素节点的首子距F⑶标识和邻弟距NSD标识包括 将FCD标识和NSD标识初始化为零; 对于非叶子节点,当开始处理其第一个子节点时,计算FCD并更新FCD标识; 对于非根节点,当开始处理其下一个兄弟节点时,计算NSD并更新NSD标识。5.一种用于定位二进制XML数据中的节点的方法,所述二进制XML数据中包含首子距F⑶标识和邻弟距NSD标识,所述方法包括 接收查询二进制XML数据中的节点的请求; 获取该请求的查询路径; 利用该查询路径以及所述FCD标识和NSD标识,定位被查询的节点。6.如权利要求5所述的方法,其中利用该查询路径以及所述二进制XML数据中所包含的首子距FCD标识和邻弟距NSD标识,定位被查询的节点包括 利用所述二进制XML数据中元素节点的FCD标识跳转至该元素节点的第一个子节点;以及 利用所述二进制XML数据中元素节点的NSD标识跳转至该元素节点的下一个兄弟节点。7.如权利要求5或6所述的方法,其中利用该查询路径以及所述二进制XML数据中所包含的首子距FCD标识和邻弟距NSD标识,定位被查询的节点包括 (a)定位二进制XML数据中的第一个元素节点; (b)判断该第一个节点的名称与查询路径中的第一个元素节点的名称是否一致; (c)如果判断结果为是,则利用该二进制文档中的第一个元素节点的FCD标识跳转至其第一个子节点; (d)判断该第一个子节点的名称与查询路径中的第二个节点的名称是否一致;以及 (e)如果判断结果为否,则利用该第一个子节点的NSD标识跳转至该第一个子节点的下一个兄弟节点。8.如权利要求7所述的方法,进一步包括如果步骤(d)的判断结果为是,则进一步判断查询路径中的节点是否已遍历完毕,如果判断结果为否,则对该第一个子节点重复执行步骤(C)至(e),如果判断结果为是,则确定已完成对要查询的节点的定位。9.如权利要求7或8所述的方法,进一步包括 (f)判断该下一个兄弟节点的名称是否与查询路径中的第二个节点的名称一致; (g)如果判断结果为否,则对该下一个兄弟节点重复执行步骤(e)至(f);以及 (h)如果步骤(f)中的判断结果为是,则进一步判断查询路径中的节点是否已遍历完毕,如果判断结果为否,则对该下一个兄弟节点重复执行步骤(C)至(g),如果判断结果为是,则确定已完成对要查询的节点的定位。10.如权利要求5-9任一所述的方法,其中该节点的FCD标识表示该FCD标识的结束端至该节点的第一个子节点的起始端的距离,并且如果该节点为叶子节点,则FCD标识为零,以及该节点的NSD标识表示该NSD标识的结束端至该节点的下一个兄弟节点的起始端的...

【专利技术属性】
技术研发人员:刘长生高小明P·哈格B·V·D·林登
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1