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

文档序号:7643051阅读:221来源:国知局
专利名称:一种可扩展标记语言文件编辑器、文件传输方法及系统的制作方法
技术领域
本发明涉及电子文件编辑、电子文件传输领域,特别涉及一种可扩展的标记语言(XML, Extensible Markup Language )文件编辑器、文件传输的方法及 系统。
背景技术
XML以出色的可扩展性、自描述性和采用ASCII编码机制形成的易读性, 被IT界公认为标准的标记和描述语言。目前XML语言应用日益广泛,但由于 目前XML在编码中包含了大量的标签(Tag)、属性名、空格等冗余负荷而导 致净负荷所占比率很低,因此使得用XML语言编写的文件在传输过程中浪费 了大量的网络带宽。所以XML需要经历一个"瘦身,,的过程以提高网络带宽 的利用率并提高传输效率。针对这个课题,目前业界的焦点是XML的二进制 编码,其主要思想是将XML文本文档以类似BER/XDR (基本编码规则/外部 凄t才居表示,Basic Encoding Rules/External Data Represent)方式进4亍编石马,#B。 将原ASCII的编码方式下的整形值字符串"-123"改成一个比特(Byte)的数 值"0X85"来描述,相应程度减少了数据量。这种编码思想目前也是在讨论阶 段,并没有验证数据来证明它解决了现实中XML的"肥胖"问题,万维网联 盟(W3C, World Wide Web Consortium)也没有如何通过二进制编码对XML 文本内容进行"瘦身"的标准。以下是一个简单的XML文档模式文件Person.xsd,其中定义了 person元 素及其类型〈 xrnl 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:annotation><xsd:sequ6nce>〈xsd:element name="name" type="xsd:string"/><xsd:element name="age" type="xsd:integer7>〈xsd:element name="contactInformation" type="contactInfoType"/> </xsd:sequence> </xsd: complexType〉〈xsd:complexType name="contactInfoType"> <xsd:annotation></xsd:annotation> <xsd:sequence><xsd:element name="emailAddress" type="xsd:string"maxOccurs="unbounded7><xsd:element name="mobileNumber" type="xsd:string"maxOccurs="unbounded"/> </xsd:sequencc><xsd:attribute name="preferable" type="xsd:string" use="optional'V></xsd: complexType〉</xsd:schema>在当前以ASCII等编码机制进行编码时,上述Person文档模式的实例可 以将一姓名(name )为ZhanSan,年龄(age )为25,电子邮件地址(emailAddress ) 分另'J为 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> </psrson>从上所述的实例可以看出以ASCII等编码机制进行编码时得到一个长度支撑在两个对等实体之间进行传输。从该例看出现有4支术中编码后的XML文档净负荷所占比率;f艮低、冗余数 据比例高的不足是显而易见的,如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文件中的定 义次序将第一凄t据与标识建立映射关系;所述替换模块,用于按所述映射关系将编辑模块处理后的XML文件中的 第一数据用标识替换;所述恢复模块,用于将传输至的XML文件标识按所述映射关系用第一数 据恢复后交由所述编辑^t块处理。本发明实施例的有益效果如下由于在本发明的实施例中,根据XML文件中定义的冗余数据相对于其兄 弟数据都有一个静态的次序编号,这个静态的次序编号可以用来标识这些冗余 数据。因此在XML文件的实例文档编码中,用对应的标识来表示这些冗余数 据就能大量减少冗余负荷以提高净负荷的占有率,进而大幅度提升了网络带宽 利用率和网络传输效率。由于本发明的实施例将XML文件中定义的每个元素、元素属性和命名空 间用对应的数字标识来替换他们冗长的字符串名称,使得数字标识置换名称后 的XM文件因所含净负荷比例大大提升,所以将更有效的利用网络带宽,同时 因字符数大幅减少而大幅提升网络传输效率。


图1为本发明实施例中所述Person.xsd文件的数字标识树结构示意图;图2为本发明实施例中所述XML文件传输方法的实施流程示意图;图3为本发明实施例中所述将映射关系建立在XML文件的传输工作示意图;图4为本发明实施例中所述XML文件传输系统结构示意图; 图5为本发明实施例中所述XML文件编辑器结构示意图。
具体实施方式
本发明实施例通过降低XML文档中过高的冗余数据比例,从而提高传输 XML文档时网络带宽有效利用率,同时提高网络的传输效率。为实现本发明 实施例的目的,通过对XML文档结构的研究可以发现,在XML文档模式中 的第一数据的定义次序相对于其兄弟节点是静态的,所述的兄弟节点是指具有 同一个父节点的节点。在具体实施中,将元素、属性以及命名空间作为第一数 据进行说明。第一数据的相对静态的定义次序可以用数字[l...n]来标识,本例 中对于与标识相应的是用数字标识来进行说明的。上例中为了直观一点,可以将XML文档模式定义推导成一个多叉逻辑树来描述各元素、元素属性以及命 名空间的层次关系和定义次序关系。按照XML文档构造DOM树(Document Object Model文档对象才莫型)的相同方式,XML文档模式中每个元素按其定 义顺溯都可以将其与其属性、子元素串成一颗静态的多叉逻辑树,多叉逻辑树 的根就是这个元素。因此, 一个XML文档模式文档可以推导成一棵以XML 文档模式文档为根元素、[l...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,contactlnformation;因该节点不是原子类型节点,所以没有ValueType属性。以emailAddress (2, E, String, 0)为例子说明原子节点的属性所代表的含义emailAddress:表示该节点的节点名称;2:表示该节点相对于其兄弟节点的次序是2,它前面的兄弟节点是 preferable(l, A, String, 0);E:表示该节点的类型是"元素";String:表示该节点的值的类型是string;因该节点是原子类型节点,所以没有NumberOfSubNode属性。同时,由此逻辑树可见XML Schema中定义的每个元素、元素属性和命名 空间都含有与其一^"对应的、相对其兄弟节点的数字标识。在XML实例文档 编码中用元素、元素属性以及命名空间对应的数字标识来替换他们冗长的字符 串名称。元素person用2代替;元素person的子元素age用2代替;元素contactlnformation的属'!"生preferabe用1来4戈替;按照这种方法将元素、属性及命名空间等用数字标识替换,上面的Person 实例文档就可以缩减成 <2><l>ZhanSan</l> <2>25</2><3 l="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, ValuelExpressionf递归的语法表达式按树的深度搜索次序对XML树形结构的实例文档进行编码, Expression(Object target, String methodName, Objectiarguments)所表达的是按 照所给参数创建一个新的Statement对象,使其具有target、 methodName和 arguments 。本例中,其中ID:表示元素、元素属性和命名空间的数字标识,其值域是整数。为了高 效利用内存空间,值域可以使用变长的整数来表示每个字节的最高bit位表 示是否有后续字节,即1—表示有后续字节,O—表示无后续字节。例如如 果某元素的数字标识为10则ID = 0x0A,某元素的数字标识为200则 ID=0x4148。Length:其值域是整数。可以和ID —样使用变长的整数来表示,本例中 此处不限。当ID所标识的节点是原子节点时,Length值表示该原子节点值二进制编 码后的字节长度。当ID所标识的节点有子节点时,Length值表示其下一级子节点的个数。Value|Expression: l)当ID所标识的节点是原子节点时,表示对应的元素、 属性或命名空间的二进制编码值;2)当ID所标识的节点有子节点时,表示其子节点的(ID, Length, ValuelExpression)承嵌套序歹寸。按照这种方法上面的Person实例文档就可以编码成OFFSET HEX BYTES0 02 03 01 074 5A68 61 6E8 53 61 6E 0212 01 19 03 0416 01 0C 75 0020 6D 00 62 0024 65 00 72 0028 02 11 5A 68 32 61 6E 53 61 366E 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 OB 31 32 72 34 36 38 38 76 36 30 38 38 80 38编码后Person实例文档字符总数仅为81个,其净负荷(值)占68个字符, 有效负荷所占比例从ASCII编码的26.7%提升到84%。从上述可以看出采用 Expression-(ID, Length, ValuelExpressionf递归的语法表达式编码后的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, ValuelExpressionf递归的语法表 达式,按树的深度搜索次序对第二XML文件进行编码,其中ID:表示元素、元素属性和命名空间的标识,其值域是整数;Length:其值域是整数,当ID所标识的节点是原子节点时,Length值表 示该原子节点值二进制编码后的字节长度;当ID所标识的节点有子节点时,Length值表示其下一级子节点的个数;Value|Expression:当ID所标识的节点是原子节点时,表示对应的元素、 属性或命名空间的二进制编码值;当ID所标识的节点有子节点时,表示兵于 节,务、的(ID , Length, ValuelExpression)氺嵌套序歹ll 。XML实例文档的发送方和接收方在编解码时需要访问XML Schema的数 字标识树以获取元素、元素属性以及命名空间的属性信息Node {NodeNam6 , 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><3 l=,,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, ValuelExpressionf递归的语法表 达式,按树的深度搜索次序对第二XML文件进行编码,其中ID:表示元素、元素属性和命名空间的标识,其值域是整数;Length:其值域是整数,当ID所标识的节点是原子节点时,Length值表 示该原子节点值二进制编码后的字节长度;当ID所标识的节点有子节点时, Length值表示其下 一级子节点的个数;Value|Expression:当ID所标识的节点是原子节点时,表示对应的元素、 属性或命名空间的二进制编码值;当ID所标识的节点有子节点时,表示其子 节点的(ID, Length, ValuelExpressionf嵌套序列。解码模块,则按同样的方式将传输设备传输至的第二XML文件解码,然 后交给恢复模块恢复成第一 XML文件。XML实例文档的发送方和接收方在编解码时需要访问XML文档模式的 数字标识树以获取元素、元素属性以及命名空间的属性信息Node {NodeName, ID,NodeType,ValueType,NumberOfSubNode} 应用程序中的XML编解码中间件使用相同的XML文档模式文件如 persion.xsd构造的数字标识树,因文档模式和构造数字标识树的规则都是相同 的,所以应用程序所构造出的数字标识树person是相同的。应用程序在发送或 接收XML实例数据时,各自的XML编/解码中间件按照相同的数字标识树对 实例数据进行二进值编码或还原。这样在应用程序之间的网络上传输的是采用了(ID,Length,ValuelExpression^编码后的二进制XML实例数据。为进一步的提高传输效率,还可以提供又一优选实施是进一步包括数据删 除模块,用于在传输前将XML文件中的第二数据删除。第二数据在优选实施 中选用如回车字符和/或空格字符等文档格式化字符。这样结合应用在数值置换 名称后的XML实例文档上可以进一步减少冗余数据、提升有效数据的比例。 如上面^L字置换名称后的XML实例文档可以进一步优化成<2><l>ZhanSan</l〉<2>25</2><3 l="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, ValuelExpression"递归的语法表达式,4要树的深度 搜索次序对替换模块处理后的XML文件进行编码;解码模块与恢复模块相连, 根据第一数据和标识、以及第一数据标识的节点类型,采用Expression= (ID, Length, ValuelExpressionf递归的语法表达式,按树的深度搜索次序对编码后 的XML文件进行解码,并将解码后的XML文件交由恢复模块处理。其中ID:表示元素、元素属性和命名空间的标识,其值域是整数;Length:其值域是整数,当ID所标识的节点是原子节点时,Length值表 示该原子节点值二进制编码后的字节长度;当ID所标识的节点有子节点时, Length值表示其下一级子节点的个数;Value|Expression:当ID所标识的节点是原子节点时,表示对应的元素、属 性或命名空间的二进制编码值;当ID所标识的节点有子节点时,表示其子节 点的(ID, Length, ValuelExpression)承嵌套序列。本实施例其目的是如果在XML文件编辑器中集成了映射、替换、恢复、 编/解码这种思想,应用程序用XML文件编辑器时将可以直接生成用数字标识 名称的XML实例文档经过编/解码,然后传输给对等的应用实体,显然,将映 射、替换、恢复、解/编码建立在XML文件编辑器后,将大大提升应用于XML 实例文档的处理效率。由本发明实施例可以看出,本发明实施例是将XML Schema中定义的各元 素、元素属性以及命名空间相对于其兄弟都有一个静态的次序编号[l…n],并 利用这个静态的次序编号[l...n]来标识这些元素、元素属性和命名空间。在此 XML Schema的实例文档编码中,用对应的数字标识[l...n]来表示元素、属性 以及命名空间的标签名称,从而大量减少冗余负荷以提高净负荷的占有率,进而提升了网络带宽利用率和网络传输效率。进一步的,根据这些元素、元素属性、命名空间和标识、以及标识的节点类型,4姿树的深度搜索次序对XML文 件进行编/解码,编码后的XML实例文档因所含净负荷比例大大提升,所以将 更有效的利用网络带宽,同时因字符数大幅减少所以将大幅提升网络传输效 率。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发 明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及 其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1. 一种可扩展的标记语言文件传输方法,其特征在于,包括如下步骤按映射关系将第一可扩展的标记语言XML文件中的第一数据用标识替换后得到第二XML文件,所述映射关系是根据第一数据在XML文件中的定义次序与标识建立;传输所述第二XML文件;按所述映射关系将所述第二XML文件中的标识用第一数据恢复后得到第一XML文件。
2、 如权利要求l所述的方法,其特征在于,进一步包括如下步骤 对所述替换后得到的第二 XML文件根据映射关系进行XML编码; 对传输至的第二 XML文件根据映射关系进行解码。
3、 如权利要求2所述的方法,其特征在于,所述第一数据是命名元素、 元素属性和命名空间之一或其组合的字符串,所述标识是数字标识。
4、 如权利要求3所述的方法,其特征在于,所述对第二XML文件进行编 /解码的步骤,具体为根据所述第一数据和标识、以及第一数据标识的节点类型,按树的深度搜 索次序对所述第二 XML文件进行编/解码。
5、 如权利要求4所述的方法,其特征在于,所述才艮据所述第一数据和标 识、以及第一数据标识的节点类型,按树的深度搜索次序对所述第二XML文 件进行编/解码的步骤,具体为根据所述第一数据和标识、以及第一数据标识的节点类型,采用 Expression= (ID, Length, ValuelExpression^递归的语法表达式,按树的深度 搜索次序对所述第二 XML文件进行编/解码;其中ID:表示元素、元素属性和命名空间的标识,其值域是整数; Length:其值域是整数,当ID所标识的节点是原子节点时,Length值表 示该原子节点值二进制编码后的字节长度;当ID所标识的节点有子节点时,Length值表示其下 一 级子节点的个数;Value|Expression:当ID所标识的节点是原子节点时,表示对应的元素、 属性或命名空间的二进制编码值;当ID所标识的节点有子节点时,表示其于 节点的(ID, Length, ValuelExpression)氺嵌套序列。
6、 如权利要求l所述的方法,其特征在于,进一步包括如下步骤 在传输所述第二 XML文件前将第一 XML文件和/或第二 XML文件中的第二数据删除。
7、 如权利要求6所述的方法,其特征在于,所述第二数据是文档格式化 字符。
8、 如权利要求l所述的方法,其特征在于,所述传输所述第二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, ValueiExpression"递归的i吾法表达 式,按树的深度搜索次序对所述编码后的第二XML文件进行解码,并将解码 后的第二XML文件交由解码才莫块处理;其中ID:表示元素、元素属性和命名空间的标识,其值域是整数;Length:其值域是整数,当ID所标识的节点是原子节点时,Length值表 示该原子节点值二进制编码后的字节长度;当ID所标识的节点有子节点时, Length值表示其下 一级子节点的个数;Value|Expression:当ID所标识的节点是原子节点时,表示对应的元素、 属性或命名空间的二进制编码值;当ID所标识的节点有子节点时,表示其子 节点的(ID, Length, Value|Expression)*嵌套序列。
12、 如权利要求IO所述的系统,其特征在于,进一步包括数据删除模块 用于在传输前将XML文件中的第二数据删除。
13、 如权利要求IO所述的系统,其特征在于,进一步包括与传输设备相 连的压缩模块,和/或与传输设备相连的解压模块,其中压缩模块,用于在传输前将所述第二 XML文件进行压缩; 解压^t块,用于在传输后将所述第二 XML文件进行解压缩。
14、 一种XML文件编辑器,包括用于XML文件处理的编辑模块,其特 征在于,还包括映射模块、替换模块、恢复模块,其中所述映射模块,用于根据第一数据在可扩展的标记语言XML文件中的定 义次序将第一数据与标识建立映射关系;所述替换模块,用于按所述映射关系将编辑模块处理后的XML文件中的第一数据用标识替换;所述恢复模块,用于将传输至的XML文件标识按所述映射关系用第一数 据恢复后交由所述编辑才莫块处理。
15、如权利要求14所述的文件编辑器,其特征在于,进一步包括编码模 块、解码模块;所述编码模块,与替换模块相连,用于根据所述第一数据和标识、以及第 一凄t据标识的节点类型,采用Expression- (ID, Length, Value|Expression)*i€ 归的语法表达式,按树的深度搜索次序对所述替换模块处理后的XML文件进 行编码;所述解码模块,与恢复模块相连,用于根据所述第一数据和标识、以及第 一数据标识的节点类型,采用Expression (ID, Length, ValuelExpression)承递 归的语法表达式,按树的深度搜索次序对所述编码后的XML文件进行解码, 并将解码后的XML文件交由恢复模块处理;其中ID:表示元素、元素属性和命名空间的标识,其值域是整数;Length:其值域是整数,当ID所标识的节点是原子节点时,Length值表 示该原子节点值二进制编码后的字节长度;当ID所标识的节点有子节点时, Length值表示其下一级子节点的个数;Value|Expression:当ID所标识的节点是原子节点时,表示对应的元素、属 性或命名空间的二进制编码值;当ID所标识的节点有子节点时,表示其子节 点的(ID, Length, ValuelExpressionf嵌套序列。
全文摘要
本发明公开了一种可扩展的标记语言文件编辑器、文件传输的方法及系统,包括按映射关系将第一XML文件中的第一数据用标识替换后得到第二XML文件,所述映射关系是根据第一数据在XML文件中的定义次序与标识建立的;再将第二XML文件进行传输;按所述映射关系将传输至的第二XML文件中的标识用第一数据恢复后得到第一XML文件。进一步的,在传输之前对第二XML文件根据元素、元素属性和命名空间的数字标识、以及所标识节点的类型,按树的深度搜索次序对XML树形结构的实例文档进行编解码。使用本发明就能大量减少冗余负荷以提高净负荷的占有率,进而大幅度提升了网络带宽利用率和网络传输效率。
文档编号H04L29/06GK101222476SQ20071000030
公开日2008年7月16日 申请日期2007年1月8日 优先权日2007年1月8日
发明者伟 岳 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1