CN101256572B - 一种xml文档操作方法及xdms - Google Patents

一种xml文档操作方法及xdms Download PDF

Info

Publication number
CN101256572B
CN101256572B CN2008100269332A CN200810026933A CN101256572B CN 101256572 B CN101256572 B CN 101256572B CN 2008100269332 A CN2008100269332 A CN 2008100269332A CN 200810026933 A CN200810026933 A CN 200810026933A CN 101256572 B CN101256572 B CN 101256572B
Authority
CN
China
Prior art keywords
document
sequence value
xml
xml document
request
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.)
Expired - Fee Related
Application number
CN2008100269332A
Other languages
English (en)
Other versions
CN101256572A (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.)
Huawei Technologies 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 CN2008100269332A priority Critical patent/CN101256572B/zh
Publication of CN101256572A publication Critical patent/CN101256572A/zh
Priority to PCT/CN2009/070797 priority patent/WO2009115025A1/zh
Application granted granted Critical
Publication of CN101256572B publication Critical patent/CN101256572B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/83Querying

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种XML文档操作方法,该方法包括以下步骤:接收XML文档操作请求;根据文档序列值和XML文档操作请求完成所请求的文档操作,所述文档序列值为按照XML文档更新顺序建立的序列值。本发明实施例还公开了一种XDMS,通过本发明实施例提供的方法和XDMS,减少了终端与XDMS之间的交互过程,从而减少了终端与XDMS交互的时间,改善了用户体验。

Description

一种XML文档操作方法及XDMS
技术领域
本发明涉及可扩展标记语言XML技术,尤其涉及一种XML文档操作方法及XDMS。
背景技术
开放移动联盟(Open Mobile Alliance,OMA)定义的XML配置访问协议(XML Configuration Access Protocol,XCAP)规范为用户提供了可扩展标记语言(Extensible Markup Language,XML)文档操作信令。这些信令包括创建、修改文档或节点(PUT)请求信令、删除文档或节点(DELETE)请求信令、查找和同步文档(GET)请求信令,通过这些操作信令完成对XML文档管理(XDM)。OMA定义的XACP规范是通过版本号(etag)实现文档版本控制和增量同步的。
在OMA定义的XCAP规范中,规定每篇文档有一个版本号,英文名为etag,用于描述文档最新版本信息,由XDM服务器(XDMS)在创建、修改文档或节点时生成,并返回终端。
PUT请求信令操作具体为:XDMS收到请求后,先按文档名查找请求的文档。若找到此文档则比较etag,只有etag完全同才视为有权操作,否则视为无权,返回403(Forbidden);若未找到文档则按新增文档处理。对节点操作也是先比较文档版本号,只有完全相同才继续按节点路径(用uri描述)分析节点是否存在,若不存在按新增节点处理,否则按替换节点处理。
DELETE请求信令操作具体为:XDMS收到请求后,先按文档名查找请求的文档。若找到此文档则比较etag,只有etag完全相同才视为有权操作,否则视为无权,返回403(Forbidden);若未找到则返回404(Not Found)。
GET请求信令操作具体为:XDMS收到请求后,先按文档名查找请求的文档。若找到此文档则比较etag,只有etag完全相同才返回文档,否则返回403(Forbidden);若未找到则返回404(Not Found)。若GET请求不携带etag,则XDMS不做版本检查,按默认有权处理。
终端登陆时的同步机制:终端首先用GET信令从服务端获取xcap-directory,服务端返回用户相关文档目录信息,包括统一资源标识符(Uniform ResourceIdentifier,uri)、etag等信息,其中uri由以下几部分构成:AUID+USER_URI+文档名。
由于各人的文档要在终端缓存的,通过某个终端添加的文档需要同步到其它终端后,其它终端才能有这篇文档,否则登陆时从xcap-directory中获得文档的索引信息后,本地并终端会发现某些文档不存在。终端获得xcap-directory之后,逐个文档比较版本号,识别发生变更的文档,包括新增的文档(本地终端未找到,但xcap-directory有)、修改的文档(etag发生变化)和删除的文档(xcap-directory没有,但本地终端存有)。对于服务端XDMS已经删除的文档,本地执行物理删除操作;对于已经修改的文档和新增的文档,终端重新发起GET请求依次获取文档。
基于OMA定义的版本号机制,文档版本号是通过XDMS生成的一个随机字符串,在新增文档时便有相应的字符串生成。这些随机字符串的文档版本号,在进行文档版本号比较时只能比较是否相等,不能比较大小。终端在进行版本号的识别后,终端必须先获取目录确认哪些文档发生变化后,再一篇一篇地获取文档,这种方式下终端与XDMS交互次数非常多,终端进行文档操作也带来了逻辑复杂性,在真实的商业环境(如一个人有200~800个联系人文档和20~30个分组文档)中,则会降低用户的体验效果。
发明内容
鉴于上述现有技术所存在的问题,本发明实施例提供了一种XML文档操作方法及XDMS。在引入文档序列值以后,根据文档序列值的更新顺序,XDMS在收到XML操作请求之后,完成对XML文档的操作过程。
为了解决上述技术问题,本发明实施例提出了一种XML文档操作方法,该方法包括:
接收XML文档操作请求,其中所述XML文档操作请求为同步文档请求时,所述XML文档操作请求中包括文档序列值;
根据文档序列值和XML文档操作请求完成相应的文档操作,所述文档序列值为按照XML文档更新顺序建立的序列值;
其中,所述根据文档序列值和XML文档操作请求完成所请求的文档操作步骤具体为:
根据文档序列值判断XML文档操作请求中所需要同步的XML文档范围;
对需要同步的XML文档进行文档同步操作。
相应的,本发明实施例还提出了一种XDMS,该服务器包括:
存储模块,用于存储XML文档及所对应的文档序列值,所述文档序列值为按照XML文档更新顺序建立的序列值;
接收模块,用于接收XML文档操作请求,其中所述XML文档操作请求为同步文档请求时,所述XML文档操作请求中包括文档序列值;
处理模块,用于根据所述存储模块存储的所述文档序列值和接收模块接收的XML文档操作请求完成相应的文档操作;
其中,所述处理模块还包括:
第二判断单元,用于根据文档序列值判断XML文档操作请求中所需要同步的XML文档范围;
同步单元,用于根据第二判断单元判断的XML文档范围对需要同步的XML文档进行文档同步操作。
实施本发明实施例,通过本发明实施例中的XML文档操作方法,在XDMS中按照XML文档更新顺序为每个XML文档建立相应的文档序列值,在收到XML文档操作请求时,不用逐个比较XML文档版本号识别变化的文档,通过直接获取的操作请求中的文档序列值即可识别该XML文档序列值以后发生变化的文档并可以一次性返回给用户终端,减少了终端与XDMS之间的交互过程,改善了用户体验。
附图说明
图1是本发明实施例中XML文档操作方法的系统图;
图2是本发明实施例中处理模块的结构示意图;
图3是本发明实施例中XML文档操作方法流程图;
图4是本发明实施例中基于文档序列值的PUT请求处理流程图;
图5是本发明实施例中基于文档序列值的DELETE请求处理流程图;
图6是本发明实施例中基于文档序列值的同步(SYNC)请求处理流程图。
具体实施方式
本发明实施例提供了一种XML文档操作方法及XDMS。在引入文档序列值以后,根据文档序列值的更新顺序,XDMS在收到XML操作请求之后,完成对XML文档的操作过程。
下面结合附图详细说明本发明的优选实施例。
首先请参阅图1,图1示出了本发明实施中的XML文档操作方法的系统图,该系统包括XDMS10和用户设备(UE)11,其中:UE11用于向XDMS10发起XML文档操作请求,请求进行相关的XML文档操作处理,所述UE11可以为移动终端、PC客户端、IMS终端等;XDMS10用于为存储在XDMS10中的每一XML文档建立相对应的文档序列值,这些文档序列值按照文档更新顺序进行排序,方便用户的请求操作,通过接收UE11的XML文档操作请求,并根据存储的文档序列值对所述UE11发起的XML文档操作请求完成相应的文档操作请求。
XDMS10中设有存储模块14、处理模块13和接收模块12,其中:存储模块14用于存储XML文档及所对应的文档序列值,所述文档序列值为按照XML文档更新顺序建立的序列值;接收模块12用于接收XML文档操作请求;处理模块13用于根据存储模块14存储的文档序列值根据接收模块12接收的XML文档操作请求完成相应的文档操作。需要说明的是,这里的所述XML文档操作类型包括:添加文档、修改文档、删除文档、获取文档、同步文档、添加节点/属性、删除节点/属性等,这里可以在具体应用时通过相应的命令操作,如PUT操作、DELETE操作和同步(synchronize,SYNC)操作等完成,这里也不限于所述几种操作处理方式和命令方式。相应的,图2示出了本发明实施例中处理模块13的结构示意图,其中:处理模块13还包括了第一判断单元201、删除单元202、生成单元203、同步单元205和第二判断单元204,其中:第一判断单元201用于判断所述XML文档操作请求中的文档序列值和存储的文档序列值是否相同;删除单元202用于第一判断单元201判断文档序列值相同和所述XML文档操作请求类型为删除文档请求时,对相应的XML文档删除操作;生成单元203用于第一判断单元201判断文档序列值相同和所述XML文档操作请求类型为修改文档请求或删除文档节点请求时、或所述XML文档操作请求类型为添加文档请求或添加文档节点/属性请求时,按照XML文档更新顺序为更新或增加的XML文档生成相应的文档序列值;第二判断单元204用于根据文档序列值判断XML文档操作请求中所需要同步的XML文档范围;同步单元205用于根据第二判断单元判断的XML文档范围对需要同步的XML文档进行文档同步操作。
本发明实施例提出了一种基于递增或递减的文档序列值进行文档版本控制和文档同步的机制,由UE、XDMS和文档序列生成器配合实现,该文档序列生成器即为XDMS中的处理模块13。这个递增或递减的文档序列值可以是最新的时间戳,也可以递增或递减的数字,本发明实施例中用timemark来描述文档序列值,以区别于etag。
同一用户同一业务的文档,文档序列值最好由同一文档序列生成器生成,这样可以保证同一用户同一业务的文档能通过序列值的大小识别哪些是最新生成或变更的文档,这里所说的业务,是业务标识(这里用AUID进行描述)的概念,包括但不限于OMA定义的业务,如resource-lists(分组)、org.openmobilealliance.user-profile(个人信息)、org.openmobilealliance.groups(群组)等,也可以是自定义业务,如contact-profile(联系人)。文档序列生成器是一个文档序列值生成模块,当通过数据库的序列生成方法生成文档序列值时,XDMS中的数据库系统为文档序列生成器;当通过时间戳作为文档序列值时,XDMS中的操作系统的时钟序列为文档序列生成器。同一用户同一业务的文档一般由同一个文档序列生成器生成文档序列值,可以避免在文档变更识别方面出现混乱。不同用户不同业务的文档采用不同的文档序列生成器生成文档序列值,只要不影响同一用户的文档变更先后关系识别,也是允许的。
在请求操作XML文档操作过程中,用户需要开通相应的请求操作业务才视为有权操作,否则服务器会拒绝此次请求操作,只有在用户开通了相应的文档操作业务时,才为合法请求。下面将以用户有权操作的情况下进行描述,即用户开通了所要请求的操作请求时,图3示出了本发明实施例中的XML文档操作方法流程图,步骤如下:
步骤S301:接收XML文档操作请求;
在XDMS中为存储的XML文档按照文档更新顺序建立所对应的文档序列值,并将所述文档序列值存储,其主要根据时间序列或数据序列的更新顺序为存储的XML文档建立文档序列值。
所述XML文档操作请求类型包括添加文档请求、修改文档请求、删除文档请求、添加节点/属性请求、删除节点/属性请求和同步文档请求等,这里也不限于这几种请求操作,本发明实施例主要PUT操作、DELETE操作和SYNC操作等方式实现。
步骤S302:根据文档序列值和XML文档操作请求完成所请求的文档操作,所述文档序列值为按照XML文档更新顺序建立的序列值。
所述XML文档操作请求为添加文档请求、或添加文档节点/属性请求时,根据文档序列值更新顺序为新添加的XML文档生成相应的文档序列值。需要说明的是,本发明实施例中所述方法的实现主要通过PUT命令方式实现。
所述XML文档操作请求类型包括修改文档请求、删除文档请求、删除文档节点/属性请求、替换文档节点/属性时,所述XML文档操作请求中包括文档序列值;判断所述XML文档操作请求中的文档序列值和存储的文档序列值是否相同;如果所述XML文档操作请求中的文档序列值和存储的文档序列值相比较相同,则根据文档序列值完成所述XML文档操作。所述XML文档操作请求类型为修改文档请求、删除文档节点/属性请求和替换文档节点/属性时,按照XML文档更新顺序为更新的XML文档生成相应的文档序列值。所述XML文档操作请求类型为删除文档请求时,根据文档序列值删除所需要删除的XML文档。对于已经删除的文档,无法通过本发明实施例中的同步方法获得,但可以通过获取Xcap-Directory,再判断文档是否存在,若服务端返回的目录不存在,则视为文档已删除,终端可以执行本地删除。
所述XML文档操作请求为同步文档请求时,所述XML文档操作请求中包括文档序列值;根据文档序列值判断XML文档操作请求中所需要同步的XML文档范围;在判断完所需要进行同步的XML文档范围后,对需要同步的XML文档进行文档同步操作。所述需要同步的XML文档范围为基于文档序列值的所有更新的XML文档或满足同步请求中给定文档序列值取值范围的所有XML文档。当有多个基于同步请求中文档序列值的更新XML文档需要进行同步操作,将所述多个文档按照文档序列值一次或分批的进行同步操作。需要说明的是,本发明实施例中所述XML文档同步操作是通过同步信令SYNC命令操作完成的,同步信令包括需要同步的文档内容、文档名、文档序列值和业务标识。
下面来详细说明基于文档序列值的PUT请求处理流程过程,具体流程图如图4所示,步骤如下:
步骤S401:UE向XDMX发起PUT请求;
步骤S402:若文档存在,则比较文档序列值,如果文档序列值不同则进行步骤S403a,如果文档序列值相同则进行步骤S403;
步骤S403a:如果文档序列值不同,则返回403(Forbidden);
步骤S403:XDMS向文档序列生成器申请文档序列值;
步骤S404:文档序列生成器向XDMS返回申请的文档序列值;
这里需要说明的是,步骤S403和步骤S404是文档序列值的生成过程,其按照一定的生成规则,如递增生成相应的序列值或递减生成相应的序列值,如果存在最新文档序列值200712031206时,那么生成的下个文档序列值应该为200712031207;如果时按照时间戳生成,则自动根据时间戳的增加即可生成对应于时间戳的文档序列值。这里可以在生成新的XML文档时建立所对应的文档序列值。
步骤S405:创建或修改文档;
在创建或修改XML文档后,每个文档即可有相同的文档序列值。
步骤S406:XDMS向UE返回应答消息。
所述应答消息中包含了新的文档信息以及新的文档信息相同的文档序列值,所述文档序列值可以为下次XML文档操作时提供基准。
基于文档序列值的DELETE请求处理流程过程的具体流程图如图5所示,步骤如下:
步骤S501:UE向XDMS发起PUT请求;
步骤S502:若文档存在,则比较文档序列值,如果文档序列值不同则进行步骤S503,如果文档序列值相同则进行步骤S504;
步骤S503:如果文档序列值不同,则返回403(Forbidden);
步骤S504:删除文档;
步骤S505:XDMS向UE返回应答消息。
在引入了文档序列值机制后,PUT、DELETE、GET等OMAXCAP信令的应答消息头中,应增加文档序列值信息,用timemark进行描述。如DELETE应答消息:
Figure GSB00000451290300081
如果是批量修改或获取文档,则每篇文档的文档序列值出现在应答消息体中。例如批量修改文档返回的应答消息体中携带文档序列值:
Figure GSB00000451290300082
其中,每个file对应一篇文档,timemark则是本发明所说的文档序列值。
批量获取文档时,文档序列值可以和文档名、etag一起返回,如采用以下形式:
<file name=″s_white″etag=″iH9dv″timemark=″20071219102657″>
通过文档序列值,终端登陆时可以按文档序列值范围获取文档。“递增”或“递减”是XDMS提供的序列生成方式,在增量同步时也据此识别增量范围。例如,文档序列值自某个值起以递减方式生成时,XDMS会认为序列值越小文档越新——最近发生变化。通常,文档序列值按递增方式生成,这比较符合习惯。按文档序列值同步文档时,XDMS识别变更的所有文档,在一次请求应答中返回该序列值起所有发生变化的文档。
文档序列值也可用于版本控制,只有请求中的文档序列值与XDMS中的文档序列值完全相同(即相等),才视为有权操作,否则视为无权操作,返回403(Forbidden)。在版本控制方面,文档序列值与etag的作用完全等价。
为避免与OMA定义的GET信令冲突,本发明实施例提供了一种新的同步信令,取名为SYNC。图6示出了本发明实施例中的基于文档序列值的SYNC请求处理流程过程,具体步骤如下;
步骤S601:UE发起SYNC请求,带鉴权信息;
步骤S602:识别所需要进行同步的文档;
步骤S603:一次或分批返回所需要的文档。
在实现同步过程中,可以根据文档数量的多少批量返回所需要进行同步的文档,每批文档可以包含有多个需要进行同步的文档,不需要每个文档进行交互。如果文档少,则一次性同步所需进行的多个文档;如果文档数量多,则可以分多批次同步所需要进行的文档,避免了将所要文档都封装在一个大的XML文档中。按照批量进行文档同步时,每次返回文档时可以给出下一批文档的序列基准值,UE根据这个发起获取下一批文档的请求。例如,文档序列值为210至800时,每次返回50篇文档,首次请求可以从21开始,则第一次返回的下一批序列基准值是260,则UE下次获取文档可以从260起,服务器返回未找到文档为止。
当文档同步请求给定文档序列值起始范围时,当文档序列值为增序生成时,所述满足条件的文档集合指服务器端文档序列值大于等于文档同步请求中同一业务的文档序列值起始值,但小于文档同步请求中同一业务的文档序列值结束值;当文档序列值为降序生成时,所述满足条件的文档集合指服务端文档序列值小于等于文档同步请求中同一业务的文档序列值起始值,但大于文档同步请求中同一业务的文档序列值结束值。
当文档同步请求仅给定文档序列值起始值时,当文档序列值为增序生成时,所述满足条件的文档集合指服务端文档序列值不小于文档同步请求中同一业务的文档序列值;当文档序列值为降序生成时,所述满足条件的文档集合指服务端文档序列值不大于文档同步请求中同一业务的文档序列值。
由于通过文档序列值进行文档删除后在服务端不再保留,通过文档序列值进行增量同步时,除非终端给定的文档序列值为系统预置的序列初试值,否则终端不能根据服务端返回的文档知道哪些文档已被物理删除。需要说明的是,本发明引入文档序列值进行文档版本识别和同步的方法与通过获取xcap-directory得到文档目录并不冲突,事实上终端仍然可以通过获取xcap-directory获得文档目录,并通过比较文档列表获知哪些文档已被删除。对于新增和修改过的文档同步,采用本发明所述文档序列值的方法可以获得更高的效率。
下面将详细描述SYNC信令格式,表1为SYNC信令定义的表格图,包括请求消息和应答消息,其中:
请求消息包括请求行、请求消息头和请求消息体,其中:请求行包括请求的业务、发起请求的用户号码、请求的业务内容、请求的统一资源标识符;
应答消息包括应答状态行、应答消息头和应答消息体,其中:应答状态行包括返回码类型。
  名称   类型   说明
  Method   token   XCAP请求方法,取值SYNC
  Request-URI   HTTP URI   指定请求操作的XCAP资源。
  HTTP-Version   HTTP版本,取值HTTP/1.1
表1
请求行:SYNC请求由Request-URI构成:XCAP Root+AUID+“users”+XUI。完整的同步请求行如下:
“SYNC http://xcap.example.com/resource-lists/users/sip:123324@huawei.comHTTP/1.1”。
其中,“resource-lists”表示分组业务,如果同步多个业务可以用特殊符号替代,如“00”,表示同步的业务在请求消息体中定义,“123324”表示发起请求的用户号码,“sip:”表示这是一个sip uri,“huawei.com”为用户‘123324’归属的XDMS域名。
请求消息头:SYNC请求消息头格式如下:
Content-type:application/sync+xml
Content-Length:(...)
其中:application/sync+xml是SYNC请求的消息体格式。
请求消息体:SYNC请求消息体格式:
Figure GSB00000451290300101
Figure GSB00000451290300111
需要说明的是,这里的″com:huawei:sync″为SYNC请求消息体的命名空间(namespace);timemark为文档序列值,list的timemark属性表示所有业务的文档序列值必须晚于给定的值,auid中的timemark属性表示当前auid对应的业务的文档序列值必须晚于给定的值,file中的timemark元素表示文档的序列值必须等于给定的值——等价于etag;上述格式中timemark均是可选,这就带来了灵活性,具体讲:内层的timemark存在时,序列值需要按等于处理,list和auid中的timemark同时存在时,取最近序列值作为基准,如1比2小,序列值为递增方式时,取2,反之取1;上述格式还给出了同步的范围表达方式,越到内层范围越小,是个逐级收敛的过程;auidType中name为auid的名字,如name=”resource-lists”;fileType中name为文档名,可以用“*”表示获取所有文档;auid下既指定具体文档名又指定文档名为”*”时,则取该用户auid下的所有文档。
应答状态行:格式:HTTP-Version+Status-Code+Reason-Phrase
示例如下:
HTTP-Version:HTTP/1.1
Status-Code:200
Reason-Phrase:OK
其中:SYNC应答状态行的Status-Code取自OMA定义的返回码类型,如200(成功)、500(内部错误)、404(未找到)。
应答消息头:
Content-Type:application/sync-result+xml
Content-Length:(...)
其中:application/sync-result+xml表示SYNC信令应答消息体格式。
应答消息体:SYNC应答消息体格式(Schema):
Figure GSB00000451290300121
Figure GSB00000451290300131
其中:″com:huawei:sync-result″为SYNC应答消息体命名空间(NameSpace);SYNC应答消息体消息体分list、auid和file三级,list为根节点,auid描述业务,file描述文档;list中的timemark属性为下次同步所有业务的基准值,如当前系统时间;auid节点:name为auid名字,ctype为auid对应的schema(即消息体格式),timemark为业务对应的下次同步基准序列值,如当前系统时间;file节点:name为文档名,etag为文档版本号,timemark表示文档最新变更时间(含新增);应答消息中auid的timemark为空时表示业务下次同步的序列值参照list中的timemark。
下面将描述一个完整的SYNC请求消息和应答消息,具体描述如下:
SYNC请求消息:
需要说明的是,SYNC的Request-uri中AUID是“00”,表示用户13500000000要求同步多个业务的文档,业务信息从请求消息体中获取。用户13500000000请求同步“resource-lists”下的s_black和s_white,以及″contact-profile″下的所有文档,对s_black和s_white的要求是文档序列值大于等于“20071212121212”,对″contact-profile″的文档要求是文档序列值大于等于“20071212123000”。
SYNC应答消息:
Figure GSB00000451290300142
Figure GSB00000451290300151
Figure GSB00000451290300161
需要说明得是,此例返回resource-lists中符合文档序列值要求的文档s_black、s_white,以及contact-profile中符合文档序列值要求的m_12344、m_12345;list中的timemark值20080101102010作为下次同步数据的基准,各业务没有返回文档序列值表示各业务的下次同步基准序列值与list中返回的值一致。
综上所述,在对XML文档引入文档序列值以后,终端不必先获取xcap-directory进行逐个比较文档版本号,识别发生变化的XML文档,而是直接告诉XDMS文档同步的基准序列值,由XDMS识别自该序列值以后发生变化的文档并一次性返回终端。这一变化简化了终端同步文档的处理逻辑,以及终端与XDMS之间的交互过程,也减少了终端与XDMS之间交互的次数,从而减少了文档同步的时间,改善了用户体验。除了文档同步功能之外,文档序列值可以作为OMAetag的替代方案,即按文档序列值是否相同作为操作权限判断的依据,在实现了操作权限判断之后,对于更新文档的请求,如添加/修改操作等时,可以为更新文档生成相应的文档序列值,通过所述文档序列值能够反应出XML文档的更新状态,以便服务器更好的进行XML文档操作。
以上所揭露的仅为本发明实施例中的一些较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (12)

1.一种XML文档操作方法,其特征在于,该方法包括:
接收XML文档操作请求,其中所述XML文档操作请求为同步文档请求时,所述XML文档操作请求中包括文档序列值;
根据文档序列值和XML文档操作请求完成所请求的文档操作,所述文档序列值为按照XML文档更新顺序建立的序列值;
其中,所述根据文档序列值和XML文档操作请求完成所请求的文档操作步骤具体为:
根据文档序列值判断XML文档操作请求中所需要同步的XML文档范围;
对需要同步的XML文档进行文档同步操作,其中,文档同步操作的信令包括需要同步的文档内容、文档名、文档序列值和业务标识。
2.如权利要求1所述的XML文档操作方法,其特征在于,所述方法还包括:为存储的XML文档按照文档更新顺序建立所对应的文档序列值,并将所述文档序列值存储。
3.如权利要求2所述的XML文档操作方法,其特征在于,所述为存储的XML文档按照文档更新顺序建立所对应的文档序列值步骤具体为:
为存储的XML文档按照时间顺序或数据序列的更新顺序建立所对应的文档序列值。
4.如权利要求3所述的XML文档操作方法,其特征在于,所述XML文档操作请求还包括添加文档请求、或修改文档请求、或删除文档请求、或添加文档节点/属性请求、或删除文档节点/属性请求、或查找文档请求、或替换文档节点/属性。
5.如权利要求4所述的XML文档操作方法,其特征在于,所述XML文档操作请求为添加文档请求、或添加文档节点/属性请求时,所述根据文档序列值和XML文档操作请求完成所请求的文档操作步骤具体为:
根据XML文档操作请求生成新的XML文档,并根据文档序列值更新顺序为所述新的XML文档生成相应的文档序列值。
6.如权利要求4所述的XML文档操作方法,其特征在于,所述XML文档操作请求为修改文档请求、或删除文档请求、或删除文档节点/属性请求、或替换文档节点/属性时,所述XML文档操作请求中包括文档序列值;
所述根据文档序列值和XML文档操作请求完成所请求的文档操作步骤具体为:
判断所述XML文档操作请求中的文档序列值和存储的文档序列值是否相同;
如果所述XML文档操作请求中的文档序列值和存储的文档序列值相同,则根据文档序列值完成所述XML文档操作。
7.如权利要求6所述的XML文档操作方法,其特征在于,
所述XML文档操作请求为修改文档请求、或删除文档节点/属性请求、或替换文档节点/属性时,所述根据文档序列值完成所述XML文档操作具体为:按照XML文档更新顺序为更新的XML文档生成相应的文档序列值。
8.如权利要求1所述的XML文档操作方法,其特征在于,
所述需要同步的XML文档范围为基于文档序列值的所有更新的XML文档或满足同步请求中给定文档序列值取值范围的所有XML文档。
9.如权利要求8所述的XML文档操作方法,其特征在于,所述对需要同步的XML文档进行文档同步操作具体为:
当有多个基于同步请求中文档序列值的更新XML文档需要进行同步操作,将所述多个文档按照文档序列值更新顺序一次将多个文档进行同步操作。
10.一种XML文档操作系统,其特征在于,该系统包括:
存储模块,用于存储XML文档及所对应的文档序列值,所述文档序列值为按照XML文档更新顺序建立的序列值;
接收模块,用于接收XML文档操作请求,其中所述XML文档操作请求为同步文档请求时,所述XML文档操作请求中包括文档序列值;
处理模块,用于根据所述存储模块存储的所述文档序列值和接收模块接收的XML文档操作请求完成相应的文档操作;
其中,所述处理模块还包括:
第二判断单元,用于根据文档序列值判断XML文档操作请求中所需要同步的XML文档范围;
同步单元,用于根据第二判断单元判断的XML文档范围对需要同步的XML文档进行文档同步操作,其中,文档同步操作的信令包括需要同步的文档内容、文档名、文档序列值和业务标识。
11.如权利要求10所述系统,其特征在于,所述处理模块包括:
第一判断单元,用于判断所述XML文档操作请求中的文档序列值和存储的文档序列值是否相同;
删除单元,用于当所述第一判断单元判断相同和所述XML文档操作请求为删除文档请求时,删除相应的XML文档。
12.如权利要求11所述的系统,其特征在于,所述处理模块还包括:
生成单元,用于当所述第一判断单元判断相同和所述XML文档操作请求为修改文档请求或删除文档节点请求时、或所述XML文档操作请求为添加文档请求或添加文档节点/属性请求时,按照XML文档更新顺序为更新或增加的XML文档生成相应的文档序列值。
CN2008100269332A 2008-03-21 2008-03-21 一种xml文档操作方法及xdms Expired - Fee Related CN101256572B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN2008100269332A CN101256572B (zh) 2008-03-21 2008-03-21 一种xml文档操作方法及xdms
PCT/CN2009/070797 WO2009115025A1 (zh) 2008-03-21 2009-03-16 一种xml文档操作方法及xdms

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008100269332A CN101256572B (zh) 2008-03-21 2008-03-21 一种xml文档操作方法及xdms

Publications (2)

Publication Number Publication Date
CN101256572A CN101256572A (zh) 2008-09-03
CN101256572B true CN101256572B (zh) 2011-08-10

Family

ID=39891398

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100269332A Expired - Fee Related CN101256572B (zh) 2008-03-21 2008-03-21 一种xml文档操作方法及xdms

Country Status (2)

Country Link
CN (1) CN101256572B (zh)
WO (1) WO2009115025A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101256572B (zh) * 2008-03-21 2011-08-10 华为技术有限公司 一种xml文档操作方法及xdms
CN102549568B (zh) * 2009-09-22 2015-06-17 瑞典爱立信有限公司 用于能够实现xml文档的修改的方法和设备
CN103780483A (zh) * 2012-10-26 2014-05-07 中兴通讯股份有限公司 一种物联网终端设备的资源信息获取方法、系统及设备
US9104717B2 (en) * 2013-01-31 2015-08-11 Futurewei Technologies, Inc. Distributed storage object delete
CN103607451B (zh) * 2013-11-18 2017-02-15 上海爱数信息技术股份有限公司 支持并发的客户端与服务器端的文档操作同步方法
CN106330579B (zh) * 2015-06-15 2020-04-28 中兴通讯股份有限公司 一种用于ptn设备的丢包统计方法及装置
CN113934452B (zh) * 2021-09-30 2022-08-09 北京五八信息技术有限公司 一种数据处理方法、装置、电子设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100636909B1 (ko) * 2002-11-14 2006-10-19 엘지전자 주식회사 확장성 표기 언어 기반의 전자문서 버전 매김 및 버전을이용한 갱신 문서 제공 방법
US7529726B2 (en) * 2005-08-22 2009-05-05 International Business Machines Corporation XML sub-document versioning method in XML databases using record storages
US8650254B2 (en) * 2005-12-21 2014-02-11 International Business Machines Corporation Providing version control for electronic mail attachments
CN100481796C (zh) * 2006-09-07 2009-04-22 天栢宽带网络科技(上海)有限公司 数据广播内容自动更新的方法和系统
US7904418B2 (en) * 2006-11-14 2011-03-08 Microsoft Corporation On-demand incremental update of data structures using edit list
CN101256572B (zh) * 2008-03-21 2011-08-10 华为技术有限公司 一种xml文档操作方法及xdms

Also Published As

Publication number Publication date
WO2009115025A1 (zh) 2009-09-24
CN101256572A (zh) 2008-09-03

Similar Documents

Publication Publication Date Title
CN101256572B (zh) 一种xml文档操作方法及xdms
CN101167069B (zh) 文件对等同步的系统和方法
US9143560B2 (en) Methods and apparatus for dataset synchronization in a wireless environment
CN101009516B (zh) 一种进行数据同步的方法、系统及装置
CN100579130C (zh) 一种sns网络中好友推荐系统及方法
US7080104B2 (en) Synchronization and merge engines
EP2378718B1 (en) Method, node and system for controlling version in distributed system
US20100269164A1 (en) Online service data management
US20090006529A1 (en) Client side based data synchronization and storage
CN105991720B (zh) 配置变更方法、设备及系统
KR20140038988A (ko) 효율적 상태 조정 기법
CN108595522A (zh) 一种增量同步方法、装置及系统
CA2873103A1 (en) System and method for managing data using tree structures
CN101031060B (zh) 一种生成电子节目指南的系统及方法
JP2008287407A (ja) コンテンツ配信装置およびコンテンツ配信方法
US20140344215A1 (en) Apparatus and method for inviting subscription to contact information
CN104509029A (zh) 在通信系统中更新个人信息的方法及装置
CN110489483B (zh) 数据同步方法、装置、计算机设备以及存储介质
CN107741994A (zh) 一种数据更新方法及装置
JP2010198223A (ja) 関連性解析システムおよび関連性解析方法
CN107786661B (zh) 信息同步方法
CN101808170B (zh) 一种网络电话本系统的服务器和实现网络电话本的方法
KR100864987B1 (ko) 클라이언트 동기화 시스템 및 그 방법
CN102012909A (zh) 一种事件提醒业务处理方法
CN105791350B (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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110810

Termination date: 20170321

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