CN111628975A - 一种组装xml报文的方法及装置 - Google Patents
一种组装xml报文的方法及装置 Download PDFInfo
- Publication number
- CN111628975A CN111628975A CN202010397300.3A CN202010397300A CN111628975A CN 111628975 A CN111628975 A CN 111628975A CN 202010397300 A CN202010397300 A CN 202010397300A CN 111628975 A CN111628975 A CN 111628975A
- Authority
- CN
- China
- Prior art keywords
- node
- assembling
- type
- xml
- xsd file
- 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
-
- 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
-
- 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/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明提供了一种组装XML报文的方法及装置,组装XML报文的方法包括:解析XSD文件,以确定所述XSD文件的节点数据、节点信息以及节点属性;根据所述节点信息以及节点属性确定所述XSD文件中的节点类型;根据所述XSD文件、节点数据、节点信息、节点属性以及所述节点类型组装XML报文。本发明提供的组装XML报文的方法及装置,可以准确地将XSD文件组装成XML报文。
Description
技术领域
本发明涉及信息技术领域,具体涉及应用系统中的报文处理技术领域,特别是涉及一种组装XML报文的方法及装置。
背景技术
在金融、通讯等领域的应用系统中,系统之间的集成度越来高,例如在银行系统中,涉及到银行系统与第三方系统业务层面上存在大量的信息交换,因此必须保证报文的准确性,以防范业务风险。一旦报文格式出现调整,则对应的业务流程程序必须同步做出调整,而每次调整都需要修改程序、测试、发布版本等。而且大多数格式校验和要素校验的程序逻辑都比较冗余和复杂,极易出错。
发明内容
针对现有技术中的问题,本发明提供的组装XML报文的方法及装置,适用于所有规范格式的XSD报文文件,可以准确地将XSD文件组装成XML报文。
为解决上述技术问题,本发明提供以下技术方案:
第一方面,本发明提供一种组装XML报文的方法,包括:
解析XSD文件,以确定所述XSD文件的节点数据、节点信息以及节点属性;
根据所述节点信息以及节点属性确定所述XSD文件中的节点类型;
根据所述XSD文件、节点数据、节点信息、节点属性以及所述节点类型组装XML报文。
一实施例中,所述节点信息包括:节点的名称、节点的父亲节点、节点路径以及节点出现的顺序;
所述节点属性包括:节点中内容的类型、节点的最大出现次数、节点的最小出现次数以及节点的内容可接受值的列表。
一实施例中,所述根据所述XSD文件、节点数据、节点信息、节点属性以及所述节点类型组装XML报文,包括:
以节点路径为检索条件,对解析XSD文件所获得的规则字典数据进行对比;
根据对比结果将节点数据与节点进行绑定,以生成所述XML报文。
一实施例中,所述根据所述节点信息以及节点属性确定所述XSD文件中的节点类型,包括:
利用递归算法,根据所述节点信息以及节点属性确定所述节点类型;
所述节点类型包括:根节点,子节点以及叶子节点。
一实施例中,组装XML报文的方法还包括:
利用Schema方法,根据所述XSD文件校验所述XML报文。
第二方面,本发明提供一种组装XML报文的装置,该装置包括:
XSD解析单元,用于解析XSD文件,以确定所述XSD文件的节点数据、节点信息以及节点属性;
节点类型确定单元,用于根据所述节点信息以及节点属性确定所述XSD文件中的节点类型;
报文组装单元,用于根据所述XSD文件、节点数据、节点信息、节点属性以及所述节点类型组装XML报文。
一实施例中,所述节点类型确定单元具体用于利用递归算法,根据所述节点信息以及节点属性确定所述节点类型;
所述节点类型包括:根节点,子节点以及叶子节点;
所述节点信息包括:节点的名称、节点的父亲节点、节点路径以及节点出现的顺序;
所述节点属性包括:节点中内容的类型、节点的最大出现次数、节点的最小出现次数以及节点的内容可接受值的列表。
一实施例中,所述报文组装单元包括:
数据对比模块,用于以节点路径为检索条件,对解析XSD文件所获得的规则字典数据进行对比;
报文组装模块,用于根据对比结果将节点数据与节点进行绑定,以生成所述XML报文。
一实施例中,组装XML报文的装置还包括:
报文校验单元,用于利用Schema方法,根据所述XSD文件校验所述XML报文。
第三方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现组装XML报文的方法的步骤。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现组装XML报文的方法的步骤。
从上述描述可知,本发明实施例提供的组装XML报文的方法及装置,首先解析XSD文件,以确定XSD文件的节点数据、节点信息以及节点属性;接着,根据节点信息以及节点属性确定XSD文件中的节点类型;最后根据XSD文件、节点数据、节点信息、节点属性以及节点类型组装XML报文。本发明适用于所有规范格式的XSD报文文件,可以准确地将XSD文件组装成XML报文。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的实施例中组装XML报文的方法流程示意图一;
图2为本发明的实施例中组装XML报文的方法步骤200的流程示意图;
图3为本发明的实施例中组装XML报文的方法步骤300的流程示意图;
图4为本发明的实施例中组装XML报文的方法流程示意图二;
图5为本发明的具体应用实例中组装XML报文的方法的思维导图;
图6为本发明的具体应用实例中XSD文件解析方法流程示意图;
图7为本发明的具体应用实例中生成报文录入页面方法流程示意图;
图8为本发明的具体应用实例中生成XML报文流程示意图;
图9为本发明的实施例中组装XML报文的装置的结构示意图一;
图10为本发明实施例中报文组装单元的结构示意图;
图11为本发明的实施例中组装XML报文的装置的结构示意图二;
图12为本发明的实施例中的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的实施例提供一种组装XML报文的方法的具体实施方式,参见图1,该方法具体包括如下内容:
步骤100:解析XSD文件,以确定所述XSD文件的节点数据、节点信息以及节点属性。
具体地,解析规定业务报文标准的XSD文件,分析此XSD文件中的所有节点的属性并将其存库。可以理解的是,XSD文件中包含三种节点,分别为:element、complexType、simpleType。步骤100所采用的解析方式是:以name="Document"的element作为入口,递归查找,确定所述XSD文件的节点数据、节点信息以及节点属性。该步骤可以得到XSD文件所规定的XML业务报文格式标准的节点信息和节点属性。
步骤200:根据所述节点信息以及节点属性确定所述XSD文件中的节点类型。
这里的节点信息包括:节点的名称、节点的父亲节点、节点路径以及节点出现的顺序;节点属性包括:节点中内容的类型、节点的最大出现次数、节点的最小出现次数以及节点的内容可接受值的列表。优选地,节点属性还包括:节点的内容中所允许的最大的小数位数、节点的内容中所允许的字符或者列表项目的精确数目、节点的内容中数值的上限、节点的内容中数值的上限、节点的内容中所允许的字符或者列表项目的最大数目、节点的内容中数值的下限、节点的内容中数值的下限、节点的内容中所允许的字符或者列表项目的最小数目、节点的内容中可接受的字符的精确序列、节点的内容中所允许的阿拉伯数字的精确位数、节点的内容中空白字符(换行、回车、空格以及制表符)的处理方式。
步骤300:根据所述XSD文件、节点数据、节点信息、节点属性以及所述节点类型组装XML报文。
具体地,根据节点属性中的XSD的标签序号和循环标号计算权值,并对XPATH进行排序,按照顺序调用XML报文方法,根据XSD文件、节点数据、节点信息、节点属性以及所述节点类型准确地组成XML报文。
从上述描述可知,本发明实施例提供的组装XML报文的方法,首先解析XSD文件,以确定XSD文件的节点数据、节点信息以及节点属性;接着,根据节点信息以及节点属性确定XSD文件中的节点类型;最后根据XSD文件、节点数据、节点信息、节点属性以及节点类型组装XML报文。本发明适用于所有规范格式的XSD报文文件,可以准确地将XSD文件组装成XML报文。
一实施例中,参见图2,步骤200具体包括:
步骤201:利用递归算法,根据所述节点信息以及节点属性确定所述节点类型。
所述节点类型包括:根节点,子节点以及叶子节点。具体地,XSD文件中一共有三类节点,分别为:<element>、<complexType>、<simpleType>;每一个节点中有name和type两个属性,name为此节点的名称,type为此节点的数据类型,数据类型有复杂类型和简单类型两种;<element>的内容规定了此类XML报文中的节点名,例如xsd文件中有<xs:element name="A">的节点,那么在其相对应的xml报文中就一定有<A></A>节点;<complexType>为复杂类型,如果一个<xs:element name="A"type="B"/>节点中的B是一个复杂类型,那么说明A节点有子节点;<simpleType>为简单类型,如果一个<xs:element name="A"type="C"/>节点中的C是一个简单类型,那么说明A节点为叶子节点;另外,XSD文件中不会有两个节点的name相同。
一实施例中,参见图3,步骤300具体包括:
步骤301:以节点路径为检索条件,对解析XSD文件所获得的规则字典数据进行对比。
步骤302:根据对比结果将节点数据与节点进行绑定,以生成所述XML报文。
在步骤301以及步骤302中,将去标号的节点路径XPATH作为检索条件,对之前解析XSD标准文件得到的规则字典数据进行比对。当该字典数据中的节点类型为complexType或simpleType时,且其最大出现次数大于1时,表明XML的同一节点重复可能出现多次,以字典记录的序号作为基准值,以传入的该XPATH标号作为偏移值计算权重。待所有节点的权重计算完毕后,依据权值对录入的报文要素数据进行排序,得到按顺序存储的XPATH。随后再判断节点内容非空,以及不是空字符串的情况下,按顺序获取XPATH,以根节点作为基准,递归查找子节点。如果子节点不存在就创建子节点,最终将节点数据与节点进行绑定并最终形成XML文本数据。
一实施例中,参见图4,组装XML报文的方法还包括:
步骤400:利用Schema方法,根据所述XSD文件校验所述XML报文。
可以理解的是,Schema是一个XML的规格,其作用类似说明书,其规定了根节点的名字以及该根节点下面的子节点,还规定了这些根节点以及子节点所包含的属性,根据Schema(规定)去校验所有的根节点、子节点以及根节点以及子节点的属性是否与该规定保持一致。
为进一步地说明本方案,本发明以一具体的XSD(ISO 20022XSD文件)文件为例,本申请提供组装XML报文的方法的一具体应用实例,该具体应用实例具体包括如下内容,参见图5。
该XSD文件如下所示:
S1:利用递归算法解析XSD文件。
可以理解的是,ISO 20022标准报文的根节点均为<Document>,在解析XSD文件时,本具体应用实例将<xs:element name="Document"type="Document"/>作为递归算法的开始。以前面提到的xsd文件为例,进行详细说明,参见图6。
1)在XSD中查找name="Document"的Element,将其type取并出找出根节点。
使用org.dom4j中封装的方法selectSingleNode()取出<xs:element name="Document"type="Document"/>节点,其type属性的值为:Document。
2)在XSD中查找name=“上一步取出的type”的complexType,确定第1步中所找出的type的值代表的是复杂类型还是简单类型,根据以下两个路径,在XSD文件中寻找节点。
"//xs:complexType[@name=\"Document\"]"
"//xs:simpleType[@name=\"Document\"]"
根据ISO 20022XSD文件结构分析,可以确定:通过上述两个路径取得到的节点,一定是一个有值,一个为空。若通过"//xs:complexType[@name=\"Document\"]"取得的节点有值,则说明<xs:element name="Document"type="Document"/>声明了XML中的一个父节点,需继续递归。
3)进行递归操作(此complexType包含若干element,依次取一个,获得其type)。
取出<xs:complexType name="Document">的所有子节点放入一个list中,逐个处理,首先取第一个子节点:<xs:element name="TestName1"type="TestType1"/>,其type值为TestType1,使用2)步骤中方法,得到<xs:complexType name="TestType1">,因此TestType1所代表的类型为复杂类型,需重复步骤3)的递归过程。
继续找<xs:complexType name="TestType1">的子节点,第一个子节点为<xs:element name="TestName3"type="TestType2"/>,其type值为TestType2,使用2中方法,得到<xs:simpleType name="TestType2">,因此TestType2所代表的类型为简单类型,说明<xs:element name="TestName3"type="TestType2"/>声明了XML中的一个子节点,将<xs:simpleType name="TestType2">中的相关信息解析出来存库后,此层递归结束。
可解析出XSD所规定的XML的节点属性包括:节点中内容的类型、节点的最大出现次数、节点的最小出现次数、节点的内容可接受值的一个列表、节点的内容中所允许的最大的小数位数、节点的内容中所允许的字符或者列表项目的精确数目、节点的内容中数值的上限、节点的内容中数值的上限、节点的内容中所允许的字符或者列表项目的最大数目、节点的内容中数值的下限、节点的内容中数值的下限、节点的内容中所允许的字符或者列表项目的最小数目、节点的内容中可接受的字符的精确序列、节点的内容中所允许的阿拉伯数字的精确位数、节点的内容中空白字符(换行、回车、空格以及制表符)的处理方式。
可解析出XSD所规定的XML的节点信息包括:节点的name、节点的type、节点是否是叶子节点、节点的父亲节点、节点在XML中的Xpath、节点在XML出现的顺序。
S2:获取叶子结点的属性。
XSD文件中节点的属性有15个,其含义及程序解析方式为:
1)节点中内容的类型:
父节点并不需要填写内容,此栏位为空。叶子节点内容类型为其相对应simpleType节点中子节点restriction的base属性的值。
2)节点的最大出现次数:
取此节点element节点的maxOccurs属性值。
3)节点的最小出现次数:
取此节点element节点的minOccurs属性值。
4)节点的内容可接受值的一个列表。
父节点并不需要填写内容,此栏位为空。叶子节点内容类型为其相对应simpleType节点中子节点enumeration的value属性的值的集合,以“|”进行分隔。
5)节点的内容中所允许的最大的小数位数。
父节点并不需要填写内容,此栏位为空。叶子节点内容类型为其相对应simpleType节点中子节点FractionDigits的value属性的值。
6)节点的内容中所允许的字符或者列表项目的精确数目。
父节点并不需要填写内容,此栏位为空。叶子节点内容类型为其相对应simpleType节点中子节点length的value属性的值。
7)节点的内容中数值的上限。
父节点并不需要填写内容,此栏位为空。叶子节点内容类型为其相对应simpleType节点中子节点MaxExclusive的value属性的值。
8)节点的内容中所允许的字符或者列表项目的最大数目。
父节点并不需要填写内容,此栏位为空。叶子节点内容类型为其相对应simpleType节点中子节点MaxLength的value属性的值。
9)节点的内容中数值的下限。
父节点并不需要填写内容,此栏位为空。叶子节点内容类型为其相对应simpleType节点中子节点MinExclusive的value属性的值。
10)节点的内容中所允许的字符或者列表项目的最小数目:
父节点并不需要填写内容,此栏位为空。叶子节点内容类型为其相对应simpleType节点中子节点MinLength的value属性的值。
11)节点的内容中可接受的字符的精确序列:
父节点并不需要填写内容,此栏位为空。叶子节点内容类型为其相对应simpleType节点中子节点Pattern的value属性的值。
12)节点的内容中所允许的阿拉伯数字的精确位数:
父节点并不需要填写内容,此栏位为空。叶子节点内容类型为其相对应simpleType节点中子节点TotalDigits的value属性的值。
13)节点的内容中空白字符(换行、回车、空格以及制表符)的处理方式。
父节点并不需要填写内容,此栏位为空。叶子节点内容类型为其相对应simpleType节点中子节点WhiteSpace的value属性的值。
S3:生成客户端录入所需文件。
对解析出的XSD文件的各节点属性,根据数据库中XSD节点的顺序,处理XSD报文的所有节点,处理时检查节点的每一个属性,对于非叶子节点,检查其是否需要循环多次填写,对于叶子节点,依据节点所包含的各种属性、节点的路径、节点的类型、节点的中文名称生成该节点相应的代码,节点的属性作为该节点录入时的限制条件,最终生成页面显示需要的全部节点的代码文件,参见图7。
需要录入报文时,通过客户端界面功能选择相应的XSD报文类型,通过报文录入按钮发起请求,获取已生成的该报文页面显示所需的代码文件,根据文件中存储的节点内容,包括节点路径、节点名称、限制条件、默认值、是否需要多次填写等状态,进行页面的渲染。录入报文时,可根据界面显示的提示信息,如数字或文本的校验规则,是否可多次填写,即某几个节点为一组内容,此组内容可在最终生成的XML报文中循环出现,填写相应的报文内容,填写完成后,通过提交功能,将填入的内容及每个内容所对应的节点路径以键值对的数据结构发送到服务端。如需进行修改,可通过客户端的编辑功能,发起修改请求,获取服务端传回的数据,进行页面渲染,修改完成后,再次以填入的节点内容及节点路径作为键值对的数据结构发送至服务端进行处理。
S4:组装及检验XML报文。
在本具体应用实例中,客户端编辑报文要素数据后,以JSON格式组织数据后将录入请求发送给服务端,请求数据要包含节点路径XPATH及业务数据,针对可能出现的重复要素,XPATH需要加以标号进行区分。当录入请求发送至服务端,服务端接收JSON格式数据,从中提取客户端录入的报文要素及节点路径XPATH进行业务报文的组装。具体组装的方法是将去标号的节点路径XPATH作为检索条件,对之前解析XSD标准文件得到的规则字典数据进行比对。当该字典数据中的节点类型为complexType或simpleType,且其最大出现次数大于1时,表明XML的同一节点重复可能出现多次,以字典记录的序号作为基准值,以传入的该XPATH标号作为偏移值计算权重。待所有节点的权重计算完毕后,依据权值对录入的报文要素数据进行排序,得到按顺序存储的XPATH。随后在判断节点内容非空,以及不是空字符串的情况下,按顺序获取XPATH,以根节点作为基准,递归查找子节点。如果子节点不存在就创建子节点,最终将节点数据与节点进行绑定并最终形成XML文本数据。最后根据XSD校验XML报文格式是否正确。参见图8,对于XML报文详情来说,选取已录入报文,客户端页面回显报文录入页面及其录入的要素数据。
上述XSD文件对应生成的xml报文为:
从上述描述可知,本发明实施例提供的组装XML报文的方法,采用递归方法解析XML业务报文,在递归过程中记录并按页面渲染要求组装报文节点标签路径,同时与报文要素的内容组织成最终JSON数据格式。针对叶子节点,以类似XPATH的形式作为key值;针对循环非叶子节点,以嵌套和数组方式组织子JSON数据格式。在得到展示格式数据后,结合页面格式最终完成页面渲染。本发明广泛适配符合规范的XSD文件,实现从XSD文件到XML报文的自动、准确地生成。
基于同一发明构思,本申请实施例还提供了组装XML报文的装置,可以用于实现上述实施例所描述的方法,如下面的实施例。由于组装XML报文的装置解决问题的原理与组装XML报文的方法相似,因此组装XML报文的装置的实施可以参见组装XML报文的方法实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本发明的实施例提供一种能够实现组装XML报文的方法的组装XML报文的装置的具体实施方式,参见图9,组装XML报文的装置具体包括如下内容:
XSD解析单元10,用于解析XSD文件,以确定所述XSD文件的节点数据、节点信息以及节点属性;
节点类型确定单元20,用于根据所述节点信息以及节点属性确定所述XSD文件中的节点类型;
报文组装单元30,用于根据所述XSD文件、节点数据、节点信息、节点属性以及所述节点类型组装XML报文。
一实施例中,所述节点类型确定单元20具体用于利用递归算法,根据所述节点信息以及节点属性确定所述节点类型;
所述节点类型包括:根节点,子节点以及叶子节点;
所述节点信息包括:节点的名称、节点的父亲节点、节点路径以及节点出现的顺序;
所述节点属性包括:节点中内容的类型、节点的最大出现次数、节点的最小出现次数以及节点的内容可接受值的列表。
一实施例中,参见图10,所述报文组装单元30包括:
数据对比模块301,用于以节点路径为检索条件,对解析XSD文件所获得的规则字典数据进行对比;
报文组装模块302,用于根据对比结果将节点数据与节点进行绑定,以生成所述XML报文。
一实施例中,参见图11,组装XML报文的装置还包括:
报文校验单元40,用于利用Schema方法,根据所述XSD文件校验所述XML报文。
从上述描述可知,本发明实施例提供的组装XML报文的装置,采用递归方法解析XML业务报文,在递归过程中记录并按页面渲染要求组装报文节点标签路径,同时与报文要素的内容组织成最终JSON数据格式。针对叶子节点,以类似XPATH的形式作为key值;针对循环非叶子节点,以嵌套和数组方式组织子JSON数据格式。在得到展示格式数据后,结合页面格式最终完成页面渲染。本发明广泛适配符合规范的XSD文件,实现从XSD文件到XML报文的自动、准确地生成。
本申请的实施例还提供能够实现上述实施例中的组装XML报文的方法中全部步骤的一种电子设备的具体实施方式,参见图12,电子设备具体包括如下内容:
处理器(processor)1201、存储器(memory)1202、通信接口(CommunicationsInterface)1203和总线1204;
其中,处理器1201、存储器1202、通信接口1203通过总线1204完成相互间的通信;通信接口1203用于实现服务器端设备、接口设备以及用户端设备等相关设备之间的信息传输。
处理器1201用于调用存储器1202中的计算机程序,处理器执行计算机程序时实现上述实施例中的组装XML报文的方法中的全部步骤,例如,处理器执行计算机程序时实现下述步骤:
步骤100:解析XSD文件,以确定所述XSD文件的节点数据、节点信息以及节点属性。
步骤200:根据所述节点信息以及节点属性确定所述XSD文件中的节点类型。
步骤300:根据所述XSD文件、节点数据、节点信息、节点属性以及所述节点类型组装XML报文。
本申请的实施例还提供能够实现上述实施例中的组装XML报文的方法中全部步骤的一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的组装XML报文的方法的全部步骤,例如,处理器执行计算机程序时实现下述步骤:
步骤100:解析XSD文件,以确定所述XSD文件的节点数据、节点信息以及节点属性。
步骤200:根据所述节点信息以及节点属性确定所述XSD文件中的节点类型。
步骤300:根据所述XSD文件、节点数据、节点信息、节点属性以及所述节点类型组装XML报文。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
虽然本申请提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (11)
1.一种组装XML报文的方法,其特征在于,包括:
解析XSD文件,以确定所述XSD文件的节点数据、节点信息以及节点属性;
根据所述节点信息以及节点属性确定所述XSD文件中的节点类型;
根据所述XSD文件、节点数据、节点信息、节点属性以及所述节点类型组装XML报文。
2.根据权利要求1所述的组装XML报文的方法,其特征在于,
所述节点信息包括:节点的名称、节点的父亲节点、节点路径以及节点出现的顺序;
所述节点属性包括:节点中内容的类型、节点的最大出现次数、节点的最小出现次数以及节点的内容可接受值的列表。
3.根据权利要求2所述的组装XML报文的方法,其特征在于,所述根据所述XSD文件、节点数据、节点信息、节点属性以及所述节点类型组装XML报文,包括:
以节点路径为检索条件,对解析XSD文件所获得的规则字典数据进行对比;
根据对比结果将节点数据与节点进行绑定,以生成所述XML报文。
4.根据权利要求1所述的组装XML报文的方法,其特征在于,所述根据所述节点信息以及节点属性确定所述XSD文件中的节点类型,包括:
利用递归算法,根据所述节点信息以及节点属性确定所述节点类型;
所述节点类型包括:根节点,子节点以及叶子节点。
5.根据权利要求1至4任一项所述的组装XML报文的方法,其特征在于,还包括:
利用Schema方法,根据所述XSD文件校验所述XML报文。
6.一种组装XML报文的装置,其特征在于,包括:
XSD解析单元,用于解析XSD文件,以确定所述XSD文件的节点数据、节点信息以及节点属性;
节点类型确定单元,用于根据所述节点信息以及节点属性确定所述XSD文件中的节点类型;
报文组装单元,用于根据所述XSD文件、节点数据、节点信息、节点属性以及所述节点类型组装XML报文。
7.根据权利要求6所述的组装XML报文的装置,其特征在于,所述节点类型确定单元具体用于利用递归算法,根据所述节点信息以及节点属性确定所述节点类型;
所述节点类型包括:根节点,子节点以及叶子节点;
所述节点信息包括:节点的名称、节点的父亲节点、节点路径以及节点出现的顺序;
所述节点属性包括:节点中内容的类型、节点的最大出现次数、节点的最小出现次数以及节点的内容可接受值的列表。
8.根据权利要求7所述的组装XML报文的装置,其特征在于,所述报文组装单元包括:
数据对比模块,用于以节点路径为检索条件,对解析XSD文件所获得的规则字典数据进行对比;
报文组装模块,用于根据对比结果将节点数据与节点进行绑定,以生成所述XML报文。
9.根据权利要求6至8任一项所述的组装XML报文的装置,其特征在于,还包括:
报文校验单元,用于利用Schema方法,根据所述XSD文件校验所述XML报文。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至5任一项所述组装XML报文的方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至5任一项所述组装XML报文的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010397300.3A CN111628975B (zh) | 2020-05-12 | 2020-05-12 | 一种组装xml报文的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010397300.3A CN111628975B (zh) | 2020-05-12 | 2020-05-12 | 一种组装xml报文的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111628975A true CN111628975A (zh) | 2020-09-04 |
CN111628975B CN111628975B (zh) | 2023-06-27 |
Family
ID=72260500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010397300.3A Active CN111628975B (zh) | 2020-05-12 | 2020-05-12 | 一种组装xml报文的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111628975B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112287177A (zh) * | 2020-11-25 | 2021-01-29 | 城云科技(中国)有限公司 | 一种创建、变更、显示和查询对象标签的方法和装置 |
CN113065338A (zh) * | 2021-04-08 | 2021-07-02 | 银清科技有限公司 | Xml报文重组方法及装置 |
CN113301160A (zh) * | 2021-05-27 | 2021-08-24 | 杭州海康威视数字技术股份有限公司 | 一种数据报文传输兼容性的实现方法、装置、及电子设备 |
CN115442204A (zh) * | 2022-08-26 | 2022-12-06 | 上海哈恩德技术开发有限公司 | 一种用于确定枚举取值的方法、设备、介质及程序产品 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101464866A (zh) * | 2007-12-19 | 2009-06-24 | 新奥特(北京)视频技术有限公司 | 一种基于xml实现编目信息格式转换的方法 |
CN101883082A (zh) * | 2009-05-06 | 2010-11-10 | 华为技术有限公司 | 获取网络配置协议服务端建模文件信息的方法、设备和系统 |
CN102314371A (zh) * | 2011-09-07 | 2012-01-11 | 中兴通讯股份有限公司 | 基于可扩展标记语言的编码方法、解码方法及编解码装置 |
WO2012159231A1 (zh) * | 2011-07-25 | 2012-11-29 | 华为技术有限公司 | 访问控制方法及访问控制服务器 |
CN106209830A (zh) * | 2016-07-08 | 2016-12-07 | 中国人民解放军国防科学技术大学 | 一种基于xml网络协议表示的报文构造方法 |
-
2020
- 2020-05-12 CN CN202010397300.3A patent/CN111628975B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101464866A (zh) * | 2007-12-19 | 2009-06-24 | 新奥特(北京)视频技术有限公司 | 一种基于xml实现编目信息格式转换的方法 |
CN101883082A (zh) * | 2009-05-06 | 2010-11-10 | 华为技术有限公司 | 获取网络配置协议服务端建模文件信息的方法、设备和系统 |
WO2012159231A1 (zh) * | 2011-07-25 | 2012-11-29 | 华为技术有限公司 | 访问控制方法及访问控制服务器 |
CN102314371A (zh) * | 2011-09-07 | 2012-01-11 | 中兴通讯股份有限公司 | 基于可扩展标记语言的编码方法、解码方法及编解码装置 |
CN106209830A (zh) * | 2016-07-08 | 2016-12-07 | 中国人民解放军国防科学技术大学 | 一种基于xml网络协议表示的报文构造方法 |
Non-Patent Citations (3)
Title |
---|
崔婉旻: "ISO 20022 在支付清算系统中的应用", 《金融电子化》 * |
张剑妹: "XML 模式及其支持下的路径表达式查询", 《XML 模式及其支持下的路径表达式查询》 * |
王博: "UML到Web Services的信息模型转换及实例文档生成方法", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112287177A (zh) * | 2020-11-25 | 2021-01-29 | 城云科技(中国)有限公司 | 一种创建、变更、显示和查询对象标签的方法和装置 |
CN113065338A (zh) * | 2021-04-08 | 2021-07-02 | 银清科技有限公司 | Xml报文重组方法及装置 |
CN113301160A (zh) * | 2021-05-27 | 2021-08-24 | 杭州海康威视数字技术股份有限公司 | 一种数据报文传输兼容性的实现方法、装置、及电子设备 |
CN115442204A (zh) * | 2022-08-26 | 2022-12-06 | 上海哈恩德技术开发有限公司 | 一种用于确定枚举取值的方法、设备、介质及程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN111628975B (zh) | 2023-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111628975B (zh) | 一种组装xml报文的方法及装置 | |
US7210096B2 (en) | Methods and apparatus for constructing semantic models for document authoring | |
US7526490B2 (en) | Method of and system for providing positional based object to XML mapping | |
US20150205778A1 (en) | Reducing programming complexity in applications interfacing with parsers for data elements represented according to a markup languages | |
US7370270B2 (en) | XML schema evolution | |
US7657832B1 (en) | Correcting validation errors in structured documents | |
US10324929B2 (en) | Provision of position data for query runtime errors | |
US20060218160A1 (en) | Change control management of XML documents | |
US20030135825A1 (en) | Dynamically generated mark-up based graphical user interfaced with an extensible application framework with links to enterprise resources | |
US20040044678A1 (en) | Method and apparatus for converting legacy programming language data structures to schema definitions | |
US20050050459A1 (en) | Automatic partition method and apparatus for structured document information blocks | |
US20050273703A1 (en) | Method of and system for providing namespace based object to XML mapping | |
US20120072826A1 (en) | Methods and systems of outputting content of interest | |
US20020002566A1 (en) | Transfromation of marked up documents using a base architecture | |
US20190079649A1 (en) | Ui rendering based on adaptive label text infrastructure | |
CN110688118A (zh) | 一种网页优化方法及装置 | |
CN115599359A (zh) | 一种代码生成方法、装置、设备及介质 | |
CN114911775A (zh) | 一种动态表单、字段配置及存储的方法及系统 | |
CN111782211A (zh) | 基于Vue组件的参数页面动态生成方法及装置 | |
CN111881043B (zh) | 页面测试方法、装置、存储介质和处理器 | |
US20150248500A1 (en) | Documentation parser | |
CN107977459B (zh) | 报表生成方法及装置 | |
US11074401B2 (en) | Merging delta object notation documents | |
CN113536762A (zh) | Json文本的比对方法及装置 | |
US20090217156A1 (en) | Method for Storing Localized XML Document Values |
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 |