CN100338605C - 一种可扩展标记语言文档修改痕迹的记录方法 - Google Patents
一种可扩展标记语言文档修改痕迹的记录方法 Download PDFInfo
- Publication number
- CN100338605C CN100338605C CNB2004100839234A CN200410083923A CN100338605C CN 100338605 C CN100338605 C CN 100338605C CN B2004100839234 A CNB2004100839234 A CN B2004100839234A CN 200410083923 A CN200410083923 A CN 200410083923A CN 100338605 C CN100338605 C CN 100338605C
- Authority
- CN
- China
- Prior art keywords
- xml document
- vestige
- modification
- content
- target
- 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.)
- Active
Links
Images
Abstract
本发明涉及一种可扩展标记语言(XML,即Extensible Markup Language)文档修改痕迹的记录方法,属于计算机内容管理和出版技术领域。现有的技术方法是使用特定的工具,例如常用的文字编辑软件,将业务数据保存在专有的文件格式当中以记录数据的修改痕迹,普遍存在业务数据难以自动识别和重用的问题。本发明所述的方法采用一种将修改痕迹数据和具体XML文档格式相分离的方式,以基于过程的技术手段记录XML文档的修改痕迹。采用本发明所述的方法,可以支持任意格式的XML文档的修改痕迹记录,并同时兼顾记录精度和存储空间两个方面的要求。
Description
技术领域
本发明属于计算机内容管理和出版技术领域,具体涉及一种可扩展标记语言文档(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="T8"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单元)是非常简单可行的方法,因为上层应用不需要进行任何修改即可获得修改痕迹记录的能力。
Claims (6)
1.一种可扩展标记语言文档修改痕迹的记录方法,包括以下步骤:
1)装载目标XML文档,为其内容建立一个独立的修改痕迹记录文件,所述的XML文档即可扩展标记语言文档;
2)将目标XML文档的所有元素和属性节点一一映射到修改痕迹记录,目标XML文档的每一个元素和属性节点都有一个相对应的修改痕迹数据记录;
3)在用户修改目标XML文档的过程中,同时更新其相应的修改痕迹记录的信息,包括修改内容、操作者、时间、版本号信息;
4)重复上述步骤,获得增量的修改痕迹记录信息;
5)在查看XML文档内容变化时,可以从修改痕迹记录中提取出详细的修改痕迹信息,展现文档的历史修改情况。
2.如权利要求1所述的一种可扩展标记语言文档修改痕迹的记录方法,其特征在于:步骤1)中,修改痕迹记录文件和目标XML文档是相分离的,其格式不受目标XML文档格式的影响。
3.如权利要求1或2所述的一种可扩展标记语言文档修改痕迹的记录方法,其特征在于:步骤3)中,目标XML文档内容的更新和修改痕迹数据记录的更新是同步进行的。
4.如权利要求1或2所述的一种可扩展标记语言文档修改痕迹的记录方法,其特征在于:步骤3)中,修改痕迹记录信息的更新是增量式的,也就是说当目标XML文档的节点内容发生变化时,只需要记录相应部分的修改痕迹数据,而不是目标文档全部内容的备份。
5.如权利要求1所述的一种可扩展标记语言文档修改痕迹的记录方法,其特征在于:步骤5)中,该方法还可以从修改痕迹记录文件反向生成目标XML文档以前版本的内容,通过比较修改痕迹节点创建和删除的版本号与目标版本号的大小,就可以决定某一个节点是否应该出现在目标版本中,从而生成目标XML文档内容。
6.如权利要求4所述的一种可扩展标记语言文档修改痕迹的记录方法,其特征在于:步骤5)中,该方法还可以从修改痕迹记录文件反向生成目标XML文档以前版本的内容,通过比较修改痕迹节点创建和删除的版本号与目标版本号的大小,就可以决定某一个节点是否应该出现在目标版本中,从而生成目标XML文档内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100839234A CN100338605C (zh) | 2004-10-12 | 2004-10-12 | 一种可扩展标记语言文档修改痕迹的记录方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100839234A CN100338605C (zh) | 2004-10-12 | 2004-10-12 | 一种可扩展标记语言文档修改痕迹的记录方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1588352A CN1588352A (zh) | 2005-03-02 |
CN100338605C true CN100338605C (zh) | 2007-09-19 |
Family
ID=34605145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100839234A Active CN100338605C (zh) | 2004-10-12 | 2004-10-12 | 一种可扩展标记语言文档修改痕迹的记录方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100338605C (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101071789B1 (ko) | 2005-10-07 | 2011-10-11 | 인터내셔널 비지네스 머신즈 코포레이션 | 소스를 복사된 텍스트에 링크하는 방법 및 시스템 |
CN1859379B (zh) * | 2005-12-07 | 2011-02-09 | 华为技术有限公司 | 一种可扩展标记语言文档管理方法及系统 |
US9158858B2 (en) * | 2006-10-03 | 2015-10-13 | Samsung Electronics Co., Ltd | System and method for managing XML document management server history |
CN101546318B (zh) * | 2008-03-27 | 2013-01-16 | 北京兴宇中科科技开发股份有限公司 | 一种基于版本的数据存储方法 |
CN102549568B (zh) * | 2009-09-22 | 2015-06-17 | 瑞典爱立信有限公司 | 用于能够实现xml文档的修改的方法和设备 |
CN102096693A (zh) * | 2009-12-11 | 2011-06-15 | 鸿富锦精密工业(深圳)有限公司 | 文档变更追踪系统及方法 |
CN102541825B (zh) * | 2010-12-23 | 2014-11-12 | 北京大学 | 一种电子文件留痕信息的记录方法和装置 |
CN102750296B (zh) * | 2011-10-19 | 2018-05-04 | 新奥特(北京)视频技术有限公司 | 一种基于可扩展标记语言的高效存盘方法及系统 |
CN103136656A (zh) * | 2011-12-05 | 2013-06-05 | 英顺源(上海)科技有限公司 | 在文档修改后传送更新通知的系统及其方法 |
CN103902517A (zh) * | 2012-12-26 | 2014-07-02 | 北京大学 | 一种分离式电子公文留痕及其显现方法和系统 |
US10140269B2 (en) | 2013-03-12 | 2018-11-27 | Microsoft Technology Licensing, Llc | Viewing effects of proposed change in document before committing change |
CN104156374A (zh) * | 2013-05-16 | 2014-11-19 | 商忠青 | 一种电子文件管理方法及其管理系统 |
CN103605523A (zh) * | 2013-11-25 | 2014-02-26 | 上海爱数软件有限公司 | 一种文件内容历史版本自动生成与存储方法 |
CN109242430A (zh) * | 2018-09-03 | 2019-01-18 | 山东浪潮通软信息科技有限公司 | 一种工作流程设计编辑历史存储控制器及其应用方法 |
CN109165198A (zh) * | 2018-09-09 | 2019-01-08 | 江西金格科技股份有限公司 | 一种基于ofd文档的增量修改方法 |
CN109614371B (zh) * | 2018-10-23 | 2024-01-16 | 平安科技(深圳)有限公司 | 存储信息的方法、装置、计算机设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003050793A (ja) * | 2001-08-08 | 2003-02-21 | Matsushita Electric Ind Co Ltd | データ編集許否管理装置、データ編集装置、データ編集許否管理方法、データ編集方法、データ編集許否管理プログラム、データ編集プログラム、およびデータ提供装置 |
US20030237046A1 (en) * | 2002-06-12 | 2003-12-25 | Parker Charles W. | Transformation stylesheet editor |
US20040019848A1 (en) * | 2002-07-24 | 2004-01-29 | Truc Nguyen | Method for dynamically inserting and removing tab text |
-
2004
- 2004-10-12 CN CNB2004100839234A patent/CN100338605C/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003050793A (ja) * | 2001-08-08 | 2003-02-21 | Matsushita Electric Ind Co Ltd | データ編集許否管理装置、データ編集装置、データ編集許否管理方法、データ編集方法、データ編集許否管理プログラム、データ編集プログラム、およびデータ提供装置 |
US20030237046A1 (en) * | 2002-06-12 | 2003-12-25 | Parker Charles W. | Transformation stylesheet editor |
US20040019848A1 (en) * | 2002-07-24 | 2004-01-29 | Truc Nguyen | Method for dynamically inserting and removing tab text |
Also Published As
Publication number | Publication date |
---|---|
CN1588352A (zh) | 2005-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100338605C (zh) | 一种可扩展标记语言文档修改痕迹的记录方法 | |
US7614000B2 (en) | File formats, methods, and computer program products for representing presentations | |
CN111753499B (zh) | 电子表单与ofd版式文件合并展现及目录生成的方法 | |
US7617444B2 (en) | File formats, methods, and computer program products for representing workbooks | |
CN1838111B (zh) | 一种编辑文档并记录修改痕迹的方法 | |
CN103123631B (zh) | 文案的生成、网页文案的展示方法、装置及网站服务器 | |
JP2000148461A (ja) | ソフトウェアモデル及び既存のソ―スコ―ドを同期化させる方法及びその装置 | |
US9182947B2 (en) | Program source code navigation | |
US9406018B2 (en) | Systems and methods for semantic data integration | |
US20100251227A1 (en) | Binary resource format and compiler | |
CN101430714A (zh) | 一种基于样式的内容结构化加工方法及系统 | |
CN114297204A (zh) | 一种异构数据源的数据存储、检索方法及装置 | |
CN100527131C (zh) | 一种ims数据库互动式访问方法和工具 | |
CN101388018A (zh) | 电脑辅助设计文件的管理方法 | |
US20070282804A1 (en) | Apparatus and method for extracting database information from a report | |
Eckert | Provenance and annotations for linked data | |
CN114895875B (zh) | 一种零代码可视化信息系统元数据的生产应用方法及系统 | |
Yu et al. | Metadata management system: design and implementation | |
CN111143450A (zh) | 导入数据的方法和装置 | |
US20130031085A1 (en) | Docbase management system and implenting method thereof | |
CN114756554B (zh) | 一种基于MyBatis框架的数据查询处理方法 | |
CN104424334A (zh) | Xml文档节点的构建方法和装置 | |
CN115774767B (zh) | 一种地理信息元数据处理方法及装置 | |
CN110457659B (zh) | 条款文档生成方法及终端设备 | |
US20070192383A1 (en) | Extension specified undo transactions |
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 |