[发明专利]基于回溯自动机语法分析的JSAX解析器和解析方法有效
申请号: | 201210118808.0 | 申请日: | 2012-04-20 |
公开(公告)号: | CN102708155A | 公开(公告)日: | 2012-10-03 |
发明(设计)人: | 段振华;张柯柯;王小兵;田聪 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 陕西电子工业专利中心 61205 | 代理人: | 程晓霞;王品华 |
地址: | 710071*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 回溯 自动机 语法分析 jsax 解析 方法 | ||
技术领域
本发明属于Web技术领域,主要涉及可扩展标记语言XML(eXtensible Markup Language)文档的解析技术,尤其涉及基于简单应用程序接口SAX(Simple API for XML)的XML文档解析技术,具体是一种基于回溯自动机语法分析的JSAX解析器和解析方法,可应用于对XML文档的解析。
背景技术
近几年来,XML以其应用简单、使用灵活的优势,被广泛应用于Web环境下的数据传输与交换、数据集成、文档存储等领域中,最典型的就是Web服务Web Service,Web Service中的SOAP协议及WSDL都是基于XML的,此外,XML在数学、化学、物理等诸多领域中也有很多应用,如化学领域中用于描述分子信息的化学标记语言CML。XML文档解析器在现阶段Web应用技术中对通用数据交换与处理起着关键性的作用。随着基于XML的应用越来越广泛,各类工业应用和科学研究对XML文档解析器的性能也提出了越来越高的要求,一个高性能的XML解析器对于提高解析XML文档的速度和系统吞吐量至关重要。
目前针对各类不同需求,陆续出现了文档对象模型DOM、SAX等解析接口标准。
SAX接口是一种基于事件的解析API(应用程序接口),SAX解析器采用了基于事件的模型,它在解析XML文档时可以触发一系列的事件供用户处理,常用的事件类型有:startDocument,表示文档的开始;endDocument,表示文档的结束;startElement,表示标记的开始;endElement,表示标记的结束;characters,表示文本内容事件;ignoreWhitespace,表示空白事件。处理完的事件会从内存中删除,并释放掉它所占有的资源,因为它的性能优势和简单易用,已被开发者和用户广为使用。
当SAX解析器在解析XML文档时,需要对XML文档进行词法分析和语法分析。最为通用的进行词法分析的模型是有限自动机FA,根据XML规范可知,构成XML的记号是用正规文法来描述的,FA可以识别用正规文法描述的记号,由于FA易于构造、分析效率高的优点,所以FA被广泛应用于词法分析器的设计。进行语法分析的方法则有多种选择,Van Engelen曾采用递归下降分析recursive descent parsers对XML文档进行语法分析,但是由于递归实现的过程需要维护系统堆栈,空间上消耗较大,而且递归也带来了大量的函数调用,导致了额外的时间开销,所以递归下降分析效率不高。另外一种通用的进行语法分析的工具是下推自动机PDA,下推自动机的识别能力比有限自动机强,但是下推自动机构造起来比较复杂,在进行语法分析时的每一步动作都要根据当前状态、当前输入和下推栈中的内容来确定改变格局的动作,改变下推栈和剩余输入的状态从而进入到下一格局,导致分析效率不高。
因此,提高XML解析器的语法分析器的效率势在必行,一个高性能的XML解析器对于提高解析XML文档的速度会有很大的提高,可以有效提高系统的响应速度和吞吐量。
本发明项目对国内外专利文献和公开发表的期刊论文检索,尚未发现与本发明密切相关和一样的报道或文献。
发明内容
本发明主要针对XML解析器的语法分析器效率低下难于实现等问题,通过对回溯自动机进行改进,提供一种新的高效率、能够识别具有嵌套结构的标记匹配串语言并易于实现的基于回溯自动机语法分析JSAX解析器和解析方法。本发明可应用于对XML文档的解析。
下面对本发明进行详细说明。
本发明是一种基于SAX接口的XML解析器和解析方法,本发明目前不支持对带有名字空间的XML文档的解析,本发明属于标准XML解析器。
本发明是一种基于回溯自动机语法分析的JSAX解析器,包括词法分析器,语法分析器,和事件处理器,词法分析器负责读取XML文档的内容,将读取的记号输出给语法分析器,语法分析器根据XML规范要求识别输入记号流中的语言结构,将相应的事件信息传递给事件处理器,事件处理器接受解析器报告的所有事件,并处理所发现的数据,实现对XML文档的解析,其中语法分析器是基于自动机构造的,自动机中的回溯自动机的结构为五元组,结构为M=(S,∑,δ,q0,F),还包含有一个状态栈用来保存运行的部分历史,其特征在于:所述语法分析器是基于回溯自动机来实现的,所述回溯自动机是改进回溯自动机,具体是对回溯自动机的动作转移规则δ重新定义,该定义为规则性定义,包括:
(1)若δ(q,a)=p,即在状态q下,当读入记号a时,将当前状态q压入栈顶,其中a代表需要进行入栈动作的记号;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210118808.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:发光拉链
- 下一篇:产生图像传感器的列偏移校正