一种可扩展标记语言解析系统及方法与流程

文档序号:26005479发布日期:2021-07-23 21:23阅读:104来源:国知局
一种可扩展标记语言解析系统及方法与流程

本发明涉及通信技术领域,尤其涉及一种可扩展标记语言解析系统及方法。



背景技术:

一直以来光传输网由于采用多厂家混合组网,各运营商上层oss系统(operationsupportsystems,运营支撑系统)对于网络缺乏一个有效的端到端的管控能力,网络的管控基本依赖各厂家的ems网管系统(elementmanagementsystem,网元管理系统)。在云网融合大背景下,厂家要求按照《中国电信传输专业网管采集控制层接口规范》以webservice的形式开发规范中定义的接口,为运营商上层oss系统实现对多厂家混合组网场景下的网络的统一管理及业务端到端模型提供数据基础和能力保证。但厂家对于规范的理解差异造成各个厂家对规范实现和接口的入参和出参的差异,规范的迭代更新也会造成厂家网管软件接口版本的不兼容。

对于java编程语言,可以使用aegis,jaxb,sdo,xmlbeans等数据绑定技术,使用xsd、wsdl等规范描述文件生成java代码,将xml映射到对象属性,但上述数据绑定技术只能将xml(extensiblemarkuplanguage,可扩展标记语言)元素与对象属性一对一的绑定,无法处理将多种不规则的xml与对象属性绑定,上层应用仍然需要适配不同厂家和不同网管版本的差异,如果xsd或wsdl不规范或者版本迭代之间不兼容,需要生成多份不同版本的java代码。对于部署的服务,需要多个版本的客户端与服务端兼容,由此带来上层应用系统的开发与部署困难。



技术实现要素:

针对现有技术中存在的问题,本发明提供一种可扩展标记语言解析系统,配置于光传输网的适配层,包括:

第一存储模块,用于保存预先配置的至少一解析规则集,所述解析规则集包括多条解析规则,每条所述解析规则包括路径信息以及对应的规则内容;

第二存储模块,用于保存预先获取的连接所述适配层的至少一网元管理系统的基本信息,以及所述基本信息关联的适配对应的所述网元管理系统的所述解析规则集的存储路径;

解析模块,分别连接所述第一存储模块和所述第二存储模块,所述解析模块包括:

接收单元,用于接收所述网元管理系统发送的采用可扩展标记语言的文档,并获取发送所述文档的所述网元管理系统的所述基本信息;

加载单元,连接所述接收单元,用于根据所述基本信息匹配得到对应的所述存储路径,并根据所述存储路径由所述第一存储模块中加载相应的所述解析规则集;

解析单元,分别连接所述接收单元和所述加载单元,用于依次读取所述文档中的待解析元素,针对每个所述待解析元素,根据获取得到的所述待解析元素的当前路径信息由所述解析规则集中进行所述解析规则的匹配,并在匹配到对应的所述解析规则时,执行对应的所述规则内容以对所述待解析元素进行解析得到解析内容。

优选的,所述解析规则集被配置为包括:

占位符部分,被配置为存储各所述解析规则的占位符;

前缀部分,被配置为存储各所述解析规则的通用前缀;

规则内容部分,被配置为存储各所述解析规则中去除所述占位符和所述通用前缀的剩余内容。

优选的,所述剩余内容包括去除所述通用前缀的节点路径以及所述规则内容;

则针对每条所述解析规则,所述解析单元由所述解析规则集中获取所述通用前缀以及所述剩余内容中的去除所述通用前缀的节点路径处理得到所述路径信息,以与所述当前路径信息进行匹配。

优选的,所述规则内容包括标签位置标记和解析动作,所述标签位置标记包括起始标签位置、文本标签位置和结束标签位置;

则所述解析单元包括:

读取子单元,用于在匹配到对应的所述解析规则时,读取所述规则内容中所述起始标签位置的声明头获取所述待解析元素的数据结构;

第一解析子单元,连接所述读取子单元,用于在所述数据结构为哈希表结构时,根据所述文本标签位置读取所述待解析元素的文本值,随后根据所述结束标签位置关联的所述解析动作对所述文本值进行处理得到所述待解析元素的所述解析内容;

第二解析子单元,连接所述读取子单元,用于在所述数据结构为链表结构时,根据所述文本标签位置读取所述待解析元素的所述文本值,随后根据所述结束标签位置关联的所述解析动作将所述文本值以分隔符拼接的形式赋值给所述规则内容中预先配置的对象字段作为所述解析内容。

优选的,所述数据结构为所述哈希表结构时,所述解析动作包括根据所述声明头中预先定义的标签与对象字段的映射关系将作为所述标签的所述文本值赋值给所述对象字段,或

根据所述映射关系将作为所述标签的所述文本值以及所述数据结构的键值赋值给所述对象字段,或

根据所述映射关系将作为所述标签的所述文本值以及所述键值赋值给所述对象字段,并在所述对象字段中存在一历史值时,将所述文本值和所述键值追加至所述历史值之后,或

将所述文本值转换成json字符串后赋值给所述对象字段,或将所述文本值拼接形成一字符串后赋值给所述对象字段,或

将所述文本值赋值给所述规则内容中预先配置的一预设字段。

优选的,所述适配层通过所述网元管理系统的访问地址与所述网元管理系统建立连接,则所述接收单元通过所述访问地址获取发送所述文档的所述网元管理系统的所述基本信息。

优选的,所述基本信息包括所述网元管理系统的厂家标识和软件版本。

优选的,所述解析规则集按照分层目录结构存储于所述第一存储模块中,所述分层目录结构将所述厂家标识作为第一层目录,将所述软件版本作为所述第二层目录。

本发明还提供一种可扩展标记语言解析方法,应用于上述的可扩展标记语言解析系统,所述可扩展标记语言解析系统中预先配置有至少一解析规则集,所述解析规则集包括多条解析规则,每条所述解析规则包括路径信息以及对应的规则内容;

所述可扩展标记语言解析系统中还配置有预先获取的连接所述适配层的至少一网元管理系统的基本信息,以及所述基本信息关联的适配对应的所述网元管理系统的所述解析规则集的存储路径;

则所述可扩展标记语言解析方法包括:

步骤s1,所述可扩展标记语言解析系统接收所述网元管理系统发送的采用可扩展标记语言的文档,并获取发送所述文档的所述网元管理系统的所述基本信息;

步骤s2,所述可扩展标记语言解析系统根据所述基本信息匹配得到对应的所述存储路径,并根据所述存储路径加载相应的所述解析规则集;

步骤s3,所述可扩展标记语言解析系统依次读取所述文档中的待解析元素作为当前待解析元素;

步骤s4,针对每个所述当前待解析元素,所述可扩展标记语言解析系统根据获取得到的所述当前待解析元素的当前路径信息由所述解析规则集中进行所述解析规则的匹配,是否匹配到对应的所述解析规则:

若否,则转向步骤s5;

若是,则执行对应的所述规则内容以对所述当前待解析元素进行解析得到解析内容;

步骤s5,所述可扩展标记语言解析系统判断所述文档中的所有所述待解析元素是否均解析完成:

若是,则退出;

若否,则将下一个待解析元素作为所述当前待解析元素,随后返回所述步骤s4。

优选的,所述规则内容包括标签位置标记和解析动作,所述标签位置标记包括起始标签位置、文本标签位置和结束标签位置;

则所述步骤s4中,执行对应的所述规则内容对所述当前待解析元素进行解析的解析过程包括:

所述可扩展标记语言解析系统读取所述规则内容中所述起始标签位置的声明头获取所述待解析元素的数据结构;

在所述数据结构为哈希表结构时,根据所述文本标签位置读取所述待解析元素的文本值,随后根据所述结束标签位置关联的所述解析动作对所述文本值进行处理得到所述待解析元素的所述解析内容;

在所述数据结构为链表结构时,根据所述文本标签位置读取所述待解析元素的所述文本值,随后根据所述结束标签位置关联的所述解析动作将所述文本值以分隔符拼接的形式赋值给所述规则内容中预先配置的对象字段作为所述解析内容。

上述技术方案具有如下优点或有益效果:

1)通过配置多种解析规则,将xml元素内容映射到对象字段,实现将多种不规则的xml结构映射到同一个对象结构,解决了现有数据绑定技术无法处理将多种不规则的xml与对象属性绑定的技术问题;

2)各个网元管理系统的报文差异和网管接口版本差异可以通过一套解析配置规则适配,适配层软件系统只需要部署一套即可,极大降低运维成本。

附图说明

图1为本发明的较佳的实施例中,一种可扩展标记语言解析系统的结构示意图;

图2为本发明的较佳的实施例中,一种可扩展标记语言解析方法的流程示意图。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。本发明并不限定于该实施方式,只要符合本发明的主旨,则其他实施方式也可以属于本发明的范畴。

本发明的较佳的实施例中,基于现有技术中存在的上述问题,现提供一种可扩展标记语言解析系统,配置于光传输网的适配层,如图1所示,包括:

第一存储模块1,用于保存预先配置的至少一解析规则集,解析规则集包括多条解析规则,每条解析规则包括路径信息以及对应的规则内容;

第二存储模块2,用于保存预先获取的连接适配层的至少一网元管理系统的基本信息,以及基本信息关联的适配对应的网元管理系统的解析规则集的存储路径;

解析模块3,分别连接第一存储模块1和第二存储模块2,解析模块3包括:

接收单元31,用于接收网元管理系统发送的采用可扩展标记语言的文档,并获取发送文档的网元管理系统的基本信息;

加载单元32,连接接收单元31,用于根据基本信息匹配得到对应的存储路径,并根据存储路径由第一存储模块中加载相应的解析规则集;

解析单元33,分别连接接收单元31和加载单元32,用于依次读取文档中的待解析元素,针对每个待解析元素,根据获取得到的待解析元素的当前路径信息由解析规则集中进行解析规则的匹配,并在匹配到对应的解析规则时,执行对应的规则内容以对待解析元素进行解析得到解析内容。

具体地,本实施例中,通过预先配置各网元管理系统进行xml文档解析适配的解析规则,并在相应的网元管理系统发送xml文档时,能够对应加载相应的解析规则进行解析得到对应的解析内容供上层应用处理使用,各个网元管理系统的报文差异和网管接口版本差异可以通过一套解析配置规则适配,适配层软件系统只需要部署一套即可,极大降低运维成本。

进一步具体地,由于不同网元管理系统可能需要不同的解析规则进行解析,因此,在对网元管理系统发送的采用可扩展标记语言的文档,即xml文档进行解析之前首先需要匹配到适配的解析规则集,进而根据解析规则集中的各条解析规则对xml文档进行解析。本实施例中,通过预先获取适配层接入的各网元管理系统的基本信息,进而将该基本信息与预先配置的解析规则集进行绑定并存储,为后续匹配适配的解析规则集提供支撑。

进一步地,在匹配得到相应的解析规则集后可以开始读取xml文档中的文件内容,每次读取xml文档中的一个元素作为当前待解析元素,针对该当前待解析元素,在起始标记位置获取当前待解析元素的节点路径作为当前路径信息,随后根据该当前路径信息与解析规则集中各解析规则对应的路径信息进行对比。作为优选,xml文档中并非所有内容均是有效内容或所需内容,因此,在配置解析规则时,对于非有效内容或非所需内容,可以不进行解析规则的配置,进而在进行上述路径信息的对比时,有可能出现部分元素匹配不到路径信息,说明解析规则集中未配置该元素的解析规则,该元素被认为是非有效内容或非所需内容,此时,直接跳过,进行下一个元素的解析,如果匹配到路径信息,则获取对应的解析规则,进而可以根据该解析规则对该元素进行解析,同时说明该元素被认为是有效内容或所需内容,通过有选择性地进行解析,在能够获得有效内容或所需内容的同时有效提升解析效率,省去了不必要内容的解析过程。对于xml文档中的各待解析元素,重复执行上述解析过程,直至xml文档全部读取结束,随后可以根据需求将解析内容提供给上层应用处理使用,使得上层运营支撑系统能够实现网络的端到端管控。

本发明的较佳的实施例中,解析规则集被配置为包括:

占位符部分,被配置为存储各解析规则的占位符;

前缀部分,被配置为存储各解析规则的通用前缀;

规则内容部分,被配置为存储各解析规则中去除占位符和通用前缀的剩余内容。

具体地,本实施例中,通过将占位符以及解析规则的通用前缀统一存储,方便对其进行配置且简化了编写配置操作。

本发明的较佳的实施例中,剩余内容包括去除通用前缀的节点路径以及规则内容;

则针对每条解析规则,解析单元33由解析规则集中获取通用前缀以及剩余内容中的去除通用前缀的节点路径处理得到路径信息,以与当前路径信息进行匹配。

本发明的较佳的实施例中,规则内容包括标签位置标记和解析动作,标签位置标记包括起始标签位置、文本标签位置和结束标签位置;

则解析单元33包括:

读取子单元331,用于在匹配到对应的解析规则时,读取规则内容中起始标签位置的声明头获取待解析元素的数据结构;

第一解析子单元332,连接读取子单元331,用于在数据结构为哈希表结构时,根据文本标签位置读取待解析元素的文本值,随后根据结束标签位置关联的解析动作对文本值进行处理得到待解析元素的解析内容;

第二解析子单元333,连接读取子单元332,用于在数据结构为链表结构时,根据文本标签位置读取待解析元素的文本值,随后根据结束标签位置关联的解析动作将文本值以分隔符拼接的形式赋值给规则内容中预先配置的对象字段作为解析内容。

本发明的较佳的实施例中,数据结构为哈希表结构时,解析动作包括根据声明头中预先定义的标签与对象字段的映射关系将作为标签的文本值赋值给对象字段,或

根据映射关系将作为标签的文本值以及数据结构的键值赋值给对象字段,或

根据映射关系将作为标签的文本值以及键值赋值给对象字段,并在对象字段中存在一历史值时,将文本值和键值追加至历史值之后,或

将文本值转换成json字符串后赋值给对象字段,或

将文本值拼接形成一字符串后赋值给对象字段,或

将文本值赋值给规则内容中预先配置的一预设字段。

具体地,本实施例中,上述解析动作可以通过相应的动作函数实现,其中,根据声明头中预先定义的标签与对象字段的映射关系将作为标签的文本值赋值给对象字段可以通过mapping函数实现;根据映射关系将作为标签的文本值以及数据结构的键值赋值给对象字段可以通过mappingwithkey函数实现;根据映射关系将作为标签的文本值以及键值赋值给对象字段,并在对象字段中存在一历史值时,将文本值和键值追加至历史值之后可以通过mappingappendwithkey函数实现;将文本值转换成json字符串后赋值给对象字段可以通过json函数实现;将文本值拼接形成一字符串后赋值给对象字段可以通过appengwithkey函数实现;将文本值赋值给规则内容中预先配置的一预设字段可以通过map函数实现。

本发明的较佳的实施例中,适配层通过网元管理系统的访问地址与网元管理系统建立连接,则接收单元通过访问地址获取发送文档的网元管理系统的基本信息。

本发明的较佳的实施例中,基本信息包括网元管理系统的厂家标识和软件版本。

本发明的较佳的实施例中,解析规则集按照分层目录结构存储于第一存储模块中,分层目录结构将厂家标识作为第一层目录,将软件版本作为第二层目录。

具体地,本实施例中,以厂家标识包括华为和中兴为例,其中,第一层目录为华为和中兴,第二层目录包括版本1,版本2,若发送xml文档的网元管理系统所述华为厂家,且其为版本2,则对应的解析规则集的存储路径为华为以及华为对应的版本2,解析单元根据该存储路径可以定位解析规则集,进而根据解析规则集解析该xml文档。

本发明还提供一种可扩展标记语言解析方法,应用于上述的可扩展标记语言解析系统,可扩展标记语言解析系统中预先配置有至少一解析规则集,解析规则集包括多条解析规则,每条解析规则包括路径信息以及对应的规则内容;

可扩展标记语言解析系统中还配置有预先获取的连接适配层的至少一网元管理系统的基本信息,以及基本信息关联的适配对应的网元管理系统的解析规则集的存储路径;

如图2所示,则可扩展标记语言解析方法包括:

步骤s1,可扩展标记语言解析系统接收网元管理系统发送的采用可扩展标记语言的文档,并获取发送文档的网元管理系统的基本信息;

步骤s2,可扩展标记语言解析系统根据基本信息匹配得到对应的存储路径,并根据存储路径加载相应的解析规则集;

步骤s3,可扩展标记语言解析系统依次读取文档中的待解析元素作为当前待解析元素;

步骤s4,针对每个当前待解析元素,可扩展标记语言解析系统根据获取得到的当前待解析元素的当前路径信息由解析规则集中进行解析规则的匹配,是否匹配到对应的解析规则:

若否,则转向步骤s5;

若是,则执行对应的规则内容以对当前待解析元素进行解析得到解析内容;

步骤s5,可扩展标记语言解析系统判断文档中的所有待解析元素是否均解析完成:

若是,则退出;

若否,则将下一个待解析元素作为当前待解析元素,随后返回步骤s4。

本发明的较佳的实施例中,规则内容包括标签位置标记和解析动作,标签位置标记包括起始标签位置、文本标签位置和结束标签位置;

则步骤s4中,执行对应的规则内容对当前待解析元素进行解析的解析过程包括:

可扩展标记语言解析系统读取规则内容中起始标签位置的声明头获取待解析元素的数据结构;

在数据结构为哈希表结构时,根据文本标签位置读取待解析元素的文本值,随后根据结束标签位置关联的解析动作对文本值进行处理得到待解析元素的解析内容;

在数据结构为链表结构时,根据文本标签位置读取待解析元素的文本值,随后根据结束标签位置关联的解析动作将文本值以分隔符拼接的形式赋值给规则内容中预先配置的对象字段作为解析内容。

以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1