【技术实现步骤摘要】
【国外来华专利技术】
本专利技术一般涉及因特网技术。本专利技术尤其涉及用于XML(可扩展标记语言)分析的系统和方法。
技术介绍
扩展的无线PC(个人计算机)、数字家庭和数字办公室的首创全部基于使用XML(可扩展标记语言)的标准协议。常规XML分析器很复杂且非常不适合嵌入式装置。由于XML分析的复杂性和开销,许多装置供应商很难将这些标准协议实现入它们的装置。例如,当前的XML分析器可分成两类DOM(文档对象模型)和SAX(用于XML的简单API(应用编程接口))。DOM分析器通过分析XML串并返回XML元素的集合进行操作。每个元素都包含关于XML文档内特殊元素的信息。为使其可能,所有信息必须被复制入返回的结构中。这导致相当多的存储器开销。SAX分析器的设计更简单。它们是无状态前向分析器。即,使用分析器的应用程序必须包含维护状态的逻辑且被传递到该应用程序的任何数据都必须被复制入应用程序的存储器缓冲器。尽管SAX分析器的设计比DOM分析器更简单,但SAX分析器仍需要大量的存储器开销。因此,需要一种不需要大量存储器开销的用于分析XML的系统和方法。还需要一种设计简单但需要小占用(footprint)的用于分析XML的系统和方法。进一步需要一种简单并需要较少开销的用于分析XML的系统和方法,从而使设备供应商能将XML分析加入它们的设备中。附图说明这里结合附图构成说明书的一部分,附图示出了本专利技术的实施例并与描述部分一起进一步用于说明本专利技术的原理并使相关领域的熟练技术人员实施和使用本专利技术。附图中,相同的标号一般表示相同的、功能相似的和/或结构相似的元件。首先出现元件的附图由相 ...
【技术保护点】
一种用于分开标记语言语句的方法,包括:将输入串转换为链接列表节点结构;验证所述输入串语法;从包括属性的所述链接列表节点结构中建立链接列表属性结构;从包括数据的链接列表节点结构中获得数据段;以及释放所述 链接列表节点结构和属性结构。
【技术特征摘要】
【国外来华专利技术】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[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。