CN113949749A - Xml报文处理方法及装置 - Google Patents

Xml报文处理方法及装置 Download PDF

Info

Publication number
CN113949749A
CN113949749A CN202111202818.8A CN202111202818A CN113949749A CN 113949749 A CN113949749 A CN 113949749A CN 202111202818 A CN202111202818 A CN 202111202818A CN 113949749 A CN113949749 A CN 113949749A
Authority
CN
China
Prior art keywords
node
message
label
xml
tag
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
Application number
CN202111202818.8A
Other languages
English (en)
Other versions
CN113949749B (zh
Inventor
朱晓玲
劳伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Agricultural Bank of China
Original Assignee
Agricultural Bank of China
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Agricultural Bank of China filed Critical Agricultural Bank of China
Priority to CN202111202818.8A priority Critical patent/CN113949749B/zh
Publication of CN113949749A publication Critical patent/CN113949749A/zh
Application granted granted Critical
Publication of CN113949749B publication Critical patent/CN113949749B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请提供一种XML报文处理方法及装置,其中,方法包括:获取可扩展标记语言XML报文;从所述XML报文中获取报文节点;确定与所述报文节点对应的节点层级;获取与各节点层级对应的节点解析配置;根据各节点层级对应的节点解析配置,确定报文解析程序;采用所述报文解析程序,对所述XML报文进行报文解析。本申请提供的XML报文处理方法实现了对节点解析配置的复用,并便捷、快速地形成报文解析程序,以进行XML报文的解析。本申请解决了现有的代码解析的代码解析程序难以复用,不便于业务的升级和新业务的开发的问题。

Description

XML报文处理方法及装置
技术领域
本申请涉及软件开发技术领域,尤其涉及一种XML报文处理方法及装置。
背景技术
可扩展标记语言(Extensible Markup Language,简称:XML)报文是业务处理中常用的报文格式。例如金融行业的后台运营平台常采用固定的XML报文格式进行关联系统之间的信息传递。系统在接收报文后,进行业务处理时需对接收报文进行解析。系统需要将报文传递给其它关联系统时也涉及报文的解析以及解析后的组包。
现有成熟的XML报文解析方法是代码解析。代码解析通过对接收到的报文按照报文体中的节点排布顺序,编制与节点排布顺序一一对应的代码解析程序,然后执行代码解析程序进行逐个节点的解析,以获得每个节点的代码解析结果。代码解析结果用于业务处理或组包成新报文进行信息传递。
在进行业务升级或类似新业务开发过程中,现有的代码解析的代码解析程序难以复用,不便于业务的升级和新业务的开发。
发明内容
本申请提供一种XML报文处理方法及装置,以解决现有的代码解析的代码解析程序难以复用,不便于业务的升级和新业务的开发的问题。
第一方面,本申请提供一种XML报文处理方法,包括:
获取可扩展标记语言XML报文;
从所述XML报文中获取报文节点;
确定与所述报文节点对应的节点层级;
获取与各节点层级对应的节点解析配置;
根据各节点层级对应的节点解析配置,确定报文解析程序;
采用所述报文解析程序,对所述XML报文进行报文解析。
第二方面,本申请提供一种XML报文处理装置,包括:
处理器和存储器;
所述存储器存储所述处理器可执行指令;
其中,所述处理器执行所述存储器存储的可执行指令,使得所述处理器执行如上所述的方法。
第三方面,本申请提供一种存储介质,所述存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上所述的方法。
第四方面,本申请提供一种程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上所述的方法。
本申请提供的XML报文处理方法及装置,通过调取各节点层级对应的节点解析配置,进行层级处理形成报文解析程序,用以进行XML报文的解析。本申请提供的XML报文处理方法及装置实现了对节点解析配置的复用,并便捷、快速地形成报文解析程序,以进行XML报文的解析。本申请解决了现有的代码解析的代码解析程序难以复用,不便于业务的升级和新业务的开发的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术的XML报文解析系统图;
图2为本申请实施例提供的XML报文处理系统图;
图3为本申请实施例提供的XML报文处理流程图;
图4为本申请实施例提供的确定节点层级的流程图一;
图5为本申请实施例提供的确定节点层级的流程图二;
图6为本申请实施例提供的XML报文处理装置结构图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为现有技术的XML报文解析系统图。如图1所示,该XML报文解析系统包括报文提供设备11和业务处理设备13。当报文提供设备11向业务处理设备13发送报文后,需人工针对业务处理设备13接收的报文进行代码解析程序的编制,然后将编制的代码解析程序录入业务处理设备13,最后由业务数据设备13运行代码解析程序,对报文进行解析。
通常而言,一种业务对应一种报文标准,一种报文标准对应一种代码解析程序。当开发新的业务或对原有业务进行升级时,报文标准会发生较大或较小的改变。一旦报文标准发生变化,原有的代码解析程序将无法复用,而需要重新针对改变后的报文标准编制新的代码解析程序。此外,业务数据设备13采用现有代码解析方法对报文进行解析时,是按报文节点排布顺序进行逐个节点顺序解析。当一个高层节点下属有多层子节点时,在整个报文解析过程中,下属节点会被多次遍历,进而增加报文解析时间,影响报文的解析效率。
示例性地,如下所示,有一业务A,其报文标准A0格式为:
Figure BDA0003305648410000031
Figure BDA0003305648410000041
当报文提供设备11向业务处理设备13提供了如下所示的报文A01:
Figure BDA0003305648410000042
Figure BDA0003305648410000051
人工针对报文标准A0向业务处理设备13录入报文标准A0对应的代码解析程序A0J,A0J具体如下:
String msg=getMessage();//获取报文
int i=msg.indexOf("<MsgId>");//获取标签开始的位置
int j=msg.indexOf("</MsgId>");//获取标签结束的位置
String msgId=msg.subString(i,j);//获取msgId标签的值
int a=msg.indexOf("<Amt>");//获取标签开始的位置
int b=msg.indexOf("</Amt>");//获取标签结束的位置
String amt=msg.subString(a,b);//获取amt标签的值
int a=msg.indexOf("<BondList>");//获取标签开始的位置
int b=msg.indexOf("</BondList>");//获取标签结束的位置
String BondList=msg.subString(a,b);//获取BondList标签的值
int a=msg.indexOf("<Bond1>");//获取标签开始的位置
int b=msg.indexOf("</Bond1>");//获取标签结束的位置
String Bond1=msg.subString(a,b);//获取Bond1标签的值
int a=msg.indexOf("<券号>");//获取标签开始的位置
int b=msg.indexOf("</券号>");//获取标签结束的位置
String券号=msg.subString(a,b);//获取券号标签的值
int a=msg.indexOf("<金额>");//获取标签开始的位置
int b=msg.indexOf("</金额>");//获取标签结束的位置
String金额=msg.subString(a,b);//获取金额标签的值
int a=msg.indexOf("<Bond2>");//获取标签开始的位置
int b=msg.indexOf("</Bond2>");//获取标签结束的位置
String Bond2=msg.subString(a,b);//获取Bond2标签的值
int a=msg.indexOf("<券号>");//获取标签开始的位置
int b=msg.indexOf("</券号>");//获取标签结束的位置
String券号=msg.subString(a,b);//获取券号标签的值
int a=msg.indexOf("<金额>");//获取标签开始的位置
int b=msg.indexOf("</金额>");//获取标签结束的位置
String金额=msg.subString(a,b);//获取金额标签的值
int a=msg.indexOf("<Bond3>");//获取标签开始的位置
int b=msg.indexOf("</Bond3>");//获取标签结束的位置
String Bond3=msg.subString(a,b);//获取Bond3标签的值
int a=msg.indexOf("<券号>");//获取标签开始的位置
int b=msg.indexOf("</券号>");//获取标签结束的位置
String券号=msg.subString(a,b);//获取券号标签的值
int a=msg.indexOf("<金额>");//获取标签开始的位置
int b=msg.indexOf("</金额>");//获取标签结束的位置
String金额=msg.subString(a,b);//获取金额标签的值
int a=msg.indexOf("<BondList2>");//获取标签开始的位置
int b=msg.indexOf("</BondList2>");//获取标签结束的位置
String BondList=msg.subString(a,b);//获取BondList2标签的值
int a=msg.indexOf("<Bond1>");//获取标签开始的位置
int b=msg.indexOf("</Bond1>");//获取标签结束的位置
String Bond1=msg.subString(a,b);//获取Bond1标签的值
int a=msg.indexOf("<券号>");//获取标签开始的位置
int b=msg.indexOf("</券号>");//获取标签结束的位置
String券号=msg.subString(a,b);//获取券号标签的值
int a=msg.indexOf("<金额>");//获取标签开始的位置
int b=msg.indexOf("</金额>");//获取标签结束的位置
String金额=msg.subString(a,b);//获取金额标签的值
具体地,每个节点包括开始标签、结束标签以及开始标签与结束标签间隔内的标签值。业务处理设备13按上述代码解析程序A0J所示的节点解析流程对报文中的各个节点进行解析时,首先获取标签开始的位置即开始标签,其中开始标签也代表节点的开始位置标志。然后业务处理设备13从标签开始的位置开始对报文进行遍历,直到获取标签结束的位置处的结束标签为止。遍历过程中遍历的内容为开始标签和结束标签对应的标签值。
示例性地,当业务处理设备13获取报文A01并对该报文进行解析时,按照报文中节点排布顺序解析如下:
获取节点“MsgId”的开始标签“<MsgId>”,从开始标签“<MsgId>”的位置开始遍历,直到获取结束标签“</MsgId>”,从开始标签“<MsgId>”的位置到获取结束标签“</MsgId>”过程中遍历的内容“20181211XXXX”即为标签“MsgId”的值,然后对“20181211XXXX”按照预设的赋值策略进行赋值,即获得标签“MsgId”对应的目的值,接着将包含标签及对应的值的解析结果保存在数据库中;
获取节点“Amt”的开始标签“<Amt>”,从开始标签“<Amt>”的位置开始遍历,直到获取结束标签“</Amt>”,从开始标签“<Amt>”的位置到获取结束标签“</Amt>”过程中遍历的内容“100.00”即为标签“Amt”的值,然后对“100.00”按照预设的赋值策略进行赋值,即获得标签“Amt”对应的目的值,接着将包含标签及对应的值的解析结果保存在数据库中;
获取节点“BondList”的开始标签“<BondList>”,从开始标签“<BondList>”的位置开始遍历,具体地,遍历了标签名称为Bond1到标签名称为Bond3的节点的所有内容及下属的子节点“券号”、“金额”的所有内容,直到获取到“BondList”节点的结束标签“</BondList>”。从开始标签“<BondList>”的位置开始,到获取到结束标签“</BondList>”的过程中,遍历的标签名称为“Bond1”到标签名称为“Bond3”的节点的所有内容及其下属的子节点“券号”、“金额”的所有内容为标签“BondList”的值。然后,根据预设的赋值策略对“BondList”节点的值进行赋值,即完成对节点“BondList”的解析,接着将包含标签及对应的值的解析结果保存在数据库中;
获取节点“Bond1”的开始标签“<Bond1>”,从开始标签“<Bond1>”的位置开始遍历,直到获取结束标签“</Bond1>”,从开始标签“<Bond1>”的位置到获取结束标签“</Bond1>”过程中遍历的内容“<券号>、a1、</券号>、<金额>、200、</金额>”即为标签“Bond1”的值,然后对标签“Bond1”的值按照预设的赋值策略进行赋值,即获得标签“Bond1”对应的目的值,接着将包含标签及对应的值的解析结果保存在数据库中;
获取节点“券号”的开始标签“<券号>”,从开始标签“<券号>”的位置开始遍历,直到获取结束标签“</券号>”,从开始标签“<券号>”的位置到获取结束标签“</券号>”过程中遍历的内容“a1”即为标签“券号”的值,然后对标签“券号”的值按照预设的赋值策略进行赋值,即获得标签“券号”对应的目的值,接着将包含标签及对应的值的解析结果保存在数据库中;
...;
同理地,直到将上述报文的每一个节点解析、保存完毕。
业务处理设备13完成上述报文A01的节点解析后,业务处理设备13从数据库中调用报文A01的解析结果进行业务处理。若业务处理设备13需要将上述报文传送到另一系统b,则从数据库中调用上述报文的保存值按系统b的报文标准组装出B报文进行传送。
进一步地,当需在业务A的基础上进行业务升级,如增加或修改部分节点内容,将业务A升级为业务C时。相应地,业务C对应的报文标准C0相对于报文标准A0也将进行节点增加和修改。示例性地,升级后的业务C的报文标准C0如下所示:
Figure BDA0003305648410000091
Figure BDA0003305648410000101
当工作人员需对报文标准C0编制代码解析程序时,可以先在代码解析程序A0J的基础上找出报文标准C0节点变化相关的待修改节点解析程序,然后对待修改节点解析程序进行修改。
示例性地,由上述报文标准C0和报文标准A0可知,报文标准C0在报文标准A0的节点“金额”下增加了下属子节点“本金”和“利率”,则代码解析程序A0J中相应的待修改节点解析程序为节点“BondList”、“Bond1”、“金额”、“Bond2”、“金额”、“Bond2”、“金额”、“BondList2”、“Bond1”、“金额”的节点解析程序。若报文标准C0相对于报文标准A0而言修改比较复杂或较多时,基于原始代码解析程序A0J修改获得报文标准C0的代码解析程序C0J的整个工作将变得复杂而困难。而且,一旦A0J中一个待修改节点解析程序修改错误,将导致整个解析程序C0J无法使用。因此,工作人员常采取根据报文标准C0重新编制代码解析程序的方式。
由上可知,一种业务对应一种报文标准,一种报文标准对应一种代码解析程序。若接收报文的报文标准发生变化,原代码解析程序难以复用,而需针对新的报文标准对应编制新的代码解析程序。因此,现有的代码解析方法,当业务发生变化时,原代码解析程序无法复用,需对新业务重新人工编制新的代码解析程序,由此极大限制了业务的升级或新业务的开发。
此外,现有的代码解析方法按节点排布顺序对各节点进行逐个解析,下层节点在其所属的每一个上层节点的解析时,都会被遍历,如上述节点“BondList”的子节点“券号、金额”在每一次上层节点解析时,都会被遍历。这种下层节点的多次遍历造成报文解析时间的重复耗费,进而降低了整个报文解析的效率。
对此,本申请提出一种XML报文处理方法,以解决现有的代码解析方法中的代码解析程序不能在不同的业务开发中进行复用,进而限制业务的升级或新业务开发的问题。下面结合部分实施例对本申请的XML报文处理方法进行说明。由于报文是在对应报文标准的基础上填入标签值,因此,在本申请中,报文标准和报文在报文解析程序或现有的代码解析程序的生成过程中具有同等的效果。
图2为本申请实施例提供的XML报文处理系统图。如图2所示,该XML报文处理系统包括报文提供设备11、XML处理设备12和业务处理设备13,XML处理设备12分别与报文提供设备11和业务处理设备13连接。报文提供设备11向XML处理设备12发送报文,然后由XML处理设备12对报文进行解析,将解析结果发送给业务处理设备13,用于业务处理设备13的业务处理或报文组包后的再次传输。
具体地,XML处理设备12通过人工录入获取XML报文可能用到的节点的节点解析配置,并对各节点解析配置进行存储,形成节点解析配置库。具体地,节点的节点解析配置结构包括目的标签(destKey="")、赋值配置(changeType="")和来源标签(sourceKey=""),该结构代表从报文节点的数据来源参数(对应于来源标签)根据赋值配置获得报文节点对应的目的参数(对应于目的标签)。其中赋值配置为对节点中的标签值的赋值方式,包括但不限于常量解析(Const)、变量解析(Mapping)、表达式解析(Expression)、方法解析(Function)等赋值方式。通常而言,每一节点对应的赋值配置是根据行业标准或业务设计而预先确定的。XML处理设备12首次获取一种业务对应的XML报文后,XML处理设备12从该XML报文中获取报文节点。接着,XML处理设备12对报文节点对应的节点层级进行确定,获得节点层级。然后,XML处理设备12从节点解析配置库中调取各节点层级对应的节点解析配置,按照节点层级进行层级处理,生成报文解析程序。该方法适用于任何一种XML报文的报文解析程序的生成,通过直接调用节点解析配置按照XML报文的节点层级进行层级处理,即可快速、便捷地生成XML报文对应的报文解析程序,实现对节点解析配置的重复使用。
最后,XML处理设备12执行该报文解析程序,实现对XML报文的解析,从而获得解析结果。XML处理设备12将解析结果发送给业务处理设备13,用于业务处理或报文组包后的再次传输。
本申请实施例提供的XML报文处理方法,通过调取各节点层级对应的节点解析配置,进行层级处理形成报文解析程序,用以进行XML报文的解析。本申请实施例提供的XML报文处理方法在通过直接调用节点解析配置进行层级处理,实现了对节点解析配置的复用,并便捷、快速地形成任何业务对应的报文解析程序,以进行业务报文的解析。本申请实施例提供的XML报文处理方法解决了现有的代码解析的解析程序难以复用,不便于业务的升级和新业务的开发的问题。
下面结合图3、图4和图5对图2所示实施例进行进一步说明。图3为本申请实施例提供的XML报文处理流程图。图3所示实施例的执行主体为图2所示实施例中的XML处理设备12。如图3所示,本申请提供的XML报文处理方法包括:
S301、获取可扩展标记语言XML报文;
具体而言,XML处理设备12从报文提供设备11中获取可扩展标记语言XML报文,并对该XML报文进行储存。
示例性地,XML处理设备12从报文提供设备11中获取上述所示的A01报文,并将A01报文储存在XML处理设备12中,便于反复查询和使用。
S302、从XML报文中获取报文节点;
具体而言,XML处理设备12从XML报文中获取报文节点,具体地,XML处理设备12从XML报文中获取根节点下的每个报文节点的开始标签、标签值和结束标签。
示例性地,XML处理设备12从A01报文中获取根节点“Document”下的每个报文节点的开始标签、标签值和结束标签。
S303、确定与报文节点对应的节点层级;
具体而言,XML处理设备12通过节点中的标签确定与报文节点对应的节点层级。
可选地,若XML处理设备12获取的报文是格式标准的报文,可以采用图4所示的流程确定与报文节点对应的节点层级,图4为本申请实施例提供的确定节点层级的流程图一,该流程包括:
S3011、获取报文节点的开始标签;
具体而言,XML处理设备12获取根节点下每个报文节点的开始标签,并按报文的格式标准进行排布。示例性地,XML处理设备12获取A01报文的根节点“Document”下每个报文节点的开始标签后排布如下:
Figure BDA0003305648410000131
Figure BDA0003305648410000141
S3012、对开始标签按开始标签位置长度进行分类,获得标签类别;
具体而言,XML处理设备12对步骤S3011获取的开始标签按开始标签位置长度进行分类,获得标签类别。具体地,开始标签位置长度为开始标签所在行的起始端到开始标签位置的空格符数量。
示例性地,XML处理设备12对其在步骤S3011中获取的A01报文的开始标签按位置长度分类后,获得的标签类别如表1所示:
表1标签类别
一层标签 二层标签 三层标签
<MsgId>
<Amt>
<BondList>
<Bond1>
<券号>
<金额>
<Bond2>
<券号>
<金额>
<Bond3>
<券号>
<金额>
<BondList2>
<Bond1>
<券号>
<金额>
S3013、将标签类别进行映射处理,获得与报文节点对应的节点层级;
具体而言,报文标准中,上层节点和标签位置长度比下层节点的标签位置长度短,当根据开始标签的位置长度的分类即可获得报文节点的节点层级。由此可知,标签类别与报文节点的节点层级是一一对应的关系。XML处理设备12将其在步骤S3012获得的标签类别进行映射处理,即可获得与报文节点对应的节点层级。
示例性地,XML处理设备12对表1所示的标签类别进行映射处理,获得A01报文的报文节点对应的节点层级,如表2所示:
表2节点层级
Figure BDA0003305648410000151
可选地,若XML处理设备12获取的报文是格式非标准的报文,示例性地,XML处理设备12获取的A01报文的格式是非标准的,格式非标准的A01报文具体如下所示:
{H:0290929XXXXXX HVPS1031000XXXXX HVPSXXXXXXXXMLhvpsXMLhvps.111.001.01 9092900000074701XXXXXXXX}
{S:0}
<?xml version=\"1.0\"encoding=\"UTF-8\"standalone=\"no\"?>
<Document xmlns=\"XXXXXXXXXXX\"
xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><MsgId>20181211XXXX</MsgId><Amt>100.00</Amt><BondList><Bond1><券号>a1</券号><金额>200</金额></Bond1><Bond2><券号>a2</券号><金额>300</金额></Bond2><Bond3><券号>a3</券号><金额>100</金额></Bond3></BondList><BondList2><Bond1><券号>a1</券号><金额>200</金额></Bond1></BondList2></Document>
可以采用图5所示的流程确定与报文节点对应的节点层级,图5为本申请实施例提供的确定节点层级的流程图二,该流程包括:
S3021、获取报文节点的开始标签、结束标签;
具体而言,XML处理设备12从步骤S302中获取的报文节点中获取每一个报文节点的开始标签和结束标签。具体地,开始标签代表报文节点开始的标志,结束标签代表报文节点结束的标志。
示例性地,XML处理设备12从上述格式非标准的A01报文中获取的报文节点的开始标签和结束标签如下所示:
<Document xmlns=\"XXXXXXXXXXX\"
xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><MsgId></MsgId><Amt></Amt><BondList><Bond1><券号></券号><金额></金额></Bond1><Bond2><券号></券号><金额></金额></Bond2><Bond3><券号></券号><金额></金额></Bond3></BondList><BondList2><Bond1><券号></券号><金额></金额></Bond1></BondList2></Document>
S3022、将开始标签和结束标签按报文中的节点排布顺序进行排布,获得标签序列;
具体而言,XML处理设备12将开始标签和结束标签按报文中的节点排布的先后顺序进行排布,并去掉第一个开始标签和最后一个结束标签,即根节点的开始标签和结束标签,获得标签序列。
示例性地,XML处理设备12将步骤S3021获取的A01报文的开始标签和结束标签按报文中的节点排布的先后顺序进行排布后,获得的标签序列如下表3所示:
表3标签序列
<MsgId>
</MsgId>
<Amt>
</Amt>
<BondList>
<Bond1>
<券号>
</券号>
<金额>
</金额>
</Bond1>
<Bond2>
<券号>
</券号>
<金额>
</金额>
</Bond2>
<Bond3>
<券号>
</券号>
<金额>
</金额>
</Bond3>
</BondList>
<BondList2>
<Bond1>
<券号>
</券号>
<金额>
</金额>
</Bond1>
</BondList2>
S3023、从标签序列中依次提取各层级的成对开始标签和结束标签,获得标签层级;
具体而言,XML处理设备12从步骤S3022的标签序列中依次提取各层级的成对开始标签和结束标签,获得标签层级。具体地,XML处理设备12按如下步骤从标签序列中依次提取各层级的成对开始标签和结束标签,获得标签层级:
S30231、从标签序列中提取报文节点成对的开始标签和结束标签中的间隔标签,获得间隔标签和一个标签层;
示例性地,XML处理设备12从表3所示的标签序列中提取报文节点成对的开始标签和结束标签中的间隔标签,获得如表4所示的间隔标签和一个标签层。
表4
标签层一 间隔标签
<MsgId>
</MsgId>
<Amt>
</Amt>
<BondList>
<Bond1>
<券号>
</券号>
<金额>
</金额>
</Bond1>
<Bond2>
<券号>
</券号>
<金额>
</金额>
</Bond2>
<Bond3>
<券号>
</券号>
<金额>
</金额>
</Bond3>
</BondList>
<BondList2>
<Bond1>
<券号>
</券号>
<金额>
</金额>
</Bond1>
</BondList2>
S30232、对间隔标签重复上述间隔标签的提取,直到报文节点成对的开始标签和结束标签中无间隔标签,获得各标签层;
示例性地,XML处理设备12对表4所示的间隔标签重复上述间隔标签的提取,直到报文节点成对的开始标签和结束标签中无间隔标签,获得各标签层,如表5所示的标签层一、标签层二和标签层三。
表5
标签层一 标签层二 标签层三
<MsgId>
</MsgId>
<Amt>
</Amt>
<BondList>
<Bond1>
<券号>
</券号>
<金额>
</金额>
</Bond1>
<Bond2>
<券号>
</券号>
<金额>
</金额>
</Bond2>
<Bond3>
<券号>
</券号>
<金额>
</金额>
</Bond3>
</BondList>
<BondList2>
<Bond1>
<券号>
</券号>
<金额>
</金额>
</Bond1>
</BondList2>
S30233、将标签层按获得的先后顺序进行排列,获得标签层级;
示例性地,XML处理设备12将标签层按获得的先后顺序进行排列,获得标签层级,如表5所示。
S3024、将标签层级进行映射处理,获得与报文节点对应的节点层级;
示例性地,XML处理设备12将表5所示的标签层级进行映射处理,获得与报文节点对应的如表2所示的节点层级。
同理地,图5所示的确定与报文节点对应的节点层级方法同样适用于格式标准的XML报文。
S304、获取与各节点层级对应的节点解析配置;
具体而言,XML处理设备12根据步骤S303中获得节点层级中的节点名称,通常而言,节点名称与开始标签和结束标签中的标签名称相同,直接从XML处理设备12储存的节点解析配置库中获取与各节点层级对应的节点解析配置。
示例性地,XML处理设备12获取的表2所示各节点层级对应的节点解析配置如下所示:
一层节点的节点解析配置:
<map destKey="msgId"changeType="MAPPING"sourceKey="MsgId"/>
<map destKey="amt"changeType="FUNCTION"sourceKey="XXX.XXX.XXX"parameter="Amt"/>
<map destKey="bondList"changeType="XmlNodeRepeat"sourceKey="BondList"/>
<map destKey="bondList2"changeType="XmlNodeRepeat"sourceKey="BondList2"/>
二层节点的节点解析配置:
<map destKey="bond1"changeType="XmlNodeRepeat"sourceKey="Bond1"/>
<map destKey="bond2"changeType="XmlNodeRepeat"sourceKey="Bond2"/>
<map destKey="bond3"changeType="XmlNodeRepeat"sourceKey="Bond3"/>
<map destKey="bond1"changeType="XmlNodeRepeat"sourceKey="Bond1"/>
三层节点的节点解析配置:
<map destKey="券号"changeType="CONST"sourceKey="券号"/>
<map destKey="金额"changeType="CONST"sourceKey="金额"/>
<map destKey="券号"changeType="CONST"sourceKey="券号"/>
<map destKey="金额"changeType="CONST"sourceKey="金额"/>
<map destKey="券号"changeType="CONST"sourceKey="券号"/>
<map destKey="金额"changeType="CONST"sourceKey="金额"/>
<map destKey="券号"changeType="CONST"sourceKey="券号"/>
<map destKey="金额"changeType="CONST"sourceKey="金额"/>
S305、根据各节点层级对应的节点解析配置,确定报文解析程序;
具体而言,XML处理设备12通过步骤S304获取各节点层级对应的节点解析配置后,根据获取的各节点层级对应的节点解析配置,确定报文解析程序。具体地,XML处理设备12将步骤S304获取的节点解析配置按节点层级进行层级处理,获得报文解析程序。其中层级处理具体为对节点解析配置按节点层级进行分层组装,获得组装程序,然后对组装程序按节点层级进行层级逻辑复核和修订,获得报文解析程序。
示例性地,XML处理设备12根据步骤S304获取的各节点层级对应的节点解析配置,依次将节点解析配置按节点层级进行分层组装,并按表2所示节点层级进行层级逻辑复核、修订,获得如下所示的报文A01的报文解析程序A0P。具体地,由表2可知,节点“bondList”下属包含子节点“Bond1”、“Bond2”、“Bond3”,节点“bondList2”下属包含子节点“Bond1”。而且子节点“Bond1”、“Bond2”、“Bond3”下属包含下一子节点“券号”、“金额”。因此,相应的组装程序中节点“bondList”、“bondList2”、“Bond1”、“Bond2”、“Bond3”的节点解析配置中的来源标签需进行适应性的标签路径修订,进而获得准确的报文解析程序A0P。示例性地,对来源标签需进行适应性的标签路径修订,如节点“Bond1”的节点解析配置<map destKey="bond1"changeType="XmlNodeRepeat"sourceKey="Bond1"/>中的来源标签“sourceKey="Bond1"”修改为含有子节点路径的来源标签“sourceKey="./node/XXX.xml"”。
报文解析程序A0P如下所示:
一层XML
<requestMapping>
<!--场景代码-->
<map destKey="code"changeType="CONST"sourceKey="123"/>
<!--报文ID-->
<map destKey="msgId"changeType="MAPPING"sourceKey="MsgId"/>
<!--金额-->
<map destKey="amt"changeType="FUNCTION"sourceKey="XXX.XXX.XXX"parameter="Amt"/>
<!--债券代码-->
<map destKey="bondList"changeType="XmlNodeRepeat"sourceKey="./node/BondX.xml"/>
<map destKey="bondList2"changeType="XmlNodeRepeat"sourceKey="./node/BondX.xml"/>
</requestMapping>
二层/node/BondX.xml
<requestMapping>
<!--第一个债券-->
<map destKey="bond1"changeType="XmlNodeRepeat"sourceKey="./node/XXX.xml"/>
<map destKey="bond2"changeType="XmlNodeRepeat"sourceKey="./node/XXX.xml"/>
<map destKey="bond3"changeType="XmlNodeRepeat"sourceKey="./node/XXX.xml"/>
<!--第二个债券-->
<map destKey="bond1"changeType="XmlNodeRepeat"sourceKey="./node/XXX.xml"/>
</requestMapping>
三层/node/XXX.xml
<requestMapping>
<!--第一券额-->
<map destKey="券号"changeType="CONST"sourceKey="券号"/>
<map destKey="金额"changeType="CONST"sourceKey="金额"/>
<!--第二券额-->
<map destKey="券号"changeType="CONST"sourceKey="券号"/>
<map destKey="金额"changeType="CONST"sourceKey="金额"/>
<!--第三券额-->
<map destKey="券号"changeType="CONST"sourceKey="券号"/>
<map destKey="金额"changeType="CONST"sourceKey="金额"/>
<!--第四券额-->
<map destKey="券号"changeType="CONST"sourceKey="券号"/>
<map destKey="金额"changeType="CONST"sourceKey="金额"/>
</requestMapping>
可选地,若新业务是在旧业务的基础上进行下属层级的增加,则可直接调用旧业务的报文解析程序进行新增层级的节点解析配置的增加与所属的上一层级的节点解析配置的层级逻辑复核和修订即可。
示例性地,若业务A升级为业务C,业务C对应的报文解析程序除了可以按上述业务A(即报文A01)的报文解析程序的生成方式生成业务C的报文解析程序C0P外,还可以采用直接调用报文解析程序A0P进行简单的节点解析配置的增加和层级逻辑复核、修订生成C0P。
具体地,如上述报文标准C0所示,若业务C的报文标准C0只是在业务A的报文标准的基础上增加节点“金额”的下属子节点“本金”和“利率”。则直接调用报文解析程序A0P进行简单的节点解析配置的增加和层级逻辑复核、修订,即可生成如下所示的报文解析程序C0P:
一层XML
<requestMapping>
<!--场景代码-->
<map destKey="code"changeType="CONST"sourceKey="123"/>
<!--报文ID-->
<map destKey="msgId"changeType="MAPPING"sourceKey="MsgId"/>
<!--金额-->
<map destKey="amt"changeType="FUNCTION"sourceKey="XXX.XXX.XXX"parameter="Amt"/>
<!--债券代码-->
<map destKey="bondList"changeType="XmlNodeRepeat"sourceKey="./node/BondX.xml"/>
<map destKey="bondList2"changeType="XmlNodeRepeat"sourceKey="./node/BondX.xml"/>
</requestMapping>
二层/node/BondX.xml
<requestMapping>
<!--第一个债券-->
<map destKey="bond1"changeType="XmlNodeRepeat"sourceKey="./node/XXX.xml"/>
<map destKey="bond2"changeType="XmlNodeRepeat"sourceKey="./node/XXX.xml"/>
<map destKey="bond3"changeType="XmlNodeRepeat"sourceKey="./node/XXX.xml"/>
<!--第二个债券-->
<map destKey="bond1"changeType="XmlNodeRepeat"sourceKey="./node/XXX.xml"/>
</requestMapping>
三层/node/XXX.xml
<requestMapping>
<!--第一券额-->
<map destKey="券号"changeType="CONST"sourceKey="券号"/>
<map destKey="金额"changeType="XmlNodeRepeat"sourceKey="./node/YYY.xml"/>
<!--第二券额-->
<map destKey="券号"changeType="CONST"sourceKey="券号"/>
<map destKey="金额"changeType="XmlNodeRepeat"sourceKey="./node/YYY.xml"/>
<!--第三券额-->
<map destKey="券号"changeType="CONST"sourceKey="券号"/>
<map destKey="金额"changeType="XmlNodeRepeat"sourceKey="./node/YYY.xml"/>
<!--第四券额-->
<map destKey="券号"changeType="CONST"sourceKey="券号"/>
<map destKey="金额"changeType="XmlNodeRepeat"sourceKey="./node/YYY.xml"/>
四层/node/YYY.xml
<requestMapping>
<!--第一金额-->
<map destKey="本金"changeType="CONST"sourceKey="券号"/>
<map destKey="利息"changeType="CONST"sourceKey="利息"/>
<!--第二金额-->
<map destKey="本金"changeType="CONST"sourceKey="券号"/>
<map destKey="利息"changeType="CONST"sourceKey="利息"/>
<!--第三金额-->
<map destKey="本金"changeType="CONST"sourceKey="券号"/>
<map destKey="利息"changeType="CONST"sourceKey="利息"/>
<!--第四金额-->
<map destKey="本金"changeType="CONST"sourceKey="券号"/>
<map destKey="利息"changeType="CONST"sourceKey="利息"/>
由上可知,报文解析程序C0P直接复用了报文解析程序A0P的一层解析程序(如上述一层XML)、二层解析程序(如上述二层/node/BondX.xml)和三层的解析程序(如上述三层/node/XXX.xml),增加四层的解析程序(如上述四层/node/YYY.xml),对三层的解析程序按表2所示的节点层级进行层级逻辑复核、修订。本实施例提供的报文解析程序不但实现了对节点解析配置的复用,还实现了对报文解析程序中节点层级解析程序的复用。
S306、采用报文解析程序,对XML报文进行报文解析;
具体而言,XML处理设备12采用步骤305获得的报文解析程序,对XML报文进行报文解析,获得报文解析结果。
进一步地,XML处理设备12采用步骤305获得的报文解析程序,对XML报文进行报文解析时,XML处理设备12可以从报文解析程序的底层的节点解析配置开始,依次往上层的节点解析配置执行,如上述C0P中的各层解析程序的执行顺序可以为:四层/node/YYY.xml→三层/node/XXX.xml→二层/node/BondX.xml→一层XML。这样的报文解析方法可以避免现有技术中报文解析时对下层节点的多次重复遍历,极大提高了报文解析效率。
然后,XML处理设备12将报文解析结果以来源参数和目的参数的成对方式保存在数据库中。
可选地,若存在不同节点下的子节点解析前后结果均相同,则可以只保存一个子节点的解析结果,以减小报文解析结果对储存空间的占用。
示例性地,XML处理设备12采用上述A0P对XML报文A01进行报文解析,获得报文解析结果,并将报文解析结果以表6所示的来源参数和目的参数的成对方式保存在数据库中。
表6
Figure BDA0003305648410000271
可选地,表6中节点“BondList”的子节点“Bond1”、“券号”、“金额”(表1中序号4、5、6)和“BondList2”的子节点“Bond1”、“券号”、“金额”(表1中序号14、15、16)相同,则可以选择只保存表1中序号4、5、6的成对值,而表1中序号14、15、16则不保存,以减小储存空间的占用。
本申请实施例提供的XML报文处理方法,通过对节点解析配置的直接调取复用,或对报文解析程序中节点层级解析程序的复用,实现便捷、快速地形成新业务对应的报文解析程序,以进行新业务报文的解析。同时,本申请实施例提供的XML报文处理方法避免了现有技术中报文解析时对下层节点的多次重复遍历,极大提高了报文解析效率。因此,本申请实施例提供的XML报文处理方法适用于旧业务的升级和新业务的开发,极大促进了行业(如金融行业)业务的创新开发工作。
本申请实施例还提供一种XML报文处理装置,图6为本申请实施例提供的XML报文处理装置结构图。如图6所示,该装置包括处理器61和存储器62,存储器62存储有处理器61可执行指令,使得该处理器61可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。应理解,上述处理器61可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器61中的硬件及软件模块组合执行完成。存储器62可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
本申请实施例还提供一种存储介质,该存储介质中存储有计算机执行指令,这些计算机执行指令被处理器执行时,实现上述的XML报文处理方法。存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称:ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。
本申请实施例还提供一种程序产品,如计算机程序,该计算机程序被处理器执行时实现本申请所涵盖的XML报文处理方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施方式仅用以说明本发明的技术方案,而非对其进行限制;尽管参照前述实施方式对本发明已经进行了详细的说明,但本领域的普通技术人员应当理解:其依然可以对前述实施方式所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施方式技术方案的范围。

Claims (10)

1.一种XML报文处理方法,其特征在于,包括:
获取可扩展标记语言XML报文;
从所述XML报文中获取报文节点;
确定与所述报文节点对应的节点层级;
获取与各节点层级对应的节点解析配置;
根据各节点层级对应的节点解析配置,确定报文解析程序;
采用所述报文解析程序,对所述XML报文进行报文解析。
2.根据权利要求1所述的方法,其特征在于,所述确定与所述报文节点对应的节点层级,包括:
获取所述报文节点的开始标签,所示开始标签代表节点的开始位置标志;
对所述开始标签按开始标签位置长度进行分类,获得标签类别;
将所述标签类别进行映射处理,获得与所述报文节点对应的节点层级。
3.根据权利要求1所述的方法,其特征在于,所述确定与所述报文节点对应的节点层级,包括:
获取所述报文节点的开始标签、结束标签;
将所述开始标签和结束标签按所述报文中的节点排布顺序进行排布,获得标签序列;
从所述标签序列中依次提取各层级的成对开始标签和结束标签,获得标签层级;
将所述标签层级进行映射处理,获得与所述报文节点对应的节点层级。
4.根据权利要求3所述的方法,其特征在于,所述从所述标签序列中依次提取各层级的成对开始标签和结束标签,获得标签层级,包括:
从所述标签序列中提取报文节点成对的开始标签和结束标签中的间隔标签,获得间隔标签和一个标签层;
对所述间隔标签重复上述间隔标签的提取,直到报文节点成对的开始标签和结束标签中无间隔标签,获得各标签层;
将所述标签层按获得的先后顺序进行排列,获得标签层级。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述根据各节点层级对应的节点解析配置,确定报文解析程序,包括:
将所述节点解析配置按所述节点层级进行层级处理,获得所述报文解析程序。
6.根据权利要求5所述的方法,其特征在于,所述将所述节点解析配置按所述节点层级进行层级处理,获得所述报文解析程序,包括:
将所述节点解析配置按所述节点层级进行分层组装,获得组装程序;
对所述组装程序按所述节点层级进行层级逻辑复核和修订,获得所述报文解析程序。
7.根据权利要求1-4任一项所述的方法,其特征在于,所述采用所述报文解析程序,对所述XML报文进行报文解析之后,包括:
获得报文解析结果;
将所述报文解析结果以来源参数和目的参数的成对方式保存在数据库中。
8.一种XML报文处理装置,其特征在于,包括:
处理器和存储器;
所述存储器存储所述处理器可执行指令;
其中,所述处理器执行所述存储器存储的可执行指令,使得所述处理器执行如权利要求1-7任一项所述的方法。
9.一种存储介质,其特征在于,所述存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-7任一项所述的方法。
10.一种程序产品,包括计算机程序,该计算机程序被处理器执行时实现权利要求1-7任一项所述的方法。
CN202111202818.8A 2021-10-15 2021-10-15 Xml报文处理方法及装置 Active CN113949749B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111202818.8A CN113949749B (zh) 2021-10-15 2021-10-15 Xml报文处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111202818.8A CN113949749B (zh) 2021-10-15 2021-10-15 Xml报文处理方法及装置

Publications (2)

Publication Number Publication Date
CN113949749A true CN113949749A (zh) 2022-01-18
CN113949749B CN113949749B (zh) 2024-04-02

Family

ID=79330103

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111202818.8A Active CN113949749B (zh) 2021-10-15 2021-10-15 Xml报文处理方法及装置

Country Status (1)

Country Link
CN (1) CN113949749B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114697390A (zh) * 2022-03-31 2022-07-01 中国工商银行股份有限公司 Xml报文的处理方法及装置、存储介质和电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6732175B1 (en) * 2000-04-13 2004-05-04 Intel Corporation Network apparatus for switching based on content of application data
CN102622444A (zh) * 2012-03-15 2012-08-01 深圳市同洲视讯传媒有限公司 一种xml报文处理方法和装置
CN103646015A (zh) * 2013-12-06 2014-03-19 中国银行股份有限公司 发送、接收以及传输xml报文的方法和系统
CN108255494A (zh) * 2018-01-30 2018-07-06 平安科技(深圳)有限公司 一种xml文件解析方法、装置、计算机设备及存储介质
CN108600148A (zh) * 2018-01-04 2018-09-28 中国银行股份有限公司 一种交易报文处理方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6732175B1 (en) * 2000-04-13 2004-05-04 Intel Corporation Network apparatus for switching based on content of application data
CN102622444A (zh) * 2012-03-15 2012-08-01 深圳市同洲视讯传媒有限公司 一种xml报文处理方法和装置
CN103646015A (zh) * 2013-12-06 2014-03-19 中国银行股份有限公司 发送、接收以及传输xml报文的方法和系统
CN108600148A (zh) * 2018-01-04 2018-09-28 中国银行股份有限公司 一种交易报文处理方法及装置
CN108255494A (zh) * 2018-01-30 2018-07-06 平安科技(深圳)有限公司 一种xml文件解析方法、装置、计算机设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114697390A (zh) * 2022-03-31 2022-07-01 中国工商银行股份有限公司 Xml报文的处理方法及装置、存储介质和电子设备
CN114697390B (zh) * 2022-03-31 2023-12-08 中国工商银行股份有限公司 Xml报文的处理方法及装置、存储介质和电子设备

Also Published As

Publication number Publication date
CN113949749B (zh) 2024-04-02

Similar Documents

Publication Publication Date Title
US7908594B2 (en) External programmatic interface for IOS CLI compliant routers
US7496892B2 (en) Polymorphic regular expressions
US7698694B2 (en) Methods and systems for transforming an AND/OR command tree into a command data model
US7032210B2 (en) Method and system for generating program source code of a computer application from an information model
US8091071B2 (en) Method and system for template-based code generation
US7779398B2 (en) Methods and systems for extracting information from computer code
US7784036B2 (en) Methods and systems for transforming a parse graph into an and/or command tree
US20030110177A1 (en) Declarative specification and engine for non-isomorphic data mapping
US5678052A (en) Methods and system for converting a text-based grammar to a compressed syntax diagram
CA2170939A1 (en) Method and apparatus for displaying locations of errors detected inside software macro calls
FI115416B (fi) Rakenteellisen datan jäsennys
US7257647B2 (en) Development environment platform using message type mapping for converting message and providing information between systems having different data structures
CN110704064B (zh) 编译和执行智能合约的方法及装置
US7401325B2 (en) Method and apparatus for a configurable Java Server pages processing framework
EP1186996B1 (en) Method of programming for providing polymorphism
US20050097530A1 (en) Template compilation method
CN115080406A (zh) 代码日志生成方法、装置、设备和存储介质
CN112379917A (zh) 浏览器兼容性提升方法、装置、设备及存储介质
CN113949749A (zh) Xml报文处理方法及装置
CN115268991A (zh) 依赖分析的优化方法、装置、设备和存储介质
EP0520708A2 (en) Method and apparatus for converting high level form abstract syntaxes into an intermediate form
CN111124382A (zh) Java中的属性赋值方法、装置及服务器
CN110109675A (zh) 智能合约处理方法、装置以及计算机可读存储介质
CN111381828A (zh) 生成代码文件的语法树的方法、装置及电子设备
US20030233640A1 (en) Structuring program code

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
GR01 Patent grant
GR01 Patent grant