一种基于xml的网络数据传输方法

文档序号:6441454阅读:132来源:国知局
专利名称:一种基于xml的网络数据传输方法
技术领域
本发明涉及网络数据传输技术,特别涉及一种基于扩展标记语言(XML)的网络数据传输方法。
背景技术
扩展标记语言(XML)是一种简单的数据存储语言,其使用一系列简单的标记描述数据,以结构化的形式存储和传输数据。由于其具有良好的可扩展性,内容与形式分离特性及较好的保值性等优点,常被应用于网络数据的传输中。目前,基于XML的网络数据传输方法如图1所示,包括如下步骤:步骤101、数据发送端对将要传输的数据内容按照XML格式规范进行数据标记,生成标准的XML格式文件。步骤102、将生成的标准的XML格式文件通过网络传输到数据接收端。步骤103、数据接收端对标准的XML格式文件进行解析,得出原始要传输的数据内容。但是,由于XML为了良好的可阅读性和可编辑性,标记和数据内容直接采用了ASCII文本编码,因此冗余数据多、内容不够精简、文件体积较大。即使在传输过程中可以通过压缩/还原的方法减少传输量,但也是以损失部分CPU处理速度为代价。因此,在网络数据传输中,直接使用XML会比较浪费带宽及降低传输效率。另外,在远端目的节点接收到网络数据后,对XML格式文件进行解析过程中,也需要消耗大量的CPU资源把ASCII文本数据转换为二进制编码数据(大部分的计算机应用系统采用二进制编码处理数据)。

发明内容
有鉴于此,本发明的目的在于提供一种基于扩展标记语言(XML)的网络数据传输方法,以减少网络带宽的占用并提高传输效率。本发明提供的基于扩展标记语言(XML)的网络数据传输方法,包括以下步骤:A、数据发送端将要传输的原始数据转换为标准XML文件;B、将标准XML文件中的各个数据项,按照预设的转换规则,转换为二进制数据形式的紧缩型XML数据;C、将紧缩型XML数据通过网络发送给接收端。较佳地,该方法还包括接收端存储接收的紧缩型XML数据;当应用程序要使用存储的紧缩型XML数据时,执行步骤D ;D、按照步骤B的转换规则,从所述紧缩型XML数据中,读取有效数据。较佳地,步骤B所述的转换规则为:采用XML的嵌套结构,用二进制数据形式存储各个数据项的标识信息和数据内容。较佳地,所述用二进制数据形式存储各个数据项的标识信息包括:用整型数据形式存储各个数据项标识;用整型数据形式存储各个数据项的数据类型。用二进制数据形式存储各个数据项的数据内容包括:用整型数据形式存储整型的数据内容;用UTF-8编码字符串形式存储字符串的数据内容;用长整型数据形式存储长整型的数据内容;用二进制流形式存储二进制流的数据内容。较佳地,所述数据类型包括:信封数据类型、整型、字符串型、长整型和二进制数据流型;其中,信封数据类型的数据项中的数据内容中嵌套两个以上数据项。较佳地,所述XML文件为树形结构,每个节点对应一个数据项;步骤B所述的转换过程为:遍历所述XML文件的树形结构,对每个数据项按照所述转换规则转换为紧缩型XML数据项,建立与所述XML文件的树形结构相同的紧缩型XML数据的树形结构。较佳地,步骤B所述的转换过程包括:从标准XML文件的树形结构的第一个节点开始,执行如下步骤:B1、读取该节点的数据项,并判断该数据项的类型,如果是信封数据类型,则执行步骤B2 ;如果是整型、字符串型、长整型或二进制数据流型,则执行步骤B3 ;B2、创建紧缩型XML树形结构的信封元素节点,标准XML文件的树形结构和紧缩型XML树形结构都保持在当前操作的节点;执行步骤B4 ;B3、创建紧缩型XML树形结构的整型元素、字符串型元素、长整型元素或二进制数据流型元素节点;并在紧缩型XML树形结构中保存当前操作节点的数据项;B4、判断标准XML文件的树形结构中是否还有数据项,如果有,则返回步骤BI ;否则执行步骤B5 ;B5、判断当前操作节点是否为根节点,如果是,则结束操作;否则标准XML文件的树形结构和紧缩型XML树形结构都返回上一级当前操作节点后,返回步骤B4。较佳地,所述步骤D包括:从紧缩型XML数据的树形结构的第一个节点开始,执行如下步骤:D1、读取该节点的数据项,并判断该数据项的类型,如果是信封数据类型,则执行步骤D2 ;如果是整型、字符串型、长整型或二进制数据流型,则执行步骤D3 ;D2、创建信封数据,保持在当前操作的节点;执行步骤D4 ;D3、读取紧缩型XML树形结构的整型元素、字符串型元素、长整型元素或二进制数据流型元素节点的数据,给应用程序使用;D4、判断是否还有数据项,如果有,则返回步骤Dl ;否则执行步骤D5 ;D5、判断当前操作节点是否为根节点,如果是,则结束操作;否则返回上一级当前操作节点后,返回步骤D4。由上述的技术方案可见,本发明提供的这种基于扩展标记语言(XML)的网络数据传输方法,数据发送端将标准XML文件转换为二进制数据形式的紧缩型XML数据后通过网络发送给数据接收方。由于紧缩型XML数据全部为二进制数据形式,减少了数据量,因此减少了网络带宽的占用并提高了数据传输效率。


图1为现有技术基于XML的网络数据传输方法流程示意图2为本发明基于XML的网络数据传输方法流程示意图;图3为本发明采用的紧缩型XML数据结构实例图;图4为采用本发明方法将标准XML文件转换为紧缩型XML数据的处理流程图;图5为采用本发明方法将紧缩型XML数据转换为原始数据的处理流程图。
具体实施例方式以下参照附图并举具体实施例,对本发明进行详细说明。如图2所示,本发明的基于XML的网络数据传输方法的实施例的流程包括如下步骤:步骤201、数据发送端对将要传输的数据内容按照XML格式规范进行数据标记,生成标准的XML格式文件。步骤202、将生成的标准的XML格式文件中的各个数据项,按照预设的转换规则,转换为二进制数据形式的紧缩型XML数据。本实施例的转换规则为:采用XML的嵌套结构,用二进制数据形式存储各个数据项的标识信息和数据内容。XML的嵌套结构是指,具有能够嵌套多个数据项的数据项,这样的数据项的类型被称为信封数据类型。现有技术XML的数据结构中,将所有类型的数据项,包括信封数据项、整型数据项、字符串数据项、长整型数据项和二进制流数据项的标识和数据内容都用可见的格式(例如字符串形式)标识出来。而本发明中将标准XML文件转换为紧缩型XML数据的转换规则就是将可见的格式标识的数据项标识信息和数据内容,转换为用二进制数据形式存储各个数据项的标识信息和数据内容。在本实施例中,数据项的标识信息包括:数据项标识和数据类型。具体地,可以分别用整型数据形式存储各个数据项标识和数据类型。本实施例中,用“O”标识信封数据类型、“ I”标识整型、“2”标识字符串型、“3”标识长整型和“4”标识二进制数据流型。其中,信封数据类型的数据项中的数据内容中嵌套两个以上数据项。本实施例中,根据数据类型用不同的二进制数据形式存储各个数据项的数据内容,具体包括:用整型数据形式存储整型的数据内容;用UTF-8编码字符串形式存储字符串的数据内容;用长整型数据形式存储长整型的数据内容;用二进制流形式存储二进制流的数据内容。转换后的紧缩型XML数据格式的示例如图3所示。其中,第一个数据项的数据项标识为O、数据类型为O即信封型、数据内容包含了 j-m共4个数据项。而该数据项中数据标识为I的数据项又是一个信封类型,其中包括了数据项标识为j的数据项,数据项标识为j的数据类型为2即字符串型,数据内容为一个字符串。数据项标识为m的数据类型为3即长整型,数据内容为一长整型数。数据项标识为i的数据类型为I即整型,数据内容为一整型数。回到图2中步骤203、将紧缩型XML数据通过网络发送给数据接收端。步骤204、数据接收端接收紧缩型XML数据并存储。由于紧缩型XML数据本身已经是二进制形式的数据,可以由应用程序直接使用。因此,应用本发明后,数据接收端收到紧缩型XML数据后,不需要再转换成标准XML文件,直接存储待应用程序调用即可。步骤205、当应用程序要使用存储的紧缩型XML数据时,按照步骤202的转换规则,从所述紧缩型XML数据中,读取有效数据。本步骤中,数据接收端的应用程序读取有效数据时,是按照XML转换为紧缩型XML的规则,进行了。例如,可以预先存储紧缩型XML的格式、各个数据项类型与对应的整型数等。读取时,按照紧缩型XML的格式、各个数据项类型与对应的整型数,逐一从保存的紧缩型XML中读取数据项,获得其中的有效数据(即数据内容)。以下对将标准XML文件转换为紧缩型XML数据的过程进行详细说明。由于XML文件为树形结构,每个节点对应一个数据项,为保证数据的一致性,转换后的紧缩型XML数据也采用同样的树形结构,每个节点对应一个数据项。转换的过程简单的说就是:遍历所述XML文件的树形结构,对每个数据项按照上述转换规则转换为紧缩型XML数据项,建立与所述XML文件的树形结构相同的紧缩型XML数据的树形结构。具体的转换过程如图4所示,从XML文件的第一个节点即第一个数据项开始,执行如下步骤:步骤401、读取XML文件的一个数据项。本步骤中就是读取XML文件树形结构的一个节点的数据项。步骤402、判断该数据项的类型,如果是信封数据类型“0”,则执行步骤403 ;如果是整型“I”则执行步骤405 ;如果是字符串型“2”则执行步骤406 ;如果是长整型“3”则执行步骤407 ;如果是二进制数据流型“4”,则执行步骤408。步骤403、创建紧缩型XML树形结构的信封元素节点。实际应用中,可以创建一个集合,记录其数据标识和数据类型“O”。后续数据内容中嵌套的数据项都存储在该集合中。步骤404、标准XML文件的树形结构和紧缩型XML树形结构都保持在当前操作的节点;执行步骤410。实际应用中,可以通过几个指针指示当前操作的信封节点以及其中当前操作的数据项节点。步骤405、创建紧缩型XML树形结构的整型元素节点,执行步骤409。步骤406、创建紧缩型XML树形结构的字符串型元素节点,执行步骤409。步骤407、创建紧缩型XML树形结构的长整型元素节点,执行步骤409。步骤408、创建紧缩型XML树形结构的二进制数据流型元素节点。实际应用中,步骤405-408中可以为创建一个存储整型数据的数据结构,例如:数组等。步骤409、在紧缩型XML树形结构中保存当前操作节点的数据项。 实际应用中,就是将整型、字符串型、长整型或二进制数据流型数据项存储到相应的数据结构,例如:数组中。如果该数据项是某信封数据项的数据内容,则该数组存储到该信封数据项集合中。步骤410、判断标准XML文件的树形结构中是否还有数据项,如果有,则返回步骤401 ;否则执行步骤411。步骤411、判断当前操作节点是否是根节点,如果是,则保存紧缩型XML数据后结束操作;否则,执行步骤412。
步骤412、将标准XML文件的树形结构和紧缩型XML树形结构都返回上一级当前操作节点后,返回步骤410。这里的上一级是指,当处理完一个信封数据项中嵌套的所有数据项后,返回该信封数据项。本实施例中,使用紧缩型XML数据进行网络数据传输,能够减少XML的无效数据,提供有效数据占比。从而能够发 车XML的优势的同时,减少网络带宽的占有,提闻传输效率。以下举例对标准XML文件和紧缩型XML数据的数据量进行比较。例如:部分标准XML数据为:〈bookID type =" Integer" >22313〈/bookID>〈bookName type =" String" >My Home〈/bookName><auther type =" bytes" >JiMyMzU2NzsmIzI2MTI20w0KDQo = </auther>上述标准XML数据和紧缩型XML数据的数据量参见表1:如表I所示,原XML数据在中标记都是以字符串的方式存放,在紧缩型XML(XML-Compacted)格式中,这些标记都被整型化来代表。如表I中“bookID”转换为数字
1、“bookName”转换为数字2、“auther”转换为数字3。这样已数字的方式来代表字符串的标识,大量减少了非有效数据的字节量。

XML中的有效信息数据也分别由字符串类型数据转换为紧缩型XML数据类型:整型、长整型、UTF-8编码字符串和二进制流。把字符类型的信息值转换为二进制的信息值,大量减少了有效信息数据的字节量。
权利要求
1.一种基于扩展标记语言(XML)的网络数据传输方法,其特征在于,包括如下步骤: A、数据发送端将要传输的原始数据转换为标准XML文件; B、将标准XML文件中的各个数据项,按照预设的转换规则,转换为二进制数据形式的紧缩型XML数据; C、将紧缩型XML数据通过网络发送给接收端。
2.如权利要求1所述的网络数据传输方法,其特征在于,该方法还包括接收端存储接收的紧缩型XML数据; 当应用程序要使用存储的紧缩型XML数据时,执行步骤D ; D、按照步骤B的转换规则,从所述紧缩型XML数据中,读取有效数据。
3.如权利要求2所述的网络数据传输方法,其特征在于,步骤B所述的转换规则为:采用XML的嵌套结构,用二进制数据形式存储各个数据项的标识信息和数据内容。
4.如权利要求3所述的网络数据传输方法,其特征在于,所述用二进制数据形式存储各个数据项的标识信息包括:用整型数据形式存储各个数据项标识;用整型数据形式存储各个数据项的数据类型; 用二进制数据形式存储 各个数据项的数据内容包括:用整型数据形式存储整型的数据内容;用UTF-8编码字符串形式存储字符串的数据内容;用长整型数据形式存储长整型的数据内容;用二进制流形式存储二进制流的数据内容。
5.如权利要求4所述的网络数据传输方法,其特征在于,所述数据类型包括:信封数据类型、整型、字符串型、长整型和二进制数据流型; 其中,信封数据类型的数据项中的数据内容中嵌套两个以上数据项。
6.如权利要求5所述的网络数据传输方法,其特征在于,所述XML文件为树形结构,每个节点对应一个数据项; 步骤B所述的转换过程为:遍历所述XML文件的树形结构,对每个数据项按照所述转换规则转换为紧缩型XML数据项,建立与所述XML文件的树形结构相同的紧缩型XML数据的树形结构。
7.如权利要求6所述的网络数据传输方法,其特征在于,步骤B所述的转换过程包括: 从标准XML文件的树形结构的第一个节点开始,执行如下步骤: B1、读取该节点的数据项,并判断该数据项的类型,如果是信封数据类型,则执行步骤B2 ;如果是整型、字符串型、长整型或二进制数据流型,则执行步骤B3 ; B2、创建紧缩型XML树形结构的信封元素节点,标准XML文件的树形结构和紧缩型XML树形结构都保持在当前操作的节点;执行步骤B4 ; B3、创建紧缩型XML树形结构的整型元素、字符串型元素、长整型元素或二进制数据流型元素节点;并在紧缩型XML树形结构中保存当前操作节点的数据项; B4、判断标准XML文件的树形结构中是否还有数据项,如果有,则返回步骤BI ;否则执行步骤B5 ; B5、判断当前操作节点是否为根节点,如果是,则结束操作;否则标准XML文件的树形结构和紧缩型XML树形结构都返回上一级当前操作节点后,返回步骤B4。
8.如权利要求7所述的网络数据传输方法,其特征在于,所述步骤D包括: 从紧缩型XML数据的树形结构的第一个节点开始,执行如下步骤:D1、读取该节点的数据项,并判断该数据项的类型,如果是信封数据类型,则执行步骤D2 ;如果是整型、字符串型、长整型或二进制数据流型,则执行步骤D3 ; D2、创建信封数据,保持在当前操作的节点;执行步骤D4 ; D3、读取紧缩型XML树形结构的整型元素、字符串型元素、长整型元素或二进制数据流型元素节点的数据,给应用程序使用; D4、判断是否还有数据项,如果有,则返回步骤Dl ;否则执行步骤D5 ; D5、判断当前操作 节点是否为根节点,如果是,则结束操作;否则返回上一级当前操作节点后,返回步骤D4。
全文摘要
本发明公开了一种基于扩展标记语言(XML)的网络数据传输方法,包括如下步骤A、数据发送端将要传输的原始数据转换为标准XML文件;B、将标准XML文件中的各个数据项,按照预设的转换规则,转换为二进制数据形式的紧缩型XML数据;C、将紧缩型XML数据通过网络发送给接收端。应用本发明的网络数据传输方法,能够减少网络带宽的占用并提高传输效率。
文档编号G06F17/30GK103167001SQ201110421630
公开日2013年6月19日 申请日期2011年12月15日 优先权日2011年12月15日
发明者陈立峰 申请人:北京中文在线数字出版股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1