一种利用xml实现通用化数据交换的方法和系统技术方案

技术编号:9861834 阅读:96 留言:0更新日期:2014-04-02 20:04
本发明专利技术公开一种利用xml实现通用化数据交换的方法和系统,其中,包括步骤:采用xml格式对数据的结构进行描述,所述数据描述后包括字段名和预设长度的字段值及字段的起始位置信息;在进行序列化时,根据xml描述信息,将数据各字段值设置到指定位置,在设置完毕后得到数据的二进制流;在进行反序列化时,根据xml描述信息,利用数据的各字段名从二进制流中读取相应字段值。本发明专利技术采用通用化的设计,对二进制数据流进行反序列化,或者将数据序列化成二进制数据流,本发明专利技术的方法使得CS架构系统中的数据维护更加简便,即使修改某一数据结构,也无需对整个系统进行重新编译,同时也减少了不必要的网络流量。

【技术实现步骤摘要】
【专利摘要】本专利技术公开一种利用xml实现通用化数据交换的方法和系统,其中,包括步骤:采用xml格式对数据的结构进行描述,所述数据描述后包括字段名和预设长度的字段值及字段的起始位置信息;在进行序列化时,根据xml描述信息,将数据各字段值设置到指定位置,在设置完毕后得到数据的二进制流;在进行反序列化时,根据xml描述信息,利用数据的各字段名从二进制流中读取相应字段值。本专利技术采用通用化的设计,对二进制数据流进行反序列化,或者将数据序列化成二进制数据流,本专利技术的方法使得CS架构系统中的数据维护更加简便,即使修改某一数据结构,也无需对整个系统进行重新编译,同时也减少了不必要的网络流量。【专利说明】一种利用xml实现通用化数据交换的方法和系统
本专利技术涉及网络通信
,尤其涉及一种利用xml实现通用化数据交换的方法和系统。
技术介绍
在CS架构的系统中,客户端与服务端之间的通讯,需要两端协商并定义消息的格式;在一些独立的应用程序中,根据业务需要也须定义数据格式;在C、C++开发的系统中,这些消息或者数据一般采用数据结构(Struct)来定义,这些数据结构的定义,通常会放在一个头文件中,以便被引用。但是对于一个比较复杂CS架构的系统,消息或数据比较多,随之而来的是,需要定义很多数据结构,维护起来相当困难,而且一旦修改其中的某一个数据结构,则整个系统都需要重新编译,所以现有使用数据结构定义的网络通信的数据交换方法效率较低。有些CS架构的系统采用xml、json的格式来传输数据,虽然这种方式使用起来较方便,数据格式也比较清晰,但是由于上述传输方式传输的是字符型数据,数据量大,在通讯时带来不必要的网络流量。因此,现有技术还有待于改进和发展。
技术实现思路
鉴于上述现有技术的不足,本专利技术的目的在于提供一种利用xml实现通用化数据交换的方法和系统,旨在解决现有的数据传输方式维护不方便、效率低、流量大的问题。本专利技术的技术方案如下: 一种利用xml实现通用化数据交换的方法,其中,包括步骤: 采用xml文件对数据的结构进行描述,所述数据描述后包括字段名和预设长度的字段值及字段的起始位置信息; 在进行序列化时,根据xml描述信息,将数据各字段值设置到指定位置,在设置完毕后得到数据的二进制流; 在进行反序列化时,根据xml描述信息,利用数据的各字段名从二进制流中读取相应字段值。所述的利用xml实现通用化数据交换的方法,其中,采用xml文件对数据进行描述的步骤具体包括: 对数据的名称、类型、长度及位置分别描述。所述的利用xml实现通用化数据交换的方法,其中,当数据类型为char时,其长度为I字节,当数据类型为short时,其长度为2字节,当数据类型为int时,其长度为4字节,当数据类型为long时,其长度为4字节,当数据类型为float时,其长度为4字节,当数据类型为double时,其长度为8字节,当数据类型为string时,其长度不定。所述的利用xml实现通用化数据交换的方法,其中,序列化的步骤具体包括: B1、解析xml,加载数据的xml描述信息,获取数据的ID ; B2、根据数据的ID以及xml描述信息,确定数据的大小,根据该大小申请数据的内存;B3、根据xml描述信息中的各字段名对应的数据长度及位置信息,设置相应字段值到所述内存中得到数据的二进制流。所述的利用xml实现通用化数据交换的方法,其中,反序列化的步骤具体包括: Cl、解析xml,加载数据的xml描述信息,从二进制流的开头读取数据的ID ; C2、根据xml描述信息中的各字段名对应的数据大小,获取相应字段值在二进制流中的开始位置以及结束位置的信息; C3、根据字段开始位置以及结束位置的信息读取字段值,并结合相应字段名还原出原始数据。一种利用xml实现通用化数据交换的系统,其中,包括: 描述模块,用于采用xml文件对数据的结构进行描述,所述数据描述后包括字段名和预设长度的字段值及字段的起始位置信息; 序列化模块,用于在进行序列化时,根据xml描述信息,将数据各字段值设置到指定位置,在设置完毕后得到数据的二进制流; 反序列化模块,用于在进行反序列化时,根据xml描述信息,利用数据的各字段名从二进制流中读取相应字段值。所述的利用xml实现通用化数据交换的系统,其中,所述描述模块用于对数据的名称、类型、长度及位置分别描述。所述的利用xml实现通用化数据交换的系统,其中,所述序列化模块具体包括: 数据ID获取单元,用于解析xml,加载数据的xml描述信息,获取数据的ID ; 内存申请单元,用于根据数据的ID以及xml描述信息,确定数据的大小,根据该大小申请数据的内存; 字段值设置单元,用于根据xml描述信息中的各字段名相应的数据长度及位置信息,设置相应字段值到所述内存中得到数据的二进制流。所述的利用xml实现通用化数据交换的系统,其中,所述反序列化模块具体包括: 数据ID读取单元,用于解析xml,加载数据的xml描述信息,从二进制流的开头读取数据的ID ; 位置信息获取单元,用于根据xml描述信息中的各字段名对应的数据大小,获取相应字段值在二进制流中的开始位置以及结束位置的信息; 字段值读取单元,用于根据字段开始位置以及结束位置的信息读取字段值,并结合相应字段名还原出原始数据。所述的利用xml实现通用化数据交换的系统,其中,当数据类型为char时,其长度为I字节,当数据类型为short时,其长度为2字节,当数据类型为int时,其长度为4字节,当数据类型为long时,其长度为4字节,当数据类型为float时,其长度为4字节,当数据类型为double时,其长度为8字节,当数据类型为string时,其长度不定。有益效果:本专利技术针对CS架构中客户端与服务端之间交换的数据,进行通用化的设计,采用xml对数据结构进行描述,根据xml的描述信息,对数据进行序列化与反序列化,达到通过xml描述,即可对二进制数据流进行反序列化,或者将数据序列化成二进制数据流,本专利技术的方法使得CS架构系统中的数据维护更加简便,即使修改某一数据结构,也无需对整个系统进行重新编译,同时也减少了不必要的网络流量。【专利附图】【附图说明】图1为本专利技术一种利用xml实现通用化数据交换的方法较佳实施例的流程图。图2为数据的二进制流的结构示意图。图3为利用本专利技术的方法对数据进行xml描述后的数据块的结构示意图。图4为图1所示方法中步骤S102的具体流程图。图5为图1所示方法中步骤S103的具体流程图。图6为本专利技术一种利用xml实现通用化数据交换的系统较佳实施例的结构框图。图7为图6所示系统中序列化模块的具体结构框图。图8为图6所示系统中反序列化模块的具体结构框图。【具体实施方式】 本专利技术提供一种利用xml实现通用化数据交换的方法和系统,为使本专利技术的目的、技术方案及效果更加清楚、明确,以下对本专利技术进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。请参阅图1,图1为本专利技术一种利用xml实现通用化数据交换的方法较佳实施例的流程图,如图所示,其包括步骤: 5101、采用xml格式对数据的结构进行描述,所述数据描述后包括字段名和预设长本文档来自技高网
...

【技术保护点】
一种利用xml实现通用化数据交换的方法,其特征在于,包括步骤:采用xml文件对数据的结构进行描述,所述数据描述后包括字段名和预设长度的字段值及字段的起始位置信息;在进行序列化时,根据xml描述信息,将数据各字段值设置到指定位置,在设置完毕后得到数据的二进制流; 在进行反序列化时,根据xml描述信息,利用数据的各字段名从二进制流中读取相应字段值。

【技术特征摘要】

【专利技术属性】
技术研发人员:朱锦华
申请(专利权)人:TCL集团股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1