CN110933077A - 一种报文解析系统及方法 - Google Patents
一种报文解析系统及方法 Download PDFInfo
- Publication number
- CN110933077A CN110933077A CN201911196969.XA CN201911196969A CN110933077A CN 110933077 A CN110933077 A CN 110933077A CN 201911196969 A CN201911196969 A CN 201911196969A CN 110933077 A CN110933077 A CN 110933077A
- Authority
- CN
- China
- Prior art keywords
- message
- node
- format
- jumping
- child
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种报文解析系统及方法,通过外部导入XML文件的方式,灵活导入报文格式定义文件,并将报文格式定义文件转化为“树”的数据结构,从而将报文解析工作转换为入栈子节点,出栈一个节点,根据该节点来检测报文基本格式单元,然后循环入栈子节点的工作,实现了理论上能够适应所有复杂的报文格式的解析方法。用户只要事先导入相应的XML型报文格式定义文件,本发明便可解析无穷多种报文格式。
Description
技术领域
本发明涉及基于计算机网络领域,具体涉及一种报文解析系统及方法。
背景技术
计算机网络中,通常需要收发双方(例如PC机以及移动终端等)把数据依据事先约定好的格式,封装成报文,才能在信道中进行数据交互。
常规情况下,通信双方的报文格式比较固定,使用比较简单的报文解析方法,就可以满足通信的需求;而在某些特定情况下,通信双方所采用的报文格式是灵活多变的,不再是固定的某一种或者某几种报文。因此,需要一种能够适应所有复杂的报文格式的解析系统及方法,来解析理论上无穷多种报文格式。
发明内容
针对现有技术中的上述不足,本发明提供的一种报文解析系统及方法解决了现有报文解析方法不适应所有复杂的报文格式的解析方法,无法在理论上解析无穷多种报文格式的问题。
为了达到上述发明目的,本发明采用的技术方案为:一种报文解析系统,包括:XML报文格式定义文件解析子系统、报文基本格式单元解析子系统和报文检查子系统;
所述XML报文格式定义文件解析子系统用于解析XML报文格式定义文件,并生成内在的报文格式树;
所述报文基本格式单元解析子系统用于根据报文格式树内置的基本格式单元来解析具体的报文中所包含的某一种基本格式单元的格式;
所述报文检查子系统用于检查一个包含一个或者多个基本格式单元的一个完整报文的格式的合法性。
进一步地:XML报文格式包括:a:定义单字节的无符号整数和单字节的无符号整数的范围;b:定义两字节的无符号整数和两字节的无符号整数范围;c:定义四字节的无符号整数和四字节的无符号整数范围;d:定义八字节的无符号整数和八字节的无符号整数;e:定义固定长度字节流;f:定义变长长度字节流。
进一步地:报文格式树包括一个根节点和n个普通节点;所述第i个普通节点包括一个父节点指针、字段数据和mi个子节点指针;所述父节点指针指向当前节点的父节点地址;所述子节点指针指向当前节点的子节点地址。
一种报文解析方法,包括以下步骤:
S1、通过XML报文格式定义文件解析子系统解析XML报文格式定义文件,并生成内在的报文格式树;
S2、将报文格式树的根节点的所有子节点入栈;
S3、判断栈是否为空,若是,则跳转至步骤S10,若否,则跳转至步骤S4;
S4、出栈一个节点,并根据该节点提供的报文格式的描述,对报文的基本格式单元进行格式的合法性检查,判断该基本格式单元是否符合节点所描述的字段格式,若是,则跳转至步骤S5,若否,则跳转至步骤S9;
S5、判断当前节点是否存在子节点,若是,则跳转至步骤S6;若否,则跳转至步骤S3;
S6、遍历并检测当前节点的子节点,判断检测的子节点和当前节点是否存在逻辑关系,若是,则跳转至步骤S8,若否,则跳转至步骤S7;
S7、判断该子节点是否需要入栈,若是,则跳转至步骤S8,若否,则跳转至步骤S3;
S8、将该子节点入栈,并跳转至步骤S3;
S9、得到“报文不合法”的结论,并结束报文解析;
S10、得到“报文的所有字段都合法”的结论,并结束报文解析。
进一步地:步骤S1中报文格式树包括一个根节点和n个普通节点;所述第i个普通节点包括一个父节点指针、字段数据和mi个子节点指针;所述父节点指针指向当前节点的父节点地址;所述子节点指针指向当前节点的子节点地址。
本发明的有益效果为:通过外部导入XML文件的方式,灵活导入报文格式定义文件,并将报文格式定义文件转化成“树”的数据结构,从而将报文解析工作转换为入栈子节点,出栈一个节点,根据该节点来检测报文基本格式单元,然后循环入栈子节点的工作,实现了理论上能够适应所有复杂的报文格式的解析方法。用户只要事先导入相应的XML型报文格式定义文件,本发明便可解析无穷多种报文格式。
附图说明
图1为一种报文解析方法流程示意图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
在本发明的一个实施例中,一种报文解析系统,包括:XML报文格式定义文件解析子系统、报文基本格式单元解析子系统和报文检查子系统;
所述XML报文格式定义文件解析子系统用于解析XML报文格式定义文件,并生成内在的报文格式树;
所述报文基本格式单元解析子系统用于根据报文格式树内置的基本格式单元来解析具体的报文中所包含的某一种基本格式单元的格式;
所述报文检查子系统用于检查一个包含一个或者多个基本格式单元的一个完整报文的格式的合法性。
所述XML报文格式包括:a:定义单字节的无符号整数和单字节的无符号整数的范围;b:定义两字节的无符号整数和两字节的无符号整数范围;c:定义四字节的无符号整数和四字节的无符号整数范围;d:定义八字节的无符号整数和八字节的无符号整数;e:定义固定长度字节流;f:定义变长长度字节流。
XML报文格式中:a、b、c、d、e和f字段定义了自身的范围和父节点的范围,在父节点值在a、b、c、d、e和f字段定义的父节点的范围内时,a、b、c、d、e和f字段存在。
所述报文格式树包括一个根节点和n个普通节点;所述第i个普通节点包括一个父节点指针、字段数据和mi个子节点指针;所述父节点指针指向当前节点的父节点地址;所述子节点指针指向当前节点的子节点地址。
如图1所示,一种报文解析方法,包括以下步骤:
S1、通过XML报文格式定义文件解析子系统解析XML报文格式定义文件,并生成内在的报文格式树;
S2、将报文格式树的根节点的所有子节点入栈;
S3、判断栈是否为空,若是,则跳转至步骤S10,若否,则跳转至步骤S4;
S4、出栈一个节点,并根据该节点提供的报文格式的描述,对报文的基本格式单元进行格式的合法性检查,判断该基本格式单元是否符合节点所描述的字段格式,若是,则跳转至步骤S5,若否,则跳转至步骤S9;
S5、判断当前节点是否存在子节点,若是,则跳转至步骤S6;若否,则跳转至步骤S3;
S6、遍历并检测当前节点的子节点,判断检测的子节点和当前节点是否存在逻辑关系,若是,则跳转至步骤S8,若否,则跳转至步骤S7;
S7、判断该子节点是否需要入栈,若是,则跳转至步骤S8,若否,则跳转至步骤S3;
S8、将该子节点入栈,并跳转至步骤S3;
S9、得到“报文不合法”的结论,并结束报文解析;
S10、得到“报文的所有字段都合法”的结论,并结束报文解析。
步骤S1中报文格式树包括一个根节点和n个普通节点;所述第i个普通节点包括一个父节点指针、字段数据和mi个子节点指针;所述父节点指针指向当前节点的父节点地址;所述子节点指针指向当前节点的子节点地址。
本发明通过外部导入XML文件的方式,灵活导入报文格式定义文件,并将报文格式定义文件转化成“树”的数据结构,从而将报文解析工作转换为入栈子节点,出栈一个节点,根据该节点来检测报文基本格式单元,然后循环入栈子节点的工作,实现了理论上能够适应所有复杂的报文格式的解析方法。用户只要事先导入相应的XML型报文格式定义文件,本发明便可解析无穷多种报文格式。
Claims (5)
1.一种报文解析系统,其特征在于,包括:XML报文格式定义文件解析子系统、报文基本格式单元解析子系统和报文检查子系统;
所述XML报文格式定义文件解析子系统用于解析XML报文格式定义文件,并生成内在的报文格式树;
所述报文基本格式单元解析子系统用于根据报文格式树内置的基本格式单元来解析具体的报文中所包含的某一种基本格式单元的格式;
所述报文检查子系统用于检查一个包含一个或者多个基本格式单元的一个完整报文的格式的合法性。
2.根据权利要求1所述的报文解析系统,其特征在于,所述XML报文格式包括:a:定义单字节的无符号整数和单字节的无符号整数的范围;b:定义两字节的无符号整数和两字节的无符号整数范围;c:定义四字节的无符号整数和四字节的无符号整数范围;d:定义八字节的无符号整数和八字节的无符号整数;e:定义固定长度字节流;f:定义变长长度字节流。
3.根据权利要求1所述的报文解析系统,其特征在于,所述报文格式树包括一个根节点和n个普通节点;所述第i个普通节点包括一个父节点指针、字段数据和mi个子节点指针;所述父节点指针指向当前节点的父节点地址;所述子节点指针指向当前节点的子节点地址。
4.一种报文解析方法,其特征在于,包括以下步骤:
S1、通过XML报文格式定义文件解析子系统解析XML报文格式定义文件,并生成内在的报文格式树;
S2、将报文格式树的根节点的所有子节点入栈;
S3、判断栈是否为空,若是,则跳转至步骤S10,若否,则跳转至步骤S4;
S4、出栈一个节点,并根据该节点提供的报文格式的描述,对报文的基本格式单元进行格式的合法性检查,判断该基本格式单元是否符合节点所描述的字段格式,若是,则跳转至步骤S5,若否,则跳转至步骤S9;
S5、判断当前节点是否存在子节点,若是,则跳转至步骤S6;若否,则跳转至步骤S3;
S6、遍历并检测当前节点的子节点,判断检测的子节点和当前节点是否存在逻辑关系,若是,则跳转至步骤S8,若否,则跳转至步骤S7;
S7、判断该子节点是否需要入栈,若是,则跳转至步骤S8,若否,则跳转至步骤S3;
S8、将该子节点入栈,并跳转至步骤S3;
S9、得到“报文不合法”的结论,并结束报文解析;
S10、得到“报文的所有字段都合法”的结论,并结束报文解析。
5.根据权利要求4所述的报文解析方法,其特征在于,所述步骤S1中报文格式树包括一个根节点和n个普通节点;所述第i个普通节点包括一个父节点指针、字段数据和mi个子节点指针;所述父节点指针指向当前节点的父节点地址;所述子节点指针指向当前节点的子节点地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911196969.XA CN110933077A (zh) | 2019-11-29 | 2019-11-29 | 一种报文解析系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911196969.XA CN110933077A (zh) | 2019-11-29 | 2019-11-29 | 一种报文解析系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110933077A true CN110933077A (zh) | 2020-03-27 |
Family
ID=69847641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911196969.XA Pending CN110933077A (zh) | 2019-11-29 | 2019-11-29 | 一种报文解析系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110933077A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111444254A (zh) * | 2020-03-30 | 2020-07-24 | 北京东方金信科技有限公司 | 一种skl系统文件格式转换方法和系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1809053A (zh) * | 2005-01-21 | 2006-07-26 | 华为技术有限公司 | 文本编码类协议通用解析器 |
US20080162513A1 (en) * | 2006-12-28 | 2008-07-03 | Pitney Bowes Incorporated | Universal address parsing system and method |
CN103186674A (zh) * | 2013-04-02 | 2013-07-03 | 浪潮电子信息产业股份有限公司 | 一种基于XML的Web数据快速查询方法 |
CN103440331A (zh) * | 2013-09-05 | 2013-12-11 | 五八同城信息技术有限公司 | 基于逆波兰和多叉树的搜索引擎查询语句解析方法 |
CN103605496A (zh) * | 2013-12-02 | 2014-02-26 | 天津光电通信技术有限公司 | 一种实现快速解析基于scpi协议的通信指令的方法 |
CN106254359A (zh) * | 2016-08-11 | 2016-12-21 | 浪潮电子信息产业股份有限公司 | 一种可配置的报文解析系统及方法 |
CN107894973A (zh) * | 2017-10-30 | 2018-04-10 | 武汉华工赛百数据系统有限公司 | 一种基于xml的数据交换方法和系统 |
CN109788004A (zh) * | 2017-11-10 | 2019-05-21 | 厦门雅迅网络股份有限公司 | 自动适配新能源汽车国标自定义协议的解析方法及系统 |
CN110266702A (zh) * | 2019-06-25 | 2019-09-20 | 上海电气泰雷兹交通自动化系统有限公司 | 基于XML的Wireshark用协议解析方法 |
-
2019
- 2019-11-29 CN CN201911196969.XA patent/CN110933077A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1809053A (zh) * | 2005-01-21 | 2006-07-26 | 华为技术有限公司 | 文本编码类协议通用解析器 |
US20080162513A1 (en) * | 2006-12-28 | 2008-07-03 | Pitney Bowes Incorporated | Universal address parsing system and method |
CN103186674A (zh) * | 2013-04-02 | 2013-07-03 | 浪潮电子信息产业股份有限公司 | 一种基于XML的Web数据快速查询方法 |
CN103440331A (zh) * | 2013-09-05 | 2013-12-11 | 五八同城信息技术有限公司 | 基于逆波兰和多叉树的搜索引擎查询语句解析方法 |
CN103605496A (zh) * | 2013-12-02 | 2014-02-26 | 天津光电通信技术有限公司 | 一种实现快速解析基于scpi协议的通信指令的方法 |
CN106254359A (zh) * | 2016-08-11 | 2016-12-21 | 浪潮电子信息产业股份有限公司 | 一种可配置的报文解析系统及方法 |
CN107894973A (zh) * | 2017-10-30 | 2018-04-10 | 武汉华工赛百数据系统有限公司 | 一种基于xml的数据交换方法和系统 |
CN109788004A (zh) * | 2017-11-10 | 2019-05-21 | 厦门雅迅网络股份有限公司 | 自动适配新能源汽车国标自定义协议的解析方法及系统 |
CN110266702A (zh) * | 2019-06-25 | 2019-09-20 | 上海电气泰雷兹交通自动化系统有限公司 | 基于XML的Wireshark用协议解析方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111444254A (zh) * | 2020-03-30 | 2020-07-24 | 北京东方金信科技有限公司 | 一种skl系统文件格式转换方法和系统 |
CN111444254B (zh) * | 2020-03-30 | 2023-03-28 | 北京东方金信科技有限公司 | 一种skl系统文件格式转换方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8060652B2 (en) | Extensible binary mark-up language for efficient XML-based data communications and related systems and methods | |
CN108600192B (zh) | 一种基于正则表达式的dbc文件解析及报文分析方法 | |
CN109117209B (zh) | 序列化和反序列化方法及装置 | |
CA3110584C (en) | Method and apparatus for rule-based filtering of data components | |
CN105187258B (zh) | 一种可配置的Trap告警解析处理方法 | |
CN111970353A (zh) | 云计算平台物联网中异构设备的数据处理方法及装置 | |
CN111090417A (zh) | 二进制文件解析方法、装置、设备及介质 | |
CN110933077A (zh) | 一种报文解析系统及方法 | |
CN110830466B (zh) | 一种基于xml的dl/t645规约报文的组帧方法及装置 | |
CN112989433A (zh) | 基于Java Bean校验规则的校验方法及相关设备 | |
CN111782882A (zh) | 一种tcp报文转换方法、装置、系统及计算机存储介质 | |
CN104378362B (zh) | 用于进行报文接口转换的方法及装置 | |
CN102165722A (zh) | 用于提供富媒体业务的方法和装置 | |
CN110213297B (zh) | 一种数据解析方法、装置及计算机可读存储介质 | |
CN111898340A (zh) | 文件的处理方法、设备及可读存储介质 | |
CN110839022A (zh) | 一种基于xml语言的车载控制软件通信协议解析方法 | |
CN115695589A (zh) | 一种自动生成can报文解析代码的方法、系统、装置及介质 | |
CN115002236B (zh) | 一种数据协议可视化配置的边缘软网关 | |
CN116467047A (zh) | 针对容器配置合规性的检测方法、装置、存储介质及终端 | |
CN105793842B (zh) | 序列化消息之间的转换方法和装置 | |
CN115967604A (zh) | 报文传输方法、装置、电子设备及计算机可读存储介质 | |
CN115718676A (zh) | 一种GoIP设备电子数据的恢复方法和系统 | |
CN113742294A (zh) | 一种asn.1-per信令消息解码方法、系统、装置及介质 | |
CN113590348B (zh) | 基于树状结构的参数传递方法、装置、设备及介质 | |
CN112217896A (zh) | 一种json报文转换方法以及相关装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200327 |