当前位置: 首页 > 专利查询>英特尔公司专利>正文

有效的小占用XML分析制造技术

技术编号:2846196 阅读:131 留言:0更新日期:2012-04-11 18:40
一种用于分析XML串的系统和方法。根据该方法,将输入串变换为链接列表节点结构。验证输入串的语法。使用包括属性的链接列表节点结构,建立链接列表属性结构。使用来自链接列表节点结构的保留指针,获得输入串内的数据段。释放链接列表节点结构和属性结构。释放链接列表节点结构和属性结构删除了链接列表节点和属性结构同时维持链接列表节点和属性结构内限定的指向输入串的指针,这些指针定义了输入串内包含的多个元素中的每一个内的数据和属性。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术一般涉及因特网技术。本专利技术尤其涉及用于XML(可扩展标记语言)分析的系统和方法。
技术介绍
扩展的无线PC(个人计算机)、数字家庭和数字办公室的首创全部基于使用XML(可扩展标记语言)的标准协议。常规XML分析器很复杂且非常不适合嵌入式装置。由于XML分析的复杂性和开销,许多装置供应商很难将这些标准协议实现入它们的装置。例如,当前的XML分析器可分成两类DOM(文档对象模型)和SAX(用于XML的简单API(应用编程接口))。DOM分析器通过分析XML串并返回XML元素的集合进行操作。每个元素都包含关于XML文档内特殊元素的信息。为使其可能,所有信息必须被复制入返回的结构中。这导致相当多的存储器开销。SAX分析器的设计更简单。它们是无状态前向分析器。即,使用分析器的应用程序必须包含维护状态的逻辑且被传递到该应用程序的任何数据都必须被复制入应用程序的存储器缓冲器。尽管SAX分析器的设计比DOM分析器更简单,但SAX分析器仍需要大量的存储器开销。因此,需要一种不需要大量存储器开销的用于分析XML的系统和方法。还需要一种设计简单但需要小占用(footprint)的用于分析XML的系统和方法。进一步需要一种简单并需要较少开销的用于分析XML的系统和方法,从而使设备供应商能将XML分析加入它们的设备中。附图说明这里结合附图构成说明书的一部分,附图示出了本专利技术的实施例并与描述部分一起进一步用于说明本专利技术的原理并使相关领域的熟练技术人员实施和使用本专利技术。附图中,相同的标号一般表示相同的、功能相似的和/或结构相似的元件。首先出现元件的附图由相应标号中的最左面的数字指出。图1是示出根据本专利技术实施例的用于分析XML串的示例系统的框图。图2A是描述根据本专利技术实施例的用于分析XML串的示例方法的流程图。图2B示出了根据本专利技术实施例的示例性链接列表节点结构。图2C示出了根据本专利技术实施例的示例性链接列表属性结构。图3A示出了示例性XML串。图3B是描述根据本专利技术实施例的用于权标化源XML的方法的示例性流程图。图3C和3D是描述根据本专利技术实施例的用于生成链接列表节点结构的示例性方法的流程图。图3E示出了根据本专利技术实施例的用于图3A所示的示例性XML串的示例性链接列表节点结构。图4是描述根据本专利技术实施例的用于确定XML串是否有效的示例性方法的流程图。图5A和5B是描述根据本专利技术实施例的用于从链接列表节点结构中建立属性结构的链接列表的示例性方法的流程图。图5C示出了根据本专利技术实施例的用于图3A中的示例性XML串的示例性链接列表属性结构。图6A是描述根据本专利技术实施例的从开始和关闭链接列表节点结构中获得数据的示例性方法的流程图。图6B示出了根据本专利技术实施例的从图3A中的示例性XML串提取的数据。具体实施例方式虽然这里参考用于特殊应用的说明性实施例描述了本专利技术,但应理解,本专利技术不限于此。接触这里提供的教示的相关
中的熟练技术人员将理解其范围以及本专利技术实施例明显有用的其它领域内的附加修改、应用和实施例。说明书中对本专利技术的“一个实施例”、“一实施例”或“另一实施例”的引用意味着联系该实施例描述的特殊特点、结构或特征包含在本专利技术的至少一个实施例中。因此,贯穿说明书各处出现的短语“在一个实施例中”或“在一实施例中”不必都指同一实施例。本专利技术的实施例针对不需要大量存储器开销的用于分析XML的系统和方法。本专利技术通过使用零存储器复制实现这点,从而形成具有较小占用的非常有效的分析器。尽管相对于XML描述了本专利技术的实施例,也可应用其它类型的标记语言。图1是示出用于分析XML的系统100的示例性框图。系统100包括零复制串分析器模块102和分析器逻辑模块104。零复制串分析器模块102与分析器逻辑模块104耦合。零复制串分析器模块102负责分析XML串而不复制任何数据。零复制串分析器模块102是单程分析器,因此从应用程序接收的输入串是只读一次的。如图1所示,分析器逻辑模块104构建于零复制串分析器模块102之上。分析器逻辑模块104包含分析XML实体所需的逻辑。因此,分析器逻辑模块104与零复制串分析器模块102交互以分析XML串而不必将XML串复制入存储器。零复制串分析器模块102从一应用程序接收要分析的输入串以及该输入串的长度。分析逻辑模块104向零复制串分析器模块102提供定界符以便分析,从而使得零复制串分析器模块102能权标化该串。每个权标将一索引包括到源XML串(即,输入串)中,该索引表示其值和描述该值长度的属性,以及描述值长度的属性。一旦该串已被权标化,使用权标构建链接列表节点结构并使用链接列表节点结构构建链接列表属性结构。该节点和属性结构包含指向源XML串的指针。从存储器中释放链接列表节点和属性结构同时保持与源XML串相关联的指针。在删除结构的同时保持这些指针避免了必须复制XML串,从而最小化存储器开销。在权标化该串后,零复制串分析器模块12将把每个权标发送给分析逻辑模块104以建立链接列表节点结构。在接收到这些权标时,分析逻辑模块104一次一个地将权标连同权标长度和定界符一起返回给零复制串分析器模块102。零复制串分析器模块102随后将使用定界符分析该权标以获得用于链接列表节点结构的指针。该过程持续到已正确地分析了所有权标。一旦建立了链接列表节点结构,将该链接列表节点结构用于建立链接列表属性结构以向XML串中包含的属性提供指针。也可以使用来自链接列表节点结构的指针提取XML串内的数据。至少五个定界符被用于分析一XML串。定界符包括,但不限于,开括号“<”、空格“ ”、冒号“”、等于号“=”以及闭括号“>”。逻辑分析器模块104分析权标并向零复制串分析器102提供合适的定界符以分析每个权标。现在将参考图2A描述分析XML串的过程。图2A是描述根据本专利技术实施例的用于分析XML串的示例性方法的流程图200。本专利技术不限于这里参考流程图200描述的实施例。相反,相关领域的熟练技术人员在阅读这里的教示后显见的是其它功能流程图也在本专利技术的范围内。该过程开始于框202,其中过程立刻进行到框204。框204中,从应用程序输入零复制串分析器模块102的XML串被转换成节点结构的链接列表。XML串中的每个元素都被转换成两个节点结构;用于开始标签的一个节点结构和用于结束标签的一个节点结构。图2B示出了根据本专利技术实施例的示例性节点结构220。节点结构220包括名称字段222、名称长度字段224、名称空间字段226、名称空间长度字段228、开始标签字段230、空标签字段232、保留字段234、下一个字段236、父字段238、对等字段240和闭标签字段242。名称字段222表示元素标签的名称。名称长度字段224表示元素标签名称的长度。名称空间字段226表示与元素标签相关联的任何前缀的名称。名称空间长度字段228表示与元素标签相关联的任何前缀的长度。开始标签字段230表示一标记,它在被设定时指定该元素标签是开始标签。当开始标签字段230被清除时,该标签是关闭标签。空标签字段232表示一标记,它在被设定时指示元素标签是空标签。空标签是自身备用的标签。换句话说,空标签不包含任何内容。空标签用短斜线和闭括号(即“/>”)结束,代替闭括号(即“>”)本文档来自技高网
...

【技术保护点】
一种用于分开标记语言语句的方法,包括:将输入串转换为链接列表节点结构;验证所述输入串语法;从包括属性的所述链接列表节点结构中建立链接列表属性结构;从包括数据的链接列表节点结构中获得数据段;以及释放所述 链接列表节点结构和属性结构。

【技术特征摘要】
【国外来华专利技术】US 2003-12-18 10/741,2991.一种用于分开标记语言语句的方法,包括将输入串转换为链接列表节点结构;验证所述输入串语法;从包括属性的所述链接列表节点结构中建立链接列表属性结构;从包括数据的链接列表节点结构中获得数据段;以及释放所述链接列表节点结构和属性结构。2.如权利要求1所述的方法,其特征在于,释放所述链接列表节点结构和属性结构删除了链接列表节点和属性结构,同时维持所述链接列表节点和属性结构内定义的指向输入串的指针,所述指针确定了在所述输入串内包含的多个元素中的每一个内的数据和属性。3.如权利要求2所述的方法,其特征在于,所述链接列表节点结构内的指针包括指向标签名称、名称空间、保留位置、下一标签、父元素、对等元素和闭标签的一个或多个指针。4.如权利要求2所述的方法,其特征在于,所述链接列表属性结构内的指针包括指向属性名称、属性值、前缀名称和下一属性的一个或多个指针。5.如权利要求3所述的方法,其特征在于,指向所述保留位置的指针包括指向用于开始标签的下一闭括号的指针以及指向用于闭标签的开括号的指针。6.如权利要求1所述的方法,其特征在于,将输入串转换为链接列表节点结构包括接收输入串和作为定界符的开括号字符;根据所述开括号定界符分析所述输入串;返回权标的链接列表,其中分析链接列表中的每个权标以提供一个链接列表节点结构。7.如权利要求6所述的方法,其特征在于,分析链接列表中的每个权标以提供一个链接列表节点结构包括确定所述权标是否以短斜线(“/”)开始;如果所述权标不以短斜线开始,则设定链接列表节点结构中的开始标签字段,以及如果所述权标以短斜线开始,则清除所述开始标签字段;如果在权标中找到空格字符,则根据作为定界符的空格字符分析所述权标以将权标分成第一部分和第二部分;如果在权标内找到空格字符,在链接列表节点结构中设定名称空间指针,指向用于名称空间的权标的第一部分中的第一字符,名称空间的长度从权标的第一部分中的第一字符跨到权标的第一部分中冒号前的字符;设定链接列表节点结构中的标签名称指针,指向用于标签名称的权标的第一部分中的冒号右边的字符,标签名称的长度从冒号右边的字符跨到权标的第一部分的最后一个字符;如果未在权标内找到空格字符,在链接列表节点结构中设定标签名称指针,指向权标中的字符,标签名称的长度就是权标的长度;设定链接列表节点结构中的名称空间指针作为一空指针,名称空间的长度为零;以及设定链接列表节点结构中的下一字段指针,以指向下一权标的开始。8.如权利要求7所述的方法,其特征在于,还包括如果权标是开始标签,则在链接列表节点结构中设定保留指针以指向权标末端处的闭括号,以及如果权标是闭标签,则设定保留指针以指向权标开始处的开括号。9.如权利要求7所述的方法,其特征在于,还包括确定权标的第二部分的第一字符是否以短斜线开始;如果所述权标的第二部分以短斜线开始,则设定链接列表节点结构中的空标签字段;以及如果所述权标的第二部分未以短斜线开始,则清除链接列表节点结构中的空标签字段。10.如权利要求1所述的方法,其特征在于,验证输入串语法包括初始化一堆栈;接收用于输入串的链接列表节点结构;确定所述链接列表节点结构是否表示开始标签和闭标签之一;如果链接列表节点结构表示一当前的开始标签,如果所述堆栈不空,则用指向堆栈顶部处的开始标签的指针填充链接列表节点结构中的父字段;以及将所述当前开始标签置于堆栈上;如果链接列表节点结构表示一当前的闭标签,出栈堆栈顶部处的开始标签;用指向当前闭标签的下一字段指针的指针填充所述链接列表节点结构中的对等字段;确定所述当前闭标签是否匹配出栈的开始标签;如果当前闭标签不匹配出栈的开始标签,则将输入串表示成无效;以及如果当前闭标签匹配出栈的开始标签,则将所述输入串表示成有效并用当前的闭标签填充链接列表节点结构的闭标签;以及如果输入串有效且如果链接列表节点结构不是用于输入串的最后的链接列表节点结构,则利用来自输入串的下一链接列表节点结构重复以上过程,堆栈的初始化除外。11.如权利要求1所述的方法,其特征在于,从包括属性的链接列表节点结构中建立链接列表属性结构包括接收用于开始标签的链接列表节点结构;使用链接列表节点结构中的保留指针,递减保留指针的位置,直到在输入串中找到开括号字符,其中开括号字符与保留指针之间的所有字符表示一属性串;利用作为定界符的空格字符分析所述属性串以提供属性串的第一部分和属性串的第二部分;放弃属性串的第一部分;利用作为定界符的等号来分析属性串的第二部分;在链接列表属性结构中设定属性值指针,指向属性串的第二部分的等号字符后的第一字符,属性值长度从属性串的第二部分的第一字符跨到属性串的第二部分的末端;利用作为定界符的冒号分析属性串的第一部分;如果在属性串的第一部分中找到冒号字符,设定链接列表属性结构中的前缀名称指针指向属性串的第一部分中的第一字符,前缀名称长度从属性串的第一部分中的第一字符跨到属性串的第一部分中冒号前的字符;设定链接列表属性结构中的属性名称指针指向属性串的第一部分中的冒号后的第一字符,属性名称长度从属性串的第一部分中的冒号后的第一字符跨到属性串的第一部分的最后一个字符;如果未在属性串的第一部分中找到冒号字符,在链接列表属性结构中设定前缀名称指针作为空指针,其中前缀名称的长度为零;在链接列表属性结构中设定属性名称指针作为属性串的第一部分的第一字符,属性名称的长度就是属性串的第一部分的长度;以及在链接列表属性结构中设定下一属性字段以指向输入串中的下一属性。12.如权利要求1所述的方法,其特征在于,从包括数据的链接列表节点结构中获得数据段包括接收用于相应开始和闭标签的链接列表节点结构;以及使用用于开始和闭标签的链接列表节点结构的保留指针以确定所述数据段,其中所述数据段包括开始标签的保留指针和闭标签的保留指针之间的数据。13.如权利要求1所述的方法,其特征在于,所述输入串包括XML(可扩展标记语言)输入串。14.一种制品,包括具有多个机器可访问指令的存储媒介,其中当这些指令由处理器执行时,这些指令用于将输入串转换为链接列表节点结构;验证所述输入串语法;从包括属性的链接列表节点结构中建立链接列表属性结构;从包括数据的链接列表节点结构中获得数据段;以及释放所述链接列表节点结构和属性结构。15.如权利要求14所述的制品,其特征在于,释放所述链接列表节点结构和属性结构删除了链接列表节点和属性结构,同时维持所述链接列表节点和属性结构内定义的指向输入串的指针,所述指针确定了所述输入串内包含的多个元素中的每一个内的数据和属性。16.如权利要求15所述的制品,其特征在于,...

【专利技术属性】
技术研发人员:B罗伊Y圣希莱尔N基迪
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

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

1