首页> 中国专利> 一种可扩展标记语言文档修改痕迹的记录方法

一种可扩展标记语言文档修改痕迹的记录方法

摘要

本发明涉及一种可扩展标记语言(XML,即Extensible Markup Language)文档修改痕迹的记录方法,属于计算机内容管理和出版技术领域。现有的技术方法是使用特定的工具,例如常用的文字编辑软件,将业务数据保存在专有的文件格式当中以记录数据的修改痕迹,普遍存在业务数据难以自动识别和重用的问题。本发明所述的方法采用一种将修改痕迹数据和具体XML文档格式相分离的方式,以基于过程的技术手段记录XML文档的修改痕迹。采用本发明所述的方法,可以支持任意格式的XML文档的修改痕迹记录,并同时兼顾记录精度和存储空间两个方面的要求。

著录项

  • 公开/公告号CN1588352A

    专利类型发明专利

  • 公开/公告日2005-03-02

    原文格式PDF

  • 申请/专利号CN200410083923.4

  • 发明设计人 刘洋;

    申请日2004-10-12

  • 分类号G06F17/21;

  • 代理机构11204 北京英赛嘉华知识产权代理有限责任公司;

  • 代理人田明;王达佐

  • 地址 100085 北京市海淀区上地五街九号方正大厦

  • 入库时间 2023-12-17 15:55:48

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2007-09-19

    授权

    授权

  • 2005-05-04

    实质审查的生效

    实质审查的生效

  • 2005-03-02

    公开

    公开

说明书

技术领域

本发明属于计算机内容管理和出版技术领域,具体涉及一种可扩展标记语言文档(XML文档)修改痕迹的记录方法。

背景技术

XML是“Extensible Markup Language”的缩写,即可扩展标记语言。它是由国际互联网标准组织W3C发展并支持的技术,由于它的简单通用和跨平台特性,获得众多组织的支持而得到迅速的发展。

目前,XML技术的应用已经非常的广泛,许多行业已经利用XML技术制定了相关的行业信息标准,越来越多的应用系统也开始使用XML技术来存储和交换业务数据。这些业务数据常常包含敏感的信息,例如报业,由于它经营新闻这一特殊的产品,要求对新闻编辑全程实施跟踪管理,每一个文字的修改变更都要有明确的责任人。因此对这些业务数据实施修改痕迹跟踪记录和版本管理显得尤为重要。

修改痕迹是指对一篇文档的各种修改情况,包括文字的内容、格式或者顺序的变化。修改痕迹记录的目的在于保留文档的各种修改情况,并在需要时(例如新闻报道时出现文字错字要追究责任人时)详细展示这些变化信息。

现在市场上有一些文字编辑工具(例如WORD、WPS和方正采编稿件编辑器)能够记录文字的修改痕迹,但这些工具所处理的都是自己专有的文档格式(例如doc或wps),而不是通用的XML文档格式,因此无法在使用这些工具记录文档修改痕迹的同时获得XML数据描述的技术优势。如果把业务数据都保存在这些专有文档格式当中会存在种种缺陷:首先是许多业务数据结构错综复杂,很难在这些特定的专有文档格式中表达清楚;其次是计算机应用系统要从这些复杂的专有文档格式中提取出所需的业务数据也非常的困难。

因此,提供一种能够直接支持XML文档修改痕迹的记录方法,在获得XML数据描述技术优势的同时,又能以通用的方式记录其修改痕迹,对这些信息敏感的行业有非常重大的价值。

发明内容

针对现有技术中存在的缺陷,本发明的目的是针对敏感数据XML文档处理的需求特点,提出一种在多用户环境下,支持任意格式XML文档的修改痕迹记录的新方法,同时兼顾修改痕迹记录精度和数据存储空间两个方面的要求。

为达到以上目的,本发明采用的技术方案是:

一种可扩展标记语言文档修改痕迹的记录方法,包括以下步骤:

1)载目标XML文档,为其内容建立一个独立的修改痕迹记录文件,所述的XML文档即可扩展标记语言文档;

2)将目标XML文档的所有元素和属性节点一一映射到修改痕迹记录,目标XML文档的每一个元素和属性节点都有一个相对应的修改痕迹数据记录;

3)在用户修改目标XML文档的过程中,同时更新其相应的修改痕迹记录的信息,包括修改内容、操作者、时间、版本号信息;

4)重复上述步骤,获得增量的修改痕迹记录信息;

5)在查看XML文档内容变化时,可以从修改痕迹记录中提取出详细的修改痕迹信息,展现文档的历史修改情况。

更进一步,为使本发明具有更好的效果:

步骤1)中修改痕迹记录文件和目标XML文档是相分离的,其格式不受目标XML文档格式的影响。

步骤3)中,目标XML文档内容的更新和修改痕迹数据记录的更新是同步进行的;修改痕迹记录信息的更新是增量式的,也就是说当目标XML文档的节点内容发生变化时,只需要记录相应部分的修改痕迹数据,而不是目标文档全部内容的备份。

步骤5)中,该方法还可以从修改痕迹记录文件反向生成目标XML文档以前版本的内容,通过比较修改痕迹节点创建和删除的版本号与目标版本号的大小,就可以决定某一个节点是否应该出现在目标版本中,从而生成目标XML文档内容。

与现有技术相比,本发明的效果在于:

1)本发明基于过程的修改记录,可以实时反映XML文档的修改情况,可以在多用户工作环境下精确记录XML文档内容的各种修改情况;

2)本发明中采用增量式的记录方式,同时兼顾了记录精度和存储空间两个方面的要求;

3)本发明修改痕迹记录和具体的XML文档格式(所代表的应用意义)相分离,因此适用于各种各样格式的XML文档的修改痕迹记录,具有非常高的灵活性;

4)支持版本回溯,可以重现XML文档在某个历史版本下的状态,或者将文档内容恢复到以前的版本。

本发明之所以具有上述显著效果,主要是因为:

1、本发明所述的方法基于过程的修改记录可以在用户修改目标XML文档的同时准确地记录内容的变化情况,相比其他方法(如一些编辑器所采用的基于结果比较的修改痕迹记录方法)有更高的时间和空间准确性。与基于结果比较的修改痕迹记录方法不同,本发明方法所采用的基于过程的修改痕迹记录方法能够极大地提高修改痕迹记录的精度。例如,对一段XML文本内容“1111”,当在其中第3个字符位置再插入一个“1”后,变为“11111”,本发明可以准确地反映出后来的“1”是在一个具体的时刻,在第3个位置插入的内容。而基于结果比较的修改痕迹记录方法只能反映出该段文字多出了一个“1”,而无法指出是在具体那个位置和时间。

2、增量式的修改痕迹记录方式可以最小化修改痕迹记录对数据存储空间的需求。相比完全备份文档版本管理方式,能大大节省存储空间。理论上说(根据实施方式的不同,会有微小的差异),本发明方法所采用的增量式修改痕迹记录方式,在增加新版本的时候所需的修改痕迹数据存储空间与该版本实际增加的信息量相等。而采用完全备份的版本管理方式,增加新版本时所需的修改痕迹存储为:原文档大小×2+新增信息量。举一个例子来说,对于一篇1万字的文档,对其进行修改,增加了100个字的内容,本修改痕迹方案所需的数据存储空间大约为10000+100=10100字,而完全备份方式的修改痕迹存储方案所需的存储空间为10000*2+100=20100字。由此可见本发明方法能极大地节约数据的存储空间。

3、本发明所述方法中修改痕迹记录和具体的XML文档格式(所代表的应用意义)相分离,因此该方法适用于各种各样格式的XML文档的修改痕迹记录,具有非常高的灵活性,特别适用于政府、传媒等对信息敏感的行业。其实现也比较简单,能够方便地应用到XML文档数据加工处理系统中。

附图说明

图1是本发明方法的技术流程图;

图2是实施案例“新华社多媒体编辑系统”的主界面截图;

图3是版本历史记录浏览的实施方式示意图;

图4是修改痕迹浏览视图的实施方式示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的描述:

本发明所述方法的实现比较简单,可以以多种方式应用到各种XML文档数据加工处理系统中。如图2示,新华社多媒体新闻产品编辑系统是一个图文并茂,所见即所得的多媒体编辑系统,其新闻产品是一种以XML格式描述的文档,需要经过编辑、审阅、发布等一系列步骤的处理。由于新华社是我国非常重要的信息集散地,对信息特别敏感,因此新华社要求在整个生产过程中对新闻产品实施修改痕迹跟踪记录。

如图1所示,一种可扩展标记语言文档修改痕迹的记录方法,包括以下步骤:

1)装载目标XML文档,为其内容建立一个独立的修改痕迹记录文件;

为提高系统的灵活性,在本实施例中我们采用了XML文档格式存储修改痕迹数据。将修改痕迹数据和目标XML文档相分离可以实现两个重要的目的:

首先,不需要把修改痕迹的数据加入到用户的XML文档当中,也就是说用户无需为了记录文档的修改痕迹而更改现有的XML文档的格式,这样可以很好地保护用户现有的投资。

其次,独立的修改痕迹数据记录文件可以与目标XML文档的具体应用意义相分离,这样修改痕迹数据记录就可以适应各种不同的XML文档,从而适应各种不同的应用需求,使得系统具有很高的灵活性。

2)将目标XML文档的所有元素和属性节点一一映射到修改痕迹记录;

将目标XML文档的内容一一映射到修改痕迹记录,实现了修改痕迹记录数据文件和目标XML文档的内容同步。为了达到与具体应用无关的目的,需要将XML文档当作通用的节点集合进行处理,因此需要为各种不同的XML文档节点建立一个修改痕迹记录结构。

具体地说,XML文档的节点类型包括:元素节点、属性节点、文本节点、注释节点和处理指令节点。因此需要建立5种修改痕迹数据结构用于分别描述这些节点的信息,在本实施例中以XML格式描述这5种修改痕迹数据结构为:

■元素节点:由一个<element_start name=””st=””s_op=””s_dt=””en=””e_op=””e_dt=””>和一个<element_end name=””>节点共同标识。其中,name属性标识元素节点的名称,st属性标识节点创建的起始版本号,s_op属性标识节点的创建者,s_dt属性标识节点的创建时间,en属性标识节点的删除版本号,e_op属性标识节点的删除者,e_dt属性标识节点的删除时间;

■属性节点:由一个<attr name=””>节点标识,该节点必须位于<element_start>节点内。每个<attr>节点中又包含多个<alog>节点,用于标识属性在每个版本下的取值,其结构为:<alog value=””st=””s_op=””s_dt=””en=””e_op=””e_dt=””/>,其中value属性标识该节点的取值,其他属性的意义同元素节点的定义;

■文本节点:由一个<text>节点标识,<text>节点中包含多个<atext value=””st=””s_op=””s_d=””en=””e_op=””e_dt=””/>用于表示该文本节点的取值。各属性的定义同元素节点;

■注释节点:由一个<comment>节点标识,内部结构定义与文本节点相同;

■处理指令节点:由一个<process>节点标识,内部结构定义与文本节点相同。

例如,对于一份目标XML文档(一份销售订单),

<?xml version=″1.0″encoding=″utf-8″?>-<order id=″168″>

<product>笔记本电脑</product>

<price>9999</price>

<quantity>10</quantity>

</order>

经过上述步骤的处理,可以得到相应的修改痕迹数据文档(以XML格式表达)如下:

-<xmltrace>-<metadata><last status operator=″0″tid=″T14″version=″0″/>-<history><version dt=″1090562416″op=″0″vn=″0″/></history></metadata>-<content><document start id=″T1″/>-<element start id=″T3″name=″order″st=″0″>-<attr name=″id″><alog st=″0″val=″168″/></attr></element_start><element_start id=″T5″name=″product″st=″0″/>-<text id=″T7″st=″0″><atext s_dt=″1090562416″s_op=″0″st=″0″>笔记本电脑</atext></text><element_end id=″T6″name=″product″st=″0″/><element_start id=″TB″name=″price″st=″0″/>-<text id=″T10″st=″0″><atext s_dt=″1090562416″s_op=″0″st=″0″>9999</atext></text><element_end id=″T9″name=″price″st=″0″/><element_start id=″T11″name=″quantity″st=″0″/>-<text id=″T13″st=″0″><atext s_dt=″1090562416″s_op=″0″st=″0″>10</atext></text><element_end id=″T12″name=″quantity″st=″0″/><element_end id=″T4″name=″order″st=″0″/><document_end id=″T2″/></content></xmltrace>

3)在用户修改目标XML文档的过程中,同时更新其相应的修改痕迹记录的信息,包括修改内容、操作者、时间、版本号信息;

在用户修改XML文档内容的同时,更新修改痕迹记录的内容,实现了基于过程的修改痕迹记录。其作用在于精确地记录XML文档的变化情况,包括准确的位置和时间信息。

对XML文档的修改最主要的是对属性值和文本内容的修改,在用户请求修改的时候,首先找出目标节点相对应的修改痕迹节点,更新其修改痕迹数据,然后再实际修改XML文档内容即可。

4)上述步骤,获得增量的修改痕迹记录信息;

5)在查看XML文档内容变化时,就可以从修改痕迹记录中提取出详细的修改痕迹信息,展现文档的历史修改情况。

在用户需要查看目标文档内容的变化情况时,由于修改痕迹数据文档已经详细记录了每一个节点的信息,包括其名称、内容、版本号、操作者和时间,因此提取这些信息,就可以展示出目标文档的历史变化情况。

如图3所示,在本实施例中,我们为该编辑系统的用户界面增加新的修改痕迹控制菜单:浏览修改痕迹和版本回溯功能菜单,让用户可以方便地访问到相关的修改痕迹记录信息。

如图4所示,呈现文档内容的变化情况有几种可行的方式,在本实施例中我们采用了一种称为“大花脸”视图的技术,该技术以不同的颜色表示内容是被不同的用户修改的,以在文字中间加上横线标识内容是被删除的,当鼠标移动到某个文字内容上方的时候,还可以通过弹出式窗口详细描述清楚该文字是何人、何时修改过的信息。经过长期的使用发现,这种方式对用户非常友好,可以很容易识别出不同用户对文档进行了那些修改。

上述步骤只是一个优选的实施方式。本领域技术人员不难得出其他的实施方法而不违背本发明的总体思想。

其中,将本发明方法的处理逻辑加入到系统XML文档处理内核中(例如DOM单元)是非常简单可行的方法,因为上层应用不需要进行任何修改即可获得修改痕迹记录的能力。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号