[发明专利]依据RelaxNG标准生成文档解析器的方法无效
申请号: | 200910091471.7 | 申请日: | 2009-08-21 |
公开(公告)号: | CN101630326A | 公开(公告)日: | 2010-01-20 |
发明(设计)人: | 胡斌 | 申请(专利权)人: | 北京红旗贰仟软件技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京派特恩知识产权代理事务所(普通合伙) | 代理人: | 张颖玲;王黎延 |
地址: | 100176北京市北京经济技术*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 依据 relaxng 标准 生成 文档 解析 方法 | ||
1、一种依据RelaxNG标准生成文档解析器的方法,其特征在于,包括:
A、依据RelaxNG标准解析要处理的RelaxNG文件;
B、依据解析出的各个内容生成各个文档基础内容对象;
C、根据要使用的编程语言将各个文档基础内容对象生成文档解析文件。
2、根据权利要求1所述的方法,其特征在于,步骤A所述解析为依据DOM方式进行解析;
所述步骤B为依据解析出的DOM树各个节点生成包含对应的各个RelaxNG节点的RNGDocument对象。
3、根据权利要求2所述的方法,其特征在于,所述步骤B包括子步骤:
B1、创建RNGDocument对象;
B2、从解析出的DOM树的根节点开始,以递归方式遍历DOM树并生成对应的RelaxNG节点;
B3、将所生成的RelaxNG节点放到所创建的RNGDocument对象中。
4、根据权利要求3所述的方法,其特征在于,所述步骤B2还包括:
B21:取得DOM树根节点并为其生成节点对象GrammarNode;
B22:依次对其下每一个子节点调用内容文法解析ParseGrammarContent处理过程,依次生成各个子节点;
B23:将生成的所有节点做为子节点放入GrammarNode中作为结果返回。
5、根据权利要求4所述的方法,其特征在于,所述步骤B22还包括:
B221:获得输入的子节点,并判断所获得的子节点的名称,根据下述子节点的名称执行相应的处理过程:
判断节点名称为start时,创建起始节点StartNode;
判断节点名称为define时,创建定义节点DefineNode;
判断节点名称为div时,创建块节点divNode;及
判断节点名称均非上述名称时,创建包含节点includeNode;
B222:按照上述步骤依次处理每个子节点,并将依次创建的节点作为结果返回。
6、根据权利要求5所述的方法,其特征在于,所述创建StartNode节点包括子步骤:
对输入的节点创建StartNode节点;
调用模式解析parse_pattern处理过程生成子节点并返回。
7、根据权利要求5所述的方法,其特征在于,所述创建DefineNode节点包括子步骤:
对输入的节点创建DefineNode节点;读取自定义元属性将其设置到DefineNode节点中,并将DefineNode节点添加到RNGDoeument中;
对输入节点的每一个子节点调用parse_pattern处理过程,将生成的所有节点放入DefineNode节点中;并将DefineNode节点作为结果返回。
8、根据权利要求6或7所述的方法,其特征在于,所述parse_pattern处理过程包括步骤:
确定所输入的节点所符合的节点名称;
根据相应的节点名称创建相应的节点;
如上依次处理各个节点及子节点,并将生成的节点作为结果返回。
9、根据权利要求8所述的方法,其特征在于,所定义的节点名称包括至少以下之一:
元素element、属性attribute、组group、顺序无关项interleave、选择choice、可选optional、无或多zeroOrMore、一或多oneOrMore、列表list、混合mixed、引用ref、模式参考patternRef、空empty、文本text、值value、数据data、禁止notAllowed、外部引用externalRef。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京红旗贰仟软件技术有限公司,未经北京红旗贰仟软件技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910091471.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:电压互感器仿真负荷箱
- 下一篇:一种电力系统小干扰稳定仿真方法