[发明专利]一种元素名的处理方法及系统有效
申请号: | 201711395073.5 | 申请日: | 2017-12-21 |
公开(公告)号: | CN108132999B | 公开(公告)日: | 2019-06-04 |
发明(设计)人: | 杜立翠;崔静燕 | 申请(专利权)人: | 恒宝股份有限公司 |
主分类号: | G06F16/80 | 分类号: | G06F16/80 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 212355 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 字符串 申请 预处理 数据处理领域 预处理运算 缓冲区 报文解析 处理元素 存储空间 响应 失败 | ||
本申请公开了一种元素名的处理方法及系统,涉及数据处理领域,用于解决现有技术中缓冲区的存储空间有限,容易导致报文解析失败的技术问题。本申请的元素名的处理方法,包括:确定第i层的元素名的类型,i为大于等于1的自然数;获取第i层的元素名的长度;比较第i层的元素名的长度与标准字符串长度;响应于第i层的元素名的长度大于标准字符串长度,对第i层的元素名进行预处理运算,使预处理后的第i层的元素名的结果的长度等于标准字符串长度。本申请主要用于处理元素名。
技术领域
本申请涉及数据处理领域,具体涉及一种元素名的处理方法及系统。
背景技术
图1是本申请的XML元素内各部分的名称定义示例图。一个完整的报文包括若干嵌套的元素,元素由起始标签、元素文本值及结束标签组成。判断一个元素中结束标签内的元素名和起始标签内的元素名是否匹配,是评判报文是否符合报文规范的必要条件,固件有义务完成元素起始/结束标签中元素名的判定。
现以一段XML报文示例:
目前固件中的处理是分配一个缓冲区用于缓存元素名,缓冲区内缓存的元素名通常为嵌套的多个元素名。图2是缓冲区内的元素名的数据存储格式示意图,如图2所示,XML元素的元素名在缓冲区的存储格式为TLV(Tag+Len+EName_n)单元格式,其中Tag表示当前元素所在的层数,Len表示当前元素名的长度,EName_n为第n层元素的起始标签元素名,n为自然数。
元素名缓存时所使用的进制为十六进制。缓冲区的初始值为0xFF,Tag占用一个字节,Len占用2字节,每个元素名分别独立占用一个TLV(Tag+Len+EName_n)单元,当出现嵌套时,就需要连续存入缓冲区中,类似于压栈。要退出第N层时,将第N层元素名占用的内存置为0xFF,以备后续继续使用。下面以上述XML报文示例为例,来演示元素名缓存的占用情况。
图3是以上述报文示例展示的部分元素名缓存的示意图。如图3所示,缓冲区所能容纳的元素名能力为:(L0+3)+(L1+3)+......+(Ln+3)≤缓冲区的内存。其中3B=1B的Tag+2B的Len,Li表示第i个元素名的长度。在缓冲区的内存固定时,固件能处理的报文中包含的元素个数及嵌套的层数仅受限于每个元素名的长度。
网银控件实际下发的报文在单个元素名过长、嵌套的层数过多时,会因为缓冲区的内存有限,导致正常的报文解析失败。
发明内容
本申请的目的在于提出一种元素名的处理方法及系统,用于解决现有技术中缓冲区的存储空间有限,容易导致报文解析失败的技术问题。
本申请的元素名的处理方法,包括:确定第i层的元素名的类型,i为大于等于1的自然数;获取第i层的元素名的长度;比较第i层的元素名的长度与标准字符串长度;响应于第i层的元素名的长度大于标准字符串长度,对第i层的元素名进行预处理运算,使预处理后的第i层的元素名的结果的长度等于标准字符串长度。
可选地,第i层的元素名的类型包括起始标签元素名和结束标签元素名。
优选地,响应于第i层的起始标签元素名的长度大于标准字符串长度,对第i层的起始标签元素名进行预处理运算,使预处理后的第i层的起始标签元素名的结果的长度等于标准字符串长度,并将预处理后的第i层的起始标签元素名的结果存储在缓冲区中。
优选地,响应于第i层的起始标签元素名的长度小于等于标准字符串长度,直接将第i层的起始标签元素名存储在缓冲区中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于恒宝股份有限公司,未经恒宝股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711395073.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种人员关系分析方法和系统
- 下一篇:一种元数据存储方法、装置和服务器