CN112182305A - 一种基于xml规则的xml解析模块、解析方法和配置数据的管理方法 - Google Patents
一种基于xml规则的xml解析模块、解析方法和配置数据的管理方法 Download PDFInfo
- Publication number
- CN112182305A CN112182305A CN202011028332.2A CN202011028332A CN112182305A CN 112182305 A CN112182305 A CN 112182305A CN 202011028332 A CN202011028332 A CN 202011028332A CN 112182305 A CN112182305 A CN 112182305A
- Authority
- CN
- China
- Prior art keywords
- database
- xml
- class
- model class
- interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/84—Mapping; Conversion
- G06F16/86—Mapping to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于通信领域,其公开了一种基于XML规则的XML解析模块,包括如下子模块:数据库model类子模块:用于根据XML配置文件新建数据库、生成数据库中所包含的数据库表、建立数据库model类与数据库表之间的映射关系;序列化类子模块:用于建立前端传递的json对象与数据库model类之间的映射关系;接口类子模块:用于根据XML配置文件生成restful接口;页面路由规则生成子模块:用于根据XML配置文件生成用于restful接口注册的页面路由规则。
Description
技术领域
本发明涉及通信领域,具体为一种基于XML规则的XML解析模块、解析方法和配置数据的管理方法。
背景技术
在物联网使用环境中,网关产品通常包括通信及网络功能,还包括各种物联网应用程序,这些程序通常都需要进行配置管理。
现有技术中,任何新增的应用如果要访问和管理网关的配置数据,都需要重新进行代码编写,以能够访问配置数据库,这样导致开发周期长、问题多。
发明内容
本发明的目的在于提供一种基于XML规则的XML解析模块、解析方法和配置数据的管理方法,该模块通过基于XML配置文件进行解析自动化的生成数据库表、数据库model类、数据库model类和数据库表之间的映射关系、页面路由规则和接口,前端页面传递的json对象通过转换得到model类对象,将其映射到数据库表中,实现对于前端页面的功能的增查改删的操作。
为实现上述目的,本发明提供如下技术方案:一种基于XML规则的XML解析模块,包括如下子模块:
数据库model类子模块:用于根据XML配置文件新建数据库、生成数据库中所包含的数据库表、建立数据库model类与数据库表之间的映射关系;
序列化类子模块:用于建立前端传递的json对象与数据库model类之间的映射关系;
接口类子模块:用于根据XML配置文件生成restful接口;
页面路由规则生成子模块:用于根据XML配置文件生成用于restful接口注册的页面路由规则。
在上述的基于XML规则的XML解析模块中,所述数据库为sqilite数据库或mysql数据库。
在上述的基于XML规则的XML解析模块中,所述数据库model类子模块采用对象关系映射的方法基于XML配置文件建立数据库model类与数据库表之间的映射关系。
同时,本发明还公开了一种基于XML规则自动生成物联网设备配置数据库及配置管理接口的方法,所述方法具体为:
根据XML配置文件新建数据库、生成数据库中所包含的数据库表、建立数据库model类与数据库表之间的映射关系、建立前端传递的json对象与数据库model类之间的映射关系、生成restful接口、生成用于restful接口注册的页面路由规则。
最后本发明还公开了一种物联网设备配置数据的管理方法,基于如上任一所述的XML解析模块实现;
所述方法具体为:
步骤1:前端应用从页面路由规则生成子模块获取页面路由规则;
步骤2:根据页面路由规则注册restful接口,将配置数据以json对象的形式通过restful接口发送至序列化类子模块;序列化类子模块建立json对象到数据库model类的映射,得到数据库model类;
步骤3:数据库model类子模块将数据库model类映射到数据库中的数据库表中,实现对于数据库表中的配置数据的增、查、改、删操作。
与现有技术相比,本发明的有益效果是:
通过自动生成配置数据库及restful配置接口,再结合CN201910596120.5、CN201910682579.7专利,即可完成配置管理的全流程功能,用户只需定义XML规则,即可完成前端页面、CLI等配置,以及在设备中的参数管理。
附图说明
图1为本实施例1的模块的结构图;
图2为本实施例1的模块的工作原理图;
图3为本实施例1的方法的流程图;
图4为本实施例1的方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
参考图1和2,一种基于XML规则的XML解析模块,包括如下子模块:
数据库model类子模块:用于根据XML配置文件新建sqilite数据库、生成数据库中所包含的数据库表、建立数据库model类与数据库表之间的映射关系;
XML配置文件以下文为例:
该配置文件规定了子节点的序号、接口类型、IP地址、子网掩码、mtu配置。
数据库model类相当于数据库中的一张表,这张表的定义,例如包含哪些字段,但是不包含具体的数据,也就是说,如果没有对象,该表是空的。
类对象相当于数据库中该表的一条记录,有10个对象就有10条数据记录。
上述XML配置文件自动生成类对象,如下:
class Network(models.Model):数据库的类名定义
INTERFACE_TYPE_1='lan0'
INTERFACE_TYPE_2='lan1'
INTERFACE_TYPE_3='lan2'
INTERFACE_TYPE_4='lan3'
INTERFACE_TYPE_5='lan4'lan0-lan5为枚举项,下面会用到
INTERFACE_TYPE_ITEM=[
(0,INTERFACE_TYPE_1),
(1,INTERFACE_TYPE_2),
(2,INTERFACE_TYPE_3),
(3,INTERFACE_TYPE_4),
(4,INTERFACE_TYPE_5),
]接口类型定义,用到了上面定义的枚举类型,表示该配置项只能选择枚举类型中的项,否则非法。
id=models.IntegerField(primary_key=True,unique=True,auto_created=True)
表项ID字段,数据库的主键,自动生成(无需用户设置),并且不可重复
interface=models.IntegerField(choices=INTERFACE_TYPE_ITEM,default=0)
接口类型字段,只能选择上面定义的枚举类型,否则非法,默认是INTERFACE_TYPE_1,即lan0
ip=models.IPAddressField(default='192.168.0.1')
IP地址字段,默认是192.168.0.1
netmask=models.IPAddressField(default='255.255.255.0')
子网掩码字段,默认是255.255.255.0
mtu=models.IntegerField(default=1500)
Mtu字段,默认是1500
XML的父节点对应类名,XML的每个子节点对应一个字段,XML中的enum属性对应数据库中的枚举项。
生成上述类对象后,在django框架中执行相应的命令,该命令为manage.pymakemigrations和manage.py migrate这两条命令,即可生成数据库表。
不同页面的配置参数,属于不同的数据库表,也就是要建立不同的XML文件。例如如果要增加一个新的APP,则需新创建该APP.XML。
序列化类子模块:用于建立前端传递的json对象与数据库model类之间的映射关系;
json对象与数据库model类之间的映射关系的建立是django框架提供的功能,数据的访问流程如所示:
(1)Web或cli通过restful接口(该接口通过接口类子模块生成),将json格式的数据传到web服务中;
(2)django中的Django rest framework组件会将json数据转化为model对象;model对象就是上述的数据库model类的对象,代表数据库表中的一条记录。
(3)通过ORM将model对象数据保存到步骤1的数据库中。
json对象可以以下代码为例:
{
"id":1,
"interface":1,
"ip":"192.168.0.1",
"netmask":"255.255.255.0",
"mtu":1500
},
以上就是json对象,对应于model类中的一个model对象;
通过上述分析可以得知,在数据库model类子模块中是根据XML配置文件生成了数据库表、数据库model类、类对象、数据库;
序列化类子模块是根据json对象生成了model对象。
数据库表的定义对应数据库model类;数据库表中的一条记录,对应一个model对象。
在传统技术中,如果要直接操作数据库,需要研发人员写SQL语句进行操作。在本方案中通过ORM技术,研发人员只需按照面向对象的方式,操作一个model对象,就可以直接完成数据库的增删改查操作,而不需要写SQL语句。
接口类子模块:用于根据XML配置文件生成restful接口;
以上述的xml配置文件为例,根据django rest framework和xml配置文件生成Restful接口,django rest framework组件是第三方组织针对django框架开发的开源软件,可以根据类的定义生成restful接口;
其操作的过程如下:
django rest framework组件根据XML配置文件生成两个类代码,并生成一个url路由注册代码,即可由框架自动生成restful接口。
下面的是类代码
路由生成规则仅由后面两行负责,viewset类负责和restful接口交互,通过serializer类获取后端json数据并做过滤显示给前端,或者接收前端数据转给sirializer类。
页面路由规则生成子模块:用于根据XML配置文件生成用于restful接口注册的页面路由规则。
其各子模块的配合关系为:
任何嵌入式设备的页面的配置在本实施例中都是可以通过XML配置文件进行管理的,数据库model类子模块首先是基于XML配置文件生成数据库,该数据库是有数据库表组成;数据库model类和数据库表示对应的关系;
页面路由规则生成子模块、接口类子模块根据XML配置文件生成restful接口和路由规则;
前端调用该接口和路由规则将json对象发送给序列化类子模块;
序列化类子模块将json对象转化为model对象;
数据库model类子模块将model对象写入数据库中的数据库表,实现了对于前端页面的xml配置文件的表示;
在维护过程中,维护人员需要上传更改后的配置的XML配置文件可实现对于前端页面的管理、维护。
用户在更改页面相关配置时,会产生一个或多个json对象,json对象会通过序列化类子模块将json对象转化为model对象,数据库model类子模块将model对象写入数据库表中,实现对数据库的修改。
本发明的创新点在于:
通过基于XML页面配置文件自动生成了数据库表、数据库model类、restful接口和页面路由;json对象和model对象之间的转换是开源的现有技术;通过基于XML页面配置文件的自动化生成数据库表、数据库model类、restful接口和页面路由,用户在修改前端页面数据时,通过对于json对象和model对象之间的转换,model对象和数据库model类之间具有映射关系,数据库model类和数据库表之间具有映射关键,model对象可填入数据库表中,实现对于数据库文件的更新,实现对于前端页面功能的增查改删的操作。
此外,本实施例还提供了一种基于上述的XML解析模块来实现的物联网设备配置数据的管理方法,参考图3和4,其包含如下步骤:
步骤1:前端应用从页面路由规则生成子模块获取页面路由规则;
步骤2:根据页面路由规则注册restful接口,将配置数据以json对象的形式通过restful接口发送至序列化类子模块;序列化类子模块建立json对象到数据库model类的映射,得到数据库model类;
步骤3:数据库model类子模块将数据库model类映射到数据库中的数据库表中,实现对于数据库表中的配置数据的增、查、改、删操作。
本实施例中,步骤1中的页面路由规则、步骤2中restful接口、数据库model类和数据库表之间的映射关系都是根据XML页面配置文件自动生成的,软件开发人员无需通过手工写入数据库表、接口配置文件、路由规则,其可有效的降低操作人员的工作强度。
再结合CN201910596120.5、CN201910682579.7专利,即可完成配置管理的全流程功能,用户只需定义XML规则,即可完成前端页面、CLI等配置,以及在设备中的参数管理。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
Claims (5)
1.一种基于XML规则的XML解析模块,其特征在于:包括如下子模块:
数据库model类子模块:用于根据XML配置文件新建数据库、生成数据库中所包含的数据库表、建立数据库model类与数据库表之间的映射关系;
序列化类子模块:用于建立前端传递的json对象与数据库model类之间的映射关系;
接口类子模块:用于根据XML配置文件生成restful接口;
页面路由规则生成子模块:用于根据XML配置文件生成用于restful接口注册的页面路由规则。
2.根据权利要求1所述的基于XML规则的XML解析模块,其特征在于:所述数据库为sqilite数据库或mysql数据库。
3.根据权利要求1所述的基于XML规则的XML解析模块,其特征在于:所述数据库model类子模块采用对象关系映射的方法基于XML配置文件建立数据库model类与数据库表之间的映射关系。
4.一种基于XML规则自动生成物联网设备配置数据库及配置管理接口的方法,其特征在于,所述方法具体为:
根据XML配置文件新建数据库、生成数据库中所包含的数据库表、建立数据库model类与数据库表之间的映射关系、建立前端传递的json对象与数据库model类之间的映射关系、生成restful接口、生成用于restful接口注册的页面路由规则。
5.一种物联网设备配置数据的管理方法,其特征在于,基于如权利要求1-3任一所述的XML解析模块实现;
所述方法具体为:
步骤1:前端应用从页面路由规则生成子模块获取页面路由规则;
步骤2:根据页面路由规则注册restful接口,将配置数据以json对象的形式通过restful接口发送至序列化类子模块;序列化类子模块建立json对象到数据库model类的映射,得到数据库model类;
步骤3:数据库model类子模块将数据库model类映射到数据库中的数据库表中,实现对于数据库表中的配置数据的增、查、改、删操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011028332.2A CN112182305B (zh) | 2020-09-26 | 2020-09-26 | 一种基于xml规则的xml解析模块、管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011028332.2A CN112182305B (zh) | 2020-09-26 | 2020-09-26 | 一种基于xml规则的xml解析模块、管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112182305A true CN112182305A (zh) | 2021-01-05 |
CN112182305B CN112182305B (zh) | 2023-07-21 |
Family
ID=73943560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011028332.2A Active CN112182305B (zh) | 2020-09-26 | 2020-09-26 | 一种基于xml规则的xml解析模块、管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112182305B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113821210A (zh) * | 2021-09-17 | 2021-12-21 | 中汽创智科技有限公司 | 一种文件解析方法、装置及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7155534B1 (en) * | 2002-10-03 | 2006-12-26 | Cisco Technology, Inc. | Arrangement for aggregating multiple router configurations into a single router configuration |
CN102841889A (zh) * | 2011-06-20 | 2012-12-26 | 中兴通讯股份有限公司 | 一种基于orm架构的高效数据库访问的实现方法及装置 |
US20150095343A1 (en) * | 2013-09-27 | 2015-04-02 | Oracle International Corporation | Cloud database connection multiplexing |
CN106557568A (zh) * | 2016-11-14 | 2017-04-05 | 中国电子科技集团公司第二十八研究所 | 模式匹配的xml文件格式与关系数据库转换的处理方法 |
US20170185609A1 (en) * | 2015-12-28 | 2017-06-29 | International Business Machines Corporation | Universal adaptor for rapid development of web-based data visualizations |
CN108009282A (zh) * | 2017-12-22 | 2018-05-08 | 武汉楚鼎信息技术有限公司 | 一种json数据同步到关系型数据库的方法及系统装置 |
CN108121564A (zh) * | 2017-12-22 | 2018-06-05 | 武汉楚鼎信息技术有限公司 | 一种json数据快速同步及控制的方法及系统装置 |
US10331422B1 (en) * | 2019-02-10 | 2019-06-25 | Julie Russell | System and method for generating API devlopment code for integrating platforms |
CN111510330A (zh) * | 2020-04-10 | 2020-08-07 | 中国联合网络通信集团有限公司 | 接口管理装置、方法及存储介质 |
-
2020
- 2020-09-26 CN CN202011028332.2A patent/CN112182305B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7155534B1 (en) * | 2002-10-03 | 2006-12-26 | Cisco Technology, Inc. | Arrangement for aggregating multiple router configurations into a single router configuration |
CN102841889A (zh) * | 2011-06-20 | 2012-12-26 | 中兴通讯股份有限公司 | 一种基于orm架构的高效数据库访问的实现方法及装置 |
US20150095343A1 (en) * | 2013-09-27 | 2015-04-02 | Oracle International Corporation | Cloud database connection multiplexing |
US20170185609A1 (en) * | 2015-12-28 | 2017-06-29 | International Business Machines Corporation | Universal adaptor for rapid development of web-based data visualizations |
CN106557568A (zh) * | 2016-11-14 | 2017-04-05 | 中国电子科技集团公司第二十八研究所 | 模式匹配的xml文件格式与关系数据库转换的处理方法 |
CN108009282A (zh) * | 2017-12-22 | 2018-05-08 | 武汉楚鼎信息技术有限公司 | 一种json数据同步到关系型数据库的方法及系统装置 |
CN108121564A (zh) * | 2017-12-22 | 2018-06-05 | 武汉楚鼎信息技术有限公司 | 一种json数据快速同步及控制的方法及系统装置 |
US10331422B1 (en) * | 2019-02-10 | 2019-06-25 | Julie Russell | System and method for generating API devlopment code for integrating platforms |
CN111510330A (zh) * | 2020-04-10 | 2020-08-07 | 中国联合网络通信集团有限公司 | 接口管理装置、方法及存储介质 |
Non-Patent Citations (1)
Title |
---|
张尔喜;先晓兵;王雪锋;: "基于WebAPI的移动端学生综合服务平台设计与实现", 软件工程, no. 10 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113821210A (zh) * | 2021-09-17 | 2021-12-21 | 中汽创智科技有限公司 | 一种文件解析方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112182305B (zh) | 2023-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107743072B (zh) | 高效可扩展的网络仿真场景生成方法 | |
CN110933146B (zh) | 一种数据转换方法、装置和服务器 | |
CN110958131B (zh) | YANG配置数据模型上支持基于GraphQL的查询 | |
CN113508403A (zh) | 用于自动化系统组件与多个信息源的可互操作通信的系统和方法 | |
CN106559251A (zh) | 一种基于yang模型的编译方法、及对应的接口、组件和系统 | |
JPH10149398A (ja) | マップ構築システムおよびマップ構築方法 | |
WO2006115694A2 (en) | Transforming business models | |
KR20050115907A (ko) | 네트워크 디바이스에서 관리 정보를 위한 관계형 모델 | |
CN102567026B (zh) | 移动应用构建系统和移动应用构建方法 | |
CN112287114A (zh) | 一种知识图谱服务处理方法和装置 | |
CN105049256A (zh) | 一种通用自定义接口报文实现方法及系统 | |
CN112685032A (zh) | 一种基于spring boot框架的动态api可视化生成方法 | |
CN105824944B (zh) | 一种基于脚本语言的xml配置数据维护方法及系统 | |
CN113641700A (zh) | 一种基于Spring boot框架的数据处理方法及装置 | |
US7127721B2 (en) | Core object model for network management configuration applications in telecommunication systems | |
KR101810518B1 (ko) | Ifc 포맷의 bim 데이터를 이용한 객체 질의 시스템 및 방법 | |
CN115858810A (zh) | 自动构建知识图谱的方法、系统、计算机设备及存储介质 | |
CN112182305A (zh) | 一种基于xml规则的xml解析模块、解析方法和配置数据的管理方法 | |
US7281015B2 (en) | Method and apparatus for providing an interface between system architect and OPNET | |
CN113285930A (zh) | 一种接入多种协议物联网设备的可视化适配方法 | |
KR100453224B1 (ko) | 유/무선 인터넷을 이용한 수식 기호 편집장치 및 방법 | |
CN100438522C (zh) | 创建与协议无关的管理器/代理关系的方法 | |
Xiaohua et al. | Design and implementation of OpenDayLight manager application | |
CN111988179B (zh) | 一种yang模型管理系统、方法和存储介质 | |
CN111723036B (zh) | 数据处理方法、相关设备及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 511356 Room 501, building 2, No. 63, Yong'an Avenue, Huangpu District, Guangzhou, Guangdong Applicant after: Guangzhou lubangtong Internet of things Technology Co.,Ltd. Address before: 510653 room F315, 95 daguanzhong Road, Tianhe District, Guangzhou City, Guangdong Province Applicant before: GUANGZHOU ROBUSTEL TECHNOLOGIES Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |