CN101222476A - 一种可扩展标记语言文件编辑器、文件传输方法及系统 - Google Patents

一种可扩展标记语言文件编辑器、文件传输方法及系统 Download PDF

Info

Publication number
CN101222476A
CN101222476A CNA2007100003071A CN200710000307A CN101222476A CN 101222476 A CN101222476 A CN 101222476A CN A2007100003071 A CNA2007100003071 A CN A2007100003071A CN 200710000307 A CN200710000307 A CN 200710000307A CN 101222476 A CN101222476 A CN 101222476A
Authority
CN
China
Prior art keywords
xml file
node
data
module
expression
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
CNA2007100003071A
Other languages
English (en)
Other versions
CN101222476B (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.)
Shenzhen Zhitong World Technology Service Co. Ltd.
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN2007100003071A priority Critical patent/CN101222476B/zh
Publication of CN101222476A publication Critical patent/CN101222476A/zh
Application granted granted Critical
Publication of CN101222476B publication Critical patent/CN101222476B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种可扩展的标记语言文件编辑器、文件传输的方法及系统,包括按映射关系将第一XML文件中的第一数据用标识替换后得到第二XML文件,所述映射关系是根据第一数据在XML文件中的定义次序与标识建立的;再将第二XML文件进行传输;按所述映射关系将传输至的第二XML文件中的标识用第一数据恢复后得到第一XML文件。进一步的,在传输之前对第二XML文件根据元素、元素属性和命名空间的数字标识、以及所标识节点的类型,按树的深度搜索次序对XML树形结构的实例文档进行编解码。使用本发明就能大量减少冗余负荷以提高净负荷的占有率,进而大幅度提升了网络带宽利用率和网络传输效率。

Description

一种可扩展标记语言文件编辑器、文件传输方法及系统
技术领域
本发明涉及电子文件编辑、电子文件传输领域,特别涉及一种可扩展的标记语言(XML,EXtensible Markup Language)文件编辑器、文件传输的方法及系统。
背景技术
XML以出色的可扩展性、自描述性和采用ASCII编码机制形成的易读性,被IT界公认为标准的标记和描述语言。目前XML语言应用日益广泛,但由于目前XML在编码中包含了大量的标签(Tag)、属性名、空格等冗余负荷而导致净负荷所占比率很低,因此使得用XML语言编写的文件在传输过程中浪费了大量的网络带宽。所以XML需要经历一个“瘦身”的过程以提高网络带宽的利用率并提高传输效率。针对这个课题,目前业界的焦点是XML的二进制编码,其主要思想是将XML文本文档以类似BER/XDR(基本编码规则/外部数据表示,Basic Encoding Rules/External Data Represent)方式进行编码,例如将原ASCII的编码方式下的整形值字符串“-123”改成一个比特(Byte)的数值“0X85”来描述,相应程度减少了数据量。这种编码思想目前也是在讨论阶段,并没有验证数据来证明它解决了现实中XML的“肥胖”问题,万维网联盟(W3C,World Wide Web Consortium)也没有如何通过二进制编码对XML文本内容进行“瘦身”的标准。
以下是一个简单的XML文档模式文件Person.xsd,其中定义了person元素及其类型:
       <?xml version=″1.0″encoding=″UTF-8″?>
     <xsd:schema                 xmlns:xsd=″http://www.w3.org/2001/XMLSchema″
attributeFormDefault=″unqualified″elementFormDefault=″qualified″>
<xsd:element name=″person″type=″personType″/>
<xsd:complexType name=″personType″>
  <xsd:annotation>
    <xsd:documentation>The data type of person</xsd:documentation>
  </xsd:annotation>
<xsd:sequence>
    <xsd:element name=″name″type=″xsd:string″/>
    <xsd:element name=″age″type=″xsd:integer″/>
    <xsd:element name=″contactInformation″type=″contactInfoType″/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name=″contactInfoType″>
<xsd:annotation>
    <xsd:documentation>The data type of contact</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
    <xsd:element    name=″emailAddress″type=″xsd:string″
maxOccurs=″unbounded″/>
    <xsd:element    name=″mobileNumber″type=″xsd:string″
maxOccurs=″unbounded″/>
</xsd:sequence>
<xsd:attribute name=″preferable″type=″xsd:string″use=″optional″/>
</xsd:complexType>
</xsd:schema>
在当前以ASCII等编码机制进行编码时,上述Person文档模式的实例可以将一姓名(name)为ZhanSan,年龄(age)为25,电子邮件地址(emailAddress)分别为ZhanSan@yahoo.com、ZhanSan@hotmail.com,移动电话号码(mobileNumber)为12468860888的信息描述如下:
<person>
  <name>ZhanSan</name>
  <age>25</age>
  <contactInfomation preferable=”mobileNumber”>
<emailAddress>ZhanSan@yahoo.com</emailAddress>
<emailAddress>ZhanSan@hotmail.com</emailAddress>
<mobileNumber>12468860888</mobileNumber>
  <contactInfomation>
</person>
从上所述的实例可以看出以ASCII等编码机制进行编码时得到一个长度为256个字符的数据,这个长度为256个字符的数据将通过封装和通讯平台的支撑在两个对等实体之间进行传输。
从该例看出现有技术中编码后的XML文档净负荷所占比率很低、冗余数据比例高的不足是显而易见的,如:256个字符(包含空格)中净负荷(值)只占68个字符,其他188个字符全部被tag、属性名、空格等消耗掉,其净负荷所占比例仅为26.7%,冗余数据所占比率高达73.3%。由此可推理传输这种XML文档时网络带宽的有效利用率仅为26.7%,同时传输效率也很低。
同时,在实现本发明过程中,发明人还发现现有技术中还存在不足是:对于数值类型如示例中<age>25</age>中的数值25,在编码时需要将内存中整形值0x00000019转换成字符串值”25”、在解码时需要将字符串值”25”转换成整形值0x00000019,这种数值<->字符串的相互转换降低了编/解码效率。
因此,对于当前ASCII编码的XML文档直接转换成二进制编码的技术方案存在以下不足:
1、对XML文档进行二进制编码只有当XML Schema(XML文档模式)中大量元素是数值类型(Integer、Short、Float、Double...),且用ASCII描述的元素值字符数大大超过用二进制描述的字符数时才显得有意义。但据统计实际XML文档中绝大多数元素都是以字符串为基本类型来描述的,即便是数值类型其数值字符长度一般也不会太长,所以绝大部分场景下通过直接对XML文档进行二进制编码转换来“瘦身”的效果并不明显。
2、无论是使用二进制编码还是ASCII编码,因其没有大量减少XML文档中的大量冗余负荷如标签、属性名、空格占有率,所以其“瘦身”效果都收效甚微。
发明内容
本发明的实施例提供了一种可扩展的标记语言文件编辑器、文件传输方法及系统,用以解决现有技术中存在的在传输XML文件时网络带宽有效利用率低,导致网络传输效率降低的问题。
本发明的实施例提供的一种可扩展的标记语言文件传输方法,包括如下步骤:
按映射关系将第一可扩展的标记语言XML文件中的第一数据用标识替换后得到第二XML文件,所述映射关系是根据第一数据在XML文件中的定义次序与标识建立;
传输所述第二XML文件;
按所述映射关系将所述第二XML文件中的标识用第一数据恢复后得到第一XML文件。
本发明的实施例还提供了一种可扩展的标记语言文件传输系统,包括用于数据文件传输的传输设备,还包括:
映射模块,用于根据第一数据在可扩展的标记语言XML文件中的定义次序将第一数据与标识建立映射关系;
替换模块,用于按所述映射关系将第一XML文件中的第一数据用标识替换后得到第二XML文件,并交由所述传输设备进行传输;
恢复模块,用于按所述映射关系将所述传输设备传输至的第二XML文件中的标识用第一数据恢复后得到所述第一XML文件。
本发明的实施例又提供了一种XML文件编辑器,包括用于XML文件处理的编辑模块,还包括映射模块、替换模块、恢复模块,其中:
所述映射模块,用于根据第一数据在可扩展的标记语言XML文件中的定义次序将第一数据与标识建立映射关系;
所述替换模块,用于按所述映射关系将编辑模块处理后的XML文件中的第一数据用标识替换;
所述恢复模块,用于将传输至的XML文件标识按所述映射关系用第一数据恢复后交由所述编辑模块处理。
本发明实施例的有益效果如下:
由于在本发明的实施例中,根据XML文件中定义的冗余数据相对于其兄弟数据都有一个静态的次序编号,这个静态的次序编号可以用来标识这些冗余数据。因此在XML文件的实例文档编码中,用对应的标识来表示这些冗余数据就能大量减少冗余负荷以提高净负荷的占有率,进而大幅度提升了网络带宽利用率和网络传输效率。
由于本发明的实施例将XML文件中定义的每个元素、元素属性和命名空间用对应的数字标识来替换他们冗长的字符串名称,使得数字标识置换名称后的XM文件因所含净负荷比例大大提升,所以将更有效的利用网络带宽,同时因字符数大幅减少而大幅提升网络传输效率。
附图说明
图1为本发明实施例中所述Person.xsd文件的数字标识树结构示意图;
图2为本发明实施例中所述XML文件传输方法的实施流程示意图;
图3为本发明实施例中所述将映射关系建立在XML文件的传输工作示意图;
图4为本发明实施例中所述XML文件传输系统结构示意图;
图5为本发明实施例中所述XML文件编辑器结构示意图。
具体实施方式
本发明实施例通过降低XML文档中过高的冗余数据比例,从而提高传输XML文档时网络带宽有效利用率,同时提高网络的传输效率。为实现本发明实施例的目的,通过对XML文档结构的研究可以发现,在XML文档模式中的第一数据的定义次序相对于其兄弟节点是静态的,所述的兄弟节点是指具有同一个父节点的节点。在具体实施中,将元素、属性以及命名空间作为第一数据进行说明。第一数据的相对静态的定义次序可以用数字[1...n]来标识,本例中对于与标识相应的是用数字标识来进行说明的。上例中为了直观一点,可以将XML文档模式定义推导成一个多叉逻辑树来描述各元素、元素属性以及命名空间的层次关系和定义次序关系。按照XML文档构造DOM树(DocumentObject Model文档对象模型)的相同方式,XML文档模式中每个元素按其定义顺溯都可以将其与其属性、子元素串成一颗静态的多叉逻辑树,多叉逻辑树的根就是这个元素。因此,一个XML文档模式文档可以推导成一棵以XML文档模式文档为根元素、[1...n]个以XML文档模式元素为一级子树根构成的静态多叉逻辑树,XML文档模式中定义的元素、元素属性以及命名空间与逻辑树的节点一一对应并含有与树的节点编排次序(也就是元素、元素属性以及命名空间在XML文档模式中定义次序)完全一致的数字标识。
以上面定义Person的XML文档模式为例来看看其定义的元素、元素属性以及命名空间的数字标识是如何分配的。这里将每个树节点定义为:
Node{
      ID,
      NodeType,
      ValueType,
      NumberOf SubNode,
      NodeName}
其中:
NodeName:表示元素名、属性名或命名空间名;
ID:表示在XML Schema定义中此元素、元素属性或命名空间相对于其兄弟节点的次序,也就是它的数字标识,取值为[1..n];
NodeType:表示这个节点的类型,如元素(E)、属性(A)、命名空间(N)、根(R);
ValueType:当该节点是原子类型节点如属性节点、命名空间节点或叶子元素节点时,该值表示元素、属性、命名空间值的类型,如String、Date、Integer、Float等,否则该属性忽略;
NumberOfSubNode:表示节点的下一级子节点个数,对于原子类型节点如属性节点、命名空间节点或叶子元素节点时,该属性忽略(始终为零)。
图1为Person.xsd文件的数字标识树结构示意图,如图所示为Person.xsd的文档模式推导出的W3C DOM逻辑树,以person(2,E,3)为例子说明非原子节点的属性所代表的含义:
Person:表示该节点的节点名称;
2:表示该节点相对于其兄弟节点的次序是2,它前面的兄弟节点是XSD(1,N,String,0);
E:表示该节点的类型是“元素”;
3:表示该节点的下一级子节点的个数是3,子节点分别是name,age,contactInformation;
因该节点不是原子类型节点,所以没有ValueType属性。
以emailAddress(2,E,String,0)为例子说明原子节点的属性所代表的含义:
emailAddress:表示该节点的节点名称;
2:表示该节点相对于其兄弟节点的次序是2,它前面的兄弟节点是preferable(1,A,String,0);
E:表示该节点的类型是“元素”;
String:表示该节点的值的类型是string;
因该节点是原子类型节点,所以没有NumberOfSubNode属性。
同时,由此逻辑树可见XML Schema中定义的每个元素、元素属性和命名空间都含有与其一一对应的、相对其兄弟节点的数字标识。在XML实例文档编码中用元素、元素属性以及命名空间对应的数字标识来替换他们冗长的字符串名称。
元素person用2代替;
元素person的子元素age用2代替;
元素contactInformation的属性preferabe用1来代替;
......
按照这种方法将元素、属性及命名空间等用数字标识替换,上面的Person实例文档就可以缩减成:
<2>
  <1>ZhanSan</1>
  <2>25</2>
  <3 1=”mobileNumber”>
<2>ZhanSan@yahoo.com</2>
<2>ZhanSan@hotmail.com</2>
<3>12468860888</3>
  <3>
</2>
结合上面替换后的实例表达可知,缩减后的Person实例文档字符(包含空格)数为130个,其净负荷(值)占68个字符,有效负荷所占比例从缩减前的26.7%提升了近一倍达到了52.3%。数字标识置换名称后的XML实例文档因所含净负荷比例大大提升,所以将更有效的利用网络带宽,同时因字符数大幅减少所以将大幅提升网络传输效率。
进一步的,此时,采用Expression=(ID,Length,Value|Expression)*递归的语法表达式按树的深度搜索次序对XML树形结构的实例文档进行编码,Expression(Object target,String methodName,Object|arguments)所表达的是按照所给参数创建一个新的Statement对象,使其具有target、methodName和arguments。本例中,其中:
ID:表示元素、元素属性和命名空间的数字标识,其值域是整数。为了高效利用内存空间,值域可以使用变长的整数来表示:每个字节的最高bit位表示是否有后续字节,即:1--表示有后续字节,0-表示无后续字节。例如:如果某元素的数字标识为10则ID=0x0A,某元素的数字标识为200则ID=0x4148。
Length:其值域是整数。可以和ID一样使用变长的整数来表示,本例中此处不限。
当ID所标识的节点是原子节点时,Length值表示该原子节点值二进制编码后的字节长度。
当ID所标识的节点有子节点时,Length值表示其下一级子节点的个数。
Value|Expression:1)当ID所标识的节点是原子节点时,表示对应的元素、属性或命名空间的二进制编码值;
2)当ID所标识的节点有子节点时,表示其子节点的(ID,Length,Value|Expression)*嵌套序列。
按照这种方法上面的Person实例文档就可以编码成:
OFFSET    HEX BYTES
0         02 03 01 07
4         5A 68 61 6E
8         53 61 6E 02
12        01 19 03 04
16        01 0C 75 00
20        6D 00 62 00
24        65 00 72 00
28    02 11 5A 68
32    61 6E 53 61
36    6E 40 79 61
40    68 6F 6F 2E
44    63 6F 6D 02
48    13 5A 68 61
52    6E 53 61 6E
56    40 68 6F 74
60    6D 61 69 6C
64    2E 63 6F 6D
68    03 0B 31 32
72    34 36 38 38
76    36 30 38 38
80    38
编码后Person实例文档字符总数仅为81个,其净负荷(值)占68个字符,有效负荷所占比例从ASCII编码的26.7%提升到84%。从上述可以看出采用Expression=(ID,Length,Value|Expression)*递归的语法表达式编码后的XML实例文档因所含净负荷比例大大提升,所以将更有效的利用网络带宽,同时因字符数大幅减少而将大幅提升网络传输效率。
根据以上原理,下面对XML文件传输方法的具体实施进行说明。
图2是XML文件传输方法的实施流程示意图,如图所示,包括如下步骤:
步骤201、按映射关系将第一XML文件中的第一数据用标识替换后得到第二XML文件,其中映射关系是根据第一数据在XML文件中的定义次序与标识建立的;
步骤202、将第二XML文件进行传输;
步骤203、按映射关系将传输至的第二XML文件中的标识用第一数据恢复后得到第一XML文件。
在具体实施的优选中,选用命名元素和/或元素属性和/或命名空间标签的字符串为第一数据,选用数字标识作为标识。在XML实例文档接收方,XML解析器只需要按照相同的方式遍历与发送方相同的XML Schema推导出的数字标识树就可以将XML实例文档中的数字标识还原成为元素名、属性名或命名空间名。
进一步的优选实施中,可以在步骤201中,将映射关系建立在XML文件的解/编码中,在XML文件中按映射关系将第一XML文件中的第一数据用标识替换后得到第二XML文件,然后将第二XML文件进行编码;
在步骤203中,将传输至的第二XML文件的标识在XML文件解码后,按映射关系用第一数据恢复后得到第一XML文件。
当在XML编/解码中间件中集成了这种思想,应用程序用XML编/解码中间件将可以直接生成用数字标识名称的XML实例文档然后传输给对等的应用实体,而不需要先生成用字符串表示名称的实例文档然后再转换成数字标识名称的XML实例文档,图3为将映射关系建立在XML文件的传输工作示意图,从图所示的数字置换名称的XML实例文档在对等应用实体件的替换、恢复及传输的流程显然可以看出,将映射关系建立在XML文件的传输中后,将大大提升应用传输XML实例文档的效率。
更进一步为了解决采用ASCII编码时,对于数值类型如Integer、Short、Float、Double在编/解码时需要进行数值<->字符串的相互转化时,影响编/解码效率的问题。优选实施时还可以进一步包括:
根据第一数据和标识、以及第一数据标识的节点类型,按树的深度搜索次序对第二XML文件进行编码后,再将编码后的第二XML文件进行传输。
编码时,采用Expression=(ID,Length,Value|Expression)*递归的语法表达式,按树的深度搜索次序对第二XML文件进行编码,其中:
ID:表示元素、元素属性和命名空间的标识,其值域是整数;
Length:其值域是整数,当ID所标识的节点是原子节点时,Length值表示该原子节点值二进制编码后的字节长度;当ID所标识的节点有子节点时,Length值表示其下一级子节点的个数;
Value|Expression:当ID所标识的节点是原子节点时,表示对应的元素、属性或命名空间的二进制编码值;当ID所标识的节点有子节点时,表示其子节点的(ID,Length,Value|Expression)*嵌套序列。
XML实例文档的发送方和接收方在编解码时需要访问XML Schema的数字标识树以获取元素、元素属性以及命名空间的属性信息:
Node{
     NodeName,
     ID,
     NodeType,
     ValueType,
     NumberOf SubNode}
应用程序中的XML编解码中间件使用相同的XML scheme文件如persion.xsd构造的数字标识树,因scheme和构造数字标识树的规则都是相同的,所以应用程序所构造出的数字标识树person是相同的。应用程序在发送或接收XML实例数据时,各自的XML编/解码中间件按照相同的数字标识树对实例数据进行二进值编码或还原。这样在应用程序之间的网络上传输的是采用了(ID,Length,Value|Expression)*编码后的二进制XML实例数据。
为进一步的提高传输效率,还可以提供又一优选实施是在传输前将XML文件中的第二数据删除。第二数据在优选实施中选用如回车字符和/或空格字符等文档格式化字符。这样结合应用在数值置换名称后的XML实例文档上可以进一步减少冗余数据、提升有效数据的比例。如上面数字置换名称后的XML实例文档可以进一步优化成:
<2><1>ZhanSan</1><2>25</2><31=”mobileNumber”><2>ZhanSan@yahoo.com</2><2>ZhanSan@hotmail.com</2><3>12468860888</3><3></2>
其有效负荷占有比例从删除回车、空格前的52.3%提升到56.7%。
优选实施中,还可以进一步包括如下步骤:
在传输前将第二XML文件进行压缩;
在传输后将第二XML文件进行解压缩。
实施时可以使用压缩工具压缩,这种方式也可以应用在数值置换名称后的XML实例文档上以进一步减少XML文档数据、提升网络传输效率。
根据以上所述的本发明实施例的构思,本发明的实施例还提供了一种XML文件传输系统,下面将如何具体实施本系统作出说明。
图4为XML文件传输系统结构示意图,如图所示,本系统中包括映射模块401、替换模块402、传输设备403、恢复模块404。其中:
传输设备403用于数据文件传输;
映射模块401,根据第一数据在XML文件中的定义次序将第一数据与标识建立映射关系;
替换模块402,按映射关系将第一XML文件中的第一数据用标识替换后得到第二XML文件,并交由传输设备403进行传输;
恢复模块404,按映射关系将传输设备403传输至的第二XML文件中的标识用第一数据恢复后得到第一XML文件。
在具体实施的优选中,选用命名元素和/或元素属性和/或命名空间标签的字符串为第一数据,选用数字标识作为标识。在XML实例文档接收方,XML解析器只需要按照相同的方式遍历与发送方相同的XML Schema推导出的数字标识树就可以将XML实例文档中的数字标识还原成为元素名、属性名或命名空间名。
优选实施中,还可以进一步包括编码模块405、解码模块406,解/编码模块是为了更进一步的解决采用ASCII编码时,对于数值类型如Integer、Short、Float、Double在编/解码时需要进行数值<->字符串的相互转化时,影响编/解码效率的问题。
编码模块根据第一数据和标识、以及第一数据标识的节点类型,按树的深度搜索次序,对替换模块替换后的第二XML文件进行编码,再将编码后的第二XML文件交给传输设备进行传输。
编码时,采用ExPression=(ID,Length,Value|ExPression)*递归的语法表达式,按树的深度搜索次序对第二XML文件进行编码,其中:
ID:表示元素、元素属性和命名空间的标识,其值域是整数;
Length:其值域是整数,当ID所标识的节点是原子节点时,Length值表示该原子节点值二进制编码后的字节长度;当ID所标识的节点有子节点时,Length值表示其下一级子节点的个数;
Value|Expression:当ID所标识的节点是原子节点时,表示对应的元素、属性或命名空间的二进制编码值;当ID所标识的节点有子节点时,表示其子节点的(ID,Length,Value|Expression)*嵌套序列。
解码模块,则按同样的方式将传输设备传输至的第二XML文件解码,然后交给恢复模块恢复成第一XML文件。
XML实例文档的发送方和接收方在编解码时需要访问XML文档模式的数字标识树以获取元素、元素属性以及命名空间的属性信息:
Node{
     NodeName,
     ID,
     NodeType,
     ValueType,
     NumberOf SubNode}
应用程序中的XML编解码中间件使用相同的XML文档模式文件如persion.xsd构造的数字标识树,因文档模式和构造数字标识树的规则都是相同的,所以应用程序所构造出的数字标识树person是相同的。应用程序在发送或接收XML实例数据时,各自的XML编/解码中间件按照相同的数字标识树对实例数据进行二进值编码或还原。这样在应用程序之间的网络上传输的是采用了(ID,Length,Value|Expression)*编码后的二进制XML实例数据。
为进一步的提高传输效率,还可以提供又一优选实施是进一步包括数据删除模块,用于在传输前将XML文件中的第二数据删除。第二数据在优选实施中选用如回车字符和/或空格字符等文档格式化字符。这样结合应用在数值置换名称后的XML实例文档上可以进一步减少冗余数据、提升有效数据的比例。如上面数字置换名称后的XML实例文档可以进一步优化成:
<2><1>ZhanSan</1><2>25</2><31=”mobileNumber”><2>ZhanSan@yahoo.com</2><2>ZhanSan@hotmail.com</2><3>12468860888</3><3></2>
其有效负荷占有比例从删除回车、空格前的52.3%提升到56.7%。
优选实施中,还可以进一步包括与编码模块相连的压缩模块,和/或与解码模块相连的解压模块。压缩模块,用于在传输前将第二XML文件进行压缩;解压模块,用于在传输后将第二XML文件进行解压缩。
实施时压缩模块可以选用压缩工具,这种方式也可以应用在数值置换名称后的XML实例文档上以进一步减少XML文档数据、提升网络传输效率。
基于同一发明构思,本发明的实施例还提供了一种XML文件编辑器,包括映射模块、替换模块、恢复模块。替换模块在XML文件交由传输设备进行传输之前,按映射关系将XML文件中的第一数据用标识替换;恢复模块将传输至的XML文件的标识按映射关系用第一数据恢复。
图5为XML文件编辑器结构示意图,如图所示,在XML文件编辑器中包括用于XML文件处理的编辑模块501、映射模块401、替换模块402、恢复模块404。
具体实施中,当文件编辑器工作时,映射模块根据第一数据在可扩展的标记语言XML文件中的定义次序将第一数据与标识建立映射关系;
当编辑模块对XML文件进行处理后,替换模块则按映射关系将编辑模块处理后的XML文件中的第一数据用标识替换;
当接收到需要处理的XML文件后,恢复模块将XML文件标识按映射关系用第一数据恢复后交由编辑模块处理。
优选实施中,还可以包括编码模块405、解码模块406;编码模块与替换模块相连,根据所述第一数据和标识、以及第一数据标识的节点类型,采用Expression=(ID,Length,Value|Expression)*递归的语法表达式,按树的深度搜索次序对替换模块处理后的XML文件进行编码;解码模块与恢复模块相连,根据第一数据和标识、以及第一数据标识的节点类型,采用Expression=(ID,Length,Value|Expression)*递归的语法表达式,按树的深度搜索次序对编码后的XML文件进行解码,并将解码后的XML文件交由恢复模块处理。
其中:ID:表示元素、元素属性和命名空间的标识,其值域是整数;
Length:其值域是整数,当ID所标识的节点是原子节点时,Length值表示该原子节点值二进制编码后的字节长度;当ID所标识的节点有子节点时,Length值表示其下一级子节点的个数;
Value|Expression:当ID所标识的节点是原子节点时,表示对应的元素、属性或命名空间的二进制编码值;当ID所标识的节点有子节点时,表示其子节点的(ID,Length,Value|Expression)*嵌套序列。
本实施例其目的是:如果在XML文件编辑器中集成了映射、替换、恢复、编/解码这种思想,应用程序用XML文件编辑器时将可以直接生成用数字标识名称的XML实例文档经过编/解码,然后传输给对等的应用实体,显然,将映射、替换、恢复、解/编码建立在XML文件编辑器后,将大大提升应用于XML实例文档的处理效率。
由本发明实施例可以看出,本发明实施例是将XML Schema中定义的各元素、元素属性以及命名空间相对于其兄弟都有一个静态的次序编号[1...n],并利用这个静态的次序编号[1...n]来标识这些元素、元素属性和命名空间。在此XML Schema的实例文档编码中,用对应的数字标识[1...n]来表示元素、属性以及命名空间的标签名称,从而大量减少冗余负荷以提高净负荷的占有率,进而提升了网络带宽利用率和网络传输效率。进一步的,根据这些元素、元素属性、命名空间和标识、以及标识的节点类型,按树的深度搜索次序对XML文件进行编/解码,编码后的XML实例文档因所含净负荷比例大大提升,所以将更有效的利用网络带宽,同时因字符数大幅减少所以将大幅提升网络传输效率。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (15)

1.一种可扩展的标记语言文件传输方法,其特征在于,包括如下步骤:
按映射关系将第一可扩展的标记语言XML文件中的第一数据用标识替换后得到第二XML文件,所述映射关系是根据第一数据在XML文件中的定义次序与标识建立;
传输所述第二XML文件;
按所述映射关系将所述第二XML文件中的标识用第一数据恢复后得到第一XML文件。
2.如权利要求1所述的方法,其特征在于,进一步包括如下步骤:
对所述替换后得到的第二XML文件根据映射关系进行XML编码;
对传输至的第二XML文件根据映射关系进行解码。
3.如权利要求2所述的方法,其特征在于,所述第一数据是命名元素、元素属性和命名空间之一或其组合的字符串,所述标识是数字标识。
4.如权利要求3所述的方法,其特征在于,所述对第二XML文件进行编/解码的步骤,具体为:
根据所述第一数据和标识、以及第一数据标识的节点类型,按树的深度搜索次序对所述第二XML文件进行编/解码。
5.如权利要求4所述的方法,其特征在于,所述根据所述第一数据和标识、以及第一数据标识的节点类型,按树的深度搜索次序对所述第二XML文件进行编/解码的步骤,具体为:
根据所述第一数据和标识、以及第一数据标识的节点类型,采用Expression=(ID,Length,Value|Expression)*递归的语法表达式,按树的深度搜索次序对所述第二XML文件进行编/解码;其中:
ID:表示元素、元素属性和命名空间的标识,其值域是整数;
Length:其值域是整数,当ID所标识的节点是原子节点时,Length值表示该原子节点值二进制编码后的字节长度;当ID所标识的节点有子节点时,Length值表示其下一级子节点的个数;
Value|Expression:当ID所标识的节点是原子节点时,表示对应的元素、属性或命名空间的二进制编码值;当ID所标识的节点有子节点时,表示其子节点的(ID,Length,Value|Expression)*嵌套序列。
6.如权利要求1所述的方法,其特征在于,进一步包括如下步骤:
在传输所述第二XML文件前将第一XML文件和/或第二XML文件中的第二数据删除。
7.如权利要求6所述的方法,其特征在于,所述第二数据是文档格式化字符。
8.如权利要求1所述的方法,其特征在于,所述传输所述第二XML文件的步骤之前还包括步骤:
将所述第二XML文件进行压缩。
9.如权利要求8所述的方法,其特征在于,所述传输所述第二XML文件的步骤之后还包括步骤:
将经过传输接收到的所述第二XML文件进行解压缩。
10.一种可扩展的标记语言文件传输系统,包括用于数据文件传输的传输设备,其特征在于,还包括:
映射模块,用于根据第一数据在可扩展的标记语言XML文件中的定义次序将第一数据与标识建立映射关系;
替换模块,用于按所述映射关系将第一XML文件中的第一数据用标识替换后得到第二XML文件,并交由所述传输设备进行传输;
恢复模块,用于按所述映射关系将所述传输设备传输至的第二XML文件中的标识用第一数据恢复后得到所述第一XML文件。
11.如权利要求10所述的系统,其特征在于,进一步包括编码模块、解码模块,其中:
编码模块,与替换模块、传输设备相连,用于根据所述第一数据和标识、以及第一数据标识的节点类型,采用Expression=(ID,Length,Value|Expression)*递归的语法表达式,按树的深度搜索次序对所述第二XML文件进行编码,并将所述编码后的第二XML文件交由所述传输设备进行传输;
解码模块,与恢复模块、传输设备相连,用于当所述传输设备将所述编码的第二XML文件传输至后,根据所述第一数据和标识、以及第一数据标识的节点类型,采用Expression=(ID,Length,Value|Expression)*递归的语法表达式,按树的深度搜索次序对所述编码后的第二XML文件进行解码,并将解码后的第二XML文件交由解码模块处理;其中:
ID:表示元素、元素属性和命名空间的标识,其值域是整数;
Length:其值域是整数,当ID所标识的节点是原子节点时,Length值表示该原子节点值二进制编码后的字节长度;当ID所标识的节点有子节点时,Length值表示其下一级子节点的个数;
Value|Expression:当ID所标识的节点是原子节点时,表示对应的元素、属性或命名空间的二进制编码值;当ID所标识的节点有子节点时,表示其子节点的(ID,Length,Value|Expression)*嵌套序列。
12.如权利要求10所述的系统,其特征在于,进一步包括数据删除模块:用于在传输前将XML文件中的第二数据删除。
13.如权利要求10所述的系统,其特征在于,进一步包括与传输设备相连的压缩模块,和/或与传输设备相连的解压模块,其中:
压缩模块,用于在传输前将所述第二XML文件进行压缩;
解压模块,用于在传输后将所述第二XML文件进行解压缩。
14.一种XML文件编辑器,包括用于XML文件处理的编辑模块,其特征在于,还包括映射模块、替换模块、恢复模块,其中:
所述映射模块,用于根据第一数据在可扩展的标记语言XML文件中的定义次序将第一数据与标识建立映射关系;
所述替换模块,用于按所述映射关系将编辑模块处理后的XML文件中的第一数据用标识替换;
所述恢复模块,用于将传输至的XML文件标识按所述映射关系用第一数据恢复后交由所述编辑模块处理。
15.如权利要求14所述的文件编辑器,其特征在于,进一步包括编码模块、解码模块;
所述编码模块,与替换模块相连,用于根据所述第一数据和标识、以及第一数据标识的节点类型,采用Expression=(ID,Length,Value|Expression)*递归的语法表达式,按树的深度搜索次序对所述替换模块处理后的XML文件进行编码;
所述解码模块,与恢复模块相连,用于根据所述第一数据和标识、以及第一数据标识的节点类型,采用Expression=(ID,Length,Value|Expression)*递归的语法表达式,按树的深度搜索次序对所述编码后的XML文件进行解码,并将解码后的XML文件交由恢复模块处理;
其中:ID:表示元素、元素属性和命名空间的标识,其值域是整数;
Length:其值域是整数,当ID所标识的节点是原子节点时,Length值表示该原子节点值二进制编码后的字节长度;当ID所标识的节点有子节点时,Length值表示其下一级子节点的个数;
Value|Expression:当ID所标识的节点是原子节点时,表示对应的元素、属性或命名空间的二进制编码值;当ID所标识的节点有子节点时,表示其子节点的(ID,Length,Value|Expression)*嵌套序列。
CN2007100003071A 2007-01-08 2007-01-08 一种可扩展标记语言文件编辑器、文件传输方法及系统 Expired - Fee Related CN101222476B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007100003071A CN101222476B (zh) 2007-01-08 2007-01-08 一种可扩展标记语言文件编辑器、文件传输方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007100003071A CN101222476B (zh) 2007-01-08 2007-01-08 一种可扩展标记语言文件编辑器、文件传输方法及系统

Publications (2)

Publication Number Publication Date
CN101222476A true CN101222476A (zh) 2008-07-16
CN101222476B CN101222476B (zh) 2010-09-29

Family

ID=39632052

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007100003071A Expired - Fee Related CN101222476B (zh) 2007-01-08 2007-01-08 一种可扩展标记语言文件编辑器、文件传输方法及系统

Country Status (1)

Country Link
CN (1) CN101222476B (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101656708A (zh) * 2008-08-18 2010-02-24 高德软件有限公司 数据发送和接收方法及装置、数据传输方法和系统
CN103167001A (zh) * 2011-12-15 2013-06-19 北京中文在线数字出版股份有限公司 一种基于xml的网络数据传输方法
CN103605730A (zh) * 2013-11-19 2014-02-26 山西三恒自动化设备有限公司 一种基于不定长标识码的xml的压缩方法和装置
CN103888448A (zh) * 2014-03-03 2014-06-25 珠海市君天电子科技有限公司 数据传输、存储方法和装置及系统
CN104239690A (zh) * 2014-08-20 2014-12-24 腾讯科技(深圳)有限公司 耗时计算方法和装置
CN105183750A (zh) * 2015-07-14 2015-12-23 河南蓝信科技股份有限公司 紧凑式xml解析系统
CN105868364A (zh) * 2016-03-29 2016-08-17 中国电子科技集团公司第二十八研究所 一种基于字节流的结构化数据表示方法
CN106503003A (zh) * 2015-09-06 2017-03-15 阿里巴巴集团控股有限公司 一种可扩展标记语言xml文档的压缩、解压方法和装置
CN106572127A (zh) * 2015-10-08 2017-04-19 阿里巴巴集团控股有限公司 一种数据传输方法及装置
CN107948181A (zh) * 2017-12-06 2018-04-20 吉旗(成都)科技有限公司 一种可扩展的数据字描述结构方法
CN108173781A (zh) * 2017-12-20 2018-06-15 广东宜通世纪科技股份有限公司 Https流量识别方法、装置、终端设备及存储介质
CN112287642A (zh) * 2020-12-30 2021-01-29 华南理工大学 树形结构自增数据节点id及其路径链二进制编码方法
CN112487249A (zh) * 2020-11-27 2021-03-12 郑朗 一种可扩展标记语言xml文档压缩、解压方法及装置
CN112988292A (zh) * 2019-12-17 2021-06-18 青岛海信传媒网络技术有限公司 一种多语言翻译文件生成方法及终端
CN113157276A (zh) * 2021-04-09 2021-07-23 北京沃东天骏信息技术有限公司 布局文件转换方法、装置、电子设备和计算机可读介质
CN113282776A (zh) * 2021-07-12 2021-08-20 北京蔚领时代科技有限公司 用于图形引擎资源文件压缩的数据处理系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102096704B (zh) * 2010-12-29 2013-03-20 北京新媒传信科技有限公司 一种xml的压缩方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1802642A (zh) * 2003-07-08 2006-07-12 艾利森电话股份有限公司 通过利用较短字代替长字来压缩标记语言文件的方法
CN1635492A (zh) * 2003-12-30 2005-07-06 皇家飞利浦电子股份有限公司 一种xml数据的压缩与解压缩方法及装置

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101656708A (zh) * 2008-08-18 2010-02-24 高德软件有限公司 数据发送和接收方法及装置、数据传输方法和系统
CN103167001A (zh) * 2011-12-15 2013-06-19 北京中文在线数字出版股份有限公司 一种基于xml的网络数据传输方法
CN103605730A (zh) * 2013-11-19 2014-02-26 山西三恒自动化设备有限公司 一种基于不定长标识码的xml的压缩方法和装置
CN103888448A (zh) * 2014-03-03 2014-06-25 珠海市君天电子科技有限公司 数据传输、存储方法和装置及系统
CN104239690A (zh) * 2014-08-20 2014-12-24 腾讯科技(深圳)有限公司 耗时计算方法和装置
CN104239690B (zh) * 2014-08-20 2015-10-28 腾讯科技(深圳)有限公司 耗时计算方法和装置
CN105183750B (zh) * 2015-07-14 2018-12-28 河南蓝信科技有限责任公司 紧凑式xml解析系统
CN105183750A (zh) * 2015-07-14 2015-12-23 河南蓝信科技股份有限公司 紧凑式xml解析系统
CN106503003A (zh) * 2015-09-06 2017-03-15 阿里巴巴集团控股有限公司 一种可扩展标记语言xml文档的压缩、解压方法和装置
CN106572127A (zh) * 2015-10-08 2017-04-19 阿里巴巴集团控股有限公司 一种数据传输方法及装置
CN106572127B (zh) * 2015-10-08 2020-05-12 阿里巴巴集团控股有限公司 一种数据传输方法及装置
CN105868364B (zh) * 2016-03-29 2020-06-12 中国电子科技集团公司第二十八研究所 一种基于字节流的结构化数据表示方法
CN105868364A (zh) * 2016-03-29 2016-08-17 中国电子科技集团公司第二十八研究所 一种基于字节流的结构化数据表示方法
CN107948181A (zh) * 2017-12-06 2018-04-20 吉旗(成都)科技有限公司 一种可扩展的数据字描述结构方法
CN108173781A (zh) * 2017-12-20 2018-06-15 广东宜通世纪科技股份有限公司 Https流量识别方法、装置、终端设备及存储介质
CN108173781B (zh) * 2017-12-20 2019-08-16 宜通世纪科技股份有限公司 Https流量识别方法、装置、终端设备及存储介质
CN112988292A (zh) * 2019-12-17 2021-06-18 青岛海信传媒网络技术有限公司 一种多语言翻译文件生成方法及终端
CN112487249A (zh) * 2020-11-27 2021-03-12 郑朗 一种可扩展标记语言xml文档压缩、解压方法及装置
CN112487249B (zh) * 2020-11-27 2024-03-01 郑朗 一种可扩展标记语言xml文档压缩、解压方法及装置
CN112287642A (zh) * 2020-12-30 2021-01-29 华南理工大学 树形结构自增数据节点id及其路径链二进制编码方法
CN113157276A (zh) * 2021-04-09 2021-07-23 北京沃东天骏信息技术有限公司 布局文件转换方法、装置、电子设备和计算机可读介质
CN113282776A (zh) * 2021-07-12 2021-08-20 北京蔚领时代科技有限公司 用于图形引擎资源文件压缩的数据处理系统

Also Published As

Publication number Publication date
CN101222476B (zh) 2010-09-29

Similar Documents

Publication Publication Date Title
CN101222476B (zh) 一种可扩展标记语言文件编辑器、文件传输方法及系统
US7043686B1 (en) Data compression apparatus, database system, data communication system, data compression method, storage medium and program transmission apparatus
CN100580661C (zh) 结构化文档、尤其xml文档的编码/译码的方法和装置
US8060652B2 (en) Extensible binary mark-up language for efficient XML-based data communications and related systems and methods
US20050144556A1 (en) XML schema token extension for XML document compression
CN101346689A (zh) 压缩模式表示对象和用于元数据处理的方法
CN105450232A (zh) 编码、解码方法以及编码装置和解码装置
CN103685589B (zh) 基于二进制编码的dns数据压缩、解压缩方法及系统
US20060212467A1 (en) Encoding of hierarchically organized data for efficient storage and processing
CN107561564B (zh) 一种北斗卫星信息传输的压缩实现方法
US20070112810A1 (en) Method for compressing markup languages files, by replacing a long word with a shorter word
CN102571966A (zh) 一种大型xml文件的网络传输方法
CN102761543B (zh) 一种实现sip协议通用编解码的方法和装置
CN104484337A (zh) Xml文档的存储方法
CN108366050A (zh) 一种通用通信协议处理方法
CN101436199A (zh) 一种xml压缩数据的多查询处理方法
CN103116654B (zh) 一种xml数据节点编码压缩方法
CN101877005B (zh) 一种基于文档模式的gml压缩方法
JP4821287B2 (ja) 構造化文書の符号化方法、符号化装置、符号化プログラム、復号装置及び符号化された構造化文書のデータ構造
CN102043802B (zh) 基于结构摘要的xml关键字检索方法
CN101047663A (zh) 一种减少有效负荷的方法及系统
CN103167001A (zh) 一种基于xml的网络数据传输方法
CN104281632B (zh) 基于对象协议映射的编码解码方法及系统
CN104572763A (zh) 一种分布式计算系统中对象传递的方法
CN111866520A (zh) 编解码方法、编解码设备以及通信系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20170818

Address after: 201, room 1, building A, No. 518053, front Bay Road, Qianhai, Shenzhen Shenzhen cooperation zone, Guangdong, China

Patentee after: Shenzhen Zhitong World Technology Service Co. Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: Huawei Technologies Co., Ltd.

TR01 Transfer of patent right
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20080716

Assignee: Shenzhen Vimicro Tech Co. Ltd.

Assignor: Shenzhen Zhitong World Technology Service Co. Ltd.

Contract record no.: 2017440020097

Denomination of invention: Expandable markup language file editor, file transferring method and system

Granted publication date: 20100929

License type: Common License

Record date: 20171211

EE01 Entry into force of recordation of patent licensing contract
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100929

Termination date: 20200108

CF01 Termination of patent right due to non-payment of annual fee