[发明专利]依据RelaxNG标准生成文档解析器的方法无效

专利信息
申请号: 200910091471.7 申请日: 2009-08-21
公开(公告)号: CN101630326A 公开(公告)日: 2010-01-20
发明(设计)人: 胡斌 申请(专利权)人: 北京红旗贰仟软件技术有限公司
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 北京派特恩知识产权代理事务所(普通合伙) 代理人: 张颖玲;王黎延
地址: 100176北京市北京经济技术*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 依据 relaxng 标准 生成 文档 解析 方法
【说明书】:

技术领域

发明涉及文件解析技术,尤其涉及依据RelaxNG标准自动生成文档解析器的方法。

背景技术

RelaxNG(可简称为RNG)是一种XML模式语言,具有简洁、灵活、易学等特点。其正被越来越广泛地使用,例如ODF标准就使用了RelaxNG标准。

由于RelaxNG过于灵活,目前,还没有相应的解析器生成工具,故,在将使用RelaxNG定义的文件解析为某语言的文档时,程序员需要仔细阅读模式定义文件,然后依据定义撰写所需语言的相关数据类及解析函数。对于解析较复杂的模式文件时,工作量非常大且容易出错,还容易遗漏某些细节。并且,当要换用其他所需编程语言时还要重复这一过程,效率极低,开发成本也高。

故需要一种RelaxNG解析器生成方法,以解决针对不同编程语言需要重复编写解析器的问题。

发明内容

有鉴于此,本发明的主要目的在于提供一种RelaxNG标准生成文档解析器的方法,以实现可针对所需编程语言自动生成相应的文档解析器。

为达到上述目的,本发明提供的依据RelaxNG标准生成文档解析器的方法包括:

A、依据RelaxNG标准解析要处理的RelaxNG文件;

B、依据解析出的各个内容生成各个文档基础内容对象;

C、根据要使用的编程语言将各个文档基础内容对象生成文档解析文件。

可选的,步骤A所述解析为依据DOM方式进行解析;

所述步骤B为依据解析出的DOM树各个节点生成包含对应的各个RelaxNG节点的RNGDocument对象。

其中,所述步骤B包括子步骤:

B1、创建RNGDocument对象;

B2、从解析出的DOM树的根节点开始,以递归方式遍历DOM树并生成对应的RelaxNG节点;

B3、将所生成的RelaxNG节点放到所创建的RNGDocument对象中。

其中,所述步骤B2包括子步骤:

B21:取得DOM树根节点并为其生成节点对象GrammarNode;

B22:依次对其下每一个子节点调用内容文法解析ParseGrammarContent处理过程,依次生成各个子节点;

B23:将生成的所有节点做为子节点放入GrammarNode中作为结果返回。

其中,所述步骤B22包括子步骤:

B221:获得输入的子节点,并判断所获得的子节点的名称,根据下述子节点的名称执行相应的处理过程:

判断节点名称为start时,创建起始节点StartNode;

判断节点名称为define时,创建定义节点DefineNode;

判断节点名称为div时,创建块节点divNode;及

判断节点名称均非上述名称时,创建包含节点includeNode;

B222:按照上述步骤依次处理每个子节点,并将依次创建的节点作为结果返回。

其中,所述创建StartNode节点包括子步骤:

对输入的节点创建StartNode节点;

调用模式解析parse_pattern处理过程生成子节点并返回。

其中,所述创建DefineNode节点包括子步骤:

对输入的节点创建DefineNode节点;读取自定义元属性将其设置到DefineNode节点中,并将DefmeNode节点添加到RNGDocument中;

对输入节点的每一个子节点调用parse_pattern处理过程,将生成的所有节点放入DefineNode节点中;并将DefineNode节点作为结果返回。

其中,所述parse_pattern处理过程包括步骤:

确定所输入的节点所符合的节点名称;

根据相应的节点名称创建相应的节点;

如上依次处理各个节点及子节点,并将生成的节点作为结果返回。

其中,所定义的节点名称包括至少以下之一:

元素element、属性attribute、组group、顺序无关项interleave、选择choice、可选optional、无或多zeroOrMore、一或多oneOrMore、列表list、混合mixed、引用ref、模式参考patternRef、空empty、文本text、值value、数据data、禁止notAllowed、外部引用externalRef。

其中,所述步骤C包括子步骤:

C1:获得RNGDocument对象;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京红旗贰仟软件技术有限公司,未经北京红旗贰仟软件技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/200910091471.7/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top