[发明专利]一种基于QT自动生成代码的方法及装置在审
申请号: | 202010054887.8 | 申请日: | 2020-01-17 |
公开(公告)号: | CN111258564A | 公开(公告)日: | 2020-06-09 |
发明(设计)人: | 王宏明;林卫永;聂超;金云;王泉荣;温业中 | 申请(专利权)人: | 通号万全信号设备有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30 |
代理公司: | 杭州快知知识产权代理事务所(特殊普通合伙) 33293 | 代理人: | 杨冬玲 |
地址: | 317500 浙江省台*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 qt 自动 生成 代码 方法 装置 | ||
本发明公开了一种基于QT自动生成代码的方法,包括输入符合规范的XSD文件并定义XML文件的架构,解析所述XSD文件,根据所述XSD文件中对XML文件的约束生成对应的类属性和成员变量,识别所述XSD文件中的指示器,将XSD文件中的所有element元素根据文件结构生成相应的element哈希表,将所述element元素根据是否复合结构、最小出现次数、最大出现次数生成相应的代码,通过Q_CLASSINFO记录生成的列表类型成员变量元素,生成头文件和源代码文件。该方法解决了现有技术中手工编写对应XML文件的转换代码的工作,存在效率低下的问题。
技术领域
本发明涉及可扩展标记语言领域,尤其涉及一种基于QT自动生成代码的方法。
背景技术
可扩展标记语言即Extensible Markup Language,简称XML,是一种用于标记电子文件使其具有结构性的标记语言,它提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据,使用纯文本来描述数据内容,简单易懂,并且数据都结构化了,易于计算机理解,使XML很快成为跨平台、跨应用数据交换的公共语言,XSD即XML SchemaDefinition的作用是定义XML文档的合法结构,它定义了可出现在XML文档中的元素、属性、继承关系,以及出现的次序、次数、数据类型等。
发明内容
本发明提供的一种基于QT自动生成代码的方法,旨在解决现有技术中手工编写对应XML文件的转换代码的问题。
为实现上述目的,本发明采用以下技术方案:
本发明的一种基于QT自动生成代码的方法,包括:
输入符合规范的XSD文件并定义XML文件的架构;
解析所述XSD文件,根据所述XSD文件中对XML文件的约束生成对应的类属性和成员变量;
识别所述XSD文件中的指示器,将XSD文件中的所有element元素根据文件结构生成相应的element哈希表,将所述element元素根据是否复合结构、最小出现次数、最大出现次数生成相应的代码;
通过Q_CLASSINFO记录生成的列表类型成员变量元素,生成头文件和源代码文件。
本发明提供的一种基于QT自动生成代码的方法,通过解析XSD文件中的各种元素,然后生成对应的element哈希表,得到XSD文件对应的element哈希表以后,对于简单类型提供对字符串、日期、数值、布尔型的支持,直接生成对应QT类型的成员变量;对于复合类型能够生成对应的类并且在父类型中生成对应成员变量及属性方法;对于生成的List类型成员变量,将会使用Q_CLASSINFO来记录信息,在生成的代码内对其进行特殊处理,提高效率和准确性。
作为优选,所述解析所述XSD文件,根据所述XSD文件中对XML文件的约束生成对应的类属性和成员变量包括:
解析所述XSD文件,根据所述XSD文件中对XML文件的约束生成简单类型则提供对字符串、日期、数值、布尔型的支持;
解析所述XSD文件,根据所述XSD文件中对XML文件的约束生成复合类型则生成对应的类型并在父类型中生成对应成员变量和属性。
作为优选,所述生成的类型根据父子继承关系进行确定。
一种基于QT自动生成代码的装置,其特征在于,包括:
输入和定义模块,用于输入符合规范的XSD文件并定义XML文件的架构;
解析和生成模块,用于解析所述XSD文件,根据所述XSD文件中对XML文件的约束生成对应的类属性和成员变量;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于通号万全信号设备有限公司,未经通号万全信号设备有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010054887.8/2.html,转载请声明来源钻瓜专利网。