数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法

文档序号:6568975阅读:163来源:国知局
专利名称:数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
技术领域
本发明涉及用于编辑数据的技术,特别涉及用于由多个用户同步编 辑数据的技术。
背景技术
近年来,伴随着计算机的普及和网络技术的进步,通过网络的电子 信息交换变得频繁。由此,以前基于纸完成的大多数事务处理逐渐替换 为基于网络的处理。在企业中,将个人知识和信息在整个组织中使用的、所谓的知识管 理也变成重要的经营手段。在多数企业中,公司具有内部数据库系统, 将来自员工的信息在转换为电子文件后蓄积。另一方面,员工也通过网 络访问蓄积在该公司内部数据库中的文件。由此,在整体上提高组织的 业务效率。在近年中,蓄积在这种数据库中的文件使用被称作XML (extensible Markup Language:扩展标记语言)的语言制作的例子也逐 渐变多。XML是可定义文档文件中包括的数据层次结构的语言。由XML 制作的文档文件,通过另外提供的显示布局文件以网页形式显示。即 XML能够将数据结构及其显示布局作为不同的内容处理。XML文档文件 是根据由文档型定义等定义的词汇(标签集)制作。XML作为适合通过网路等与他人共享数据的形式而备受关注。近年 来,开发有用于制作、显示、编辑XML文档文件的各种应用软件(例如 参照专利文献l)。专利文献l:特开2001-2卯804号^^才艮发明内容发明要解决的课题由标签集定义数据结构的结构化文档文件,如XML文档文件,与数 据库的亲和性高。另外,当将结构化文档中包括的数据对象化时,可进 行更有效的数据访问。对象不仅包括在将数据进行结构化后作为成员变 量的数据,而且还包括作为访问成员变量的接口的成员函数。访问成员 变量的方法是由成员函数严格规定,因此容易保护数据,并且能够进行 有效的数据访问。对象也容易适应计算机程序进行的处理。但是,与源数据的数据量相比,对象的数据量变得相当大。特别 是,当从大的源数据生成的对象部署在存储器中时,存储器的存储容量 被压缩,反过来处理效率变得恶化。本发明是鉴于这种状况而做出的,其主要目的在于提供一种用于多 个用户有效地操作从源数据生成的对象的技术。解决课题的方案本发明一个实施方式的数据管理装置是通过网络与多个客户终端连 接的装置。该装置包括源对象生成单元,生成用于操作要被编辑的一 组元素数据的源对象,作为包括一组结构化的元素数据和用于访问各元 素数据的成员函数的对象;部分对象生成单元,从所述源对象生成多个 部分对象,作为与所述源对象中包括的所述一组元素数据的一部分对应 的对象;访问请求4妻收单元,从客户终端接收访问请求信息,该访问请 求信息用于请求在所述多个部分对象中指定的部分对象的编辑权或者阅 览权;访问权管理单元,根据从多个客户终端接收的访问请求信息,向 各客户终端分配每个所述部分对象的编辑权和阅览权;部分对象发送单 元,向请求对所述访问请求信息指定的部分对象进行编辑或阅览的客户 终端发送该部分对象的数据,以使得所述客户终端本地保存所述的数 据;编辑信息接收单元,当在获取了所述部分对象的编辑权的客户终端 中编辑本地保持的该部分对象时,从获取所述述编辑权的客户终端接收 表示所述部分对象的编辑内容的编辑信息;源对象更新单元,按照接收 的所述编辑信息中所示的编辑内容,更新所述源对象的相关部分;以及 编辑信息发送单元,将表示所述部分对象的编辑内容的编辑信息发送到获取了所述阅览权的客户终端,从而使得所述编辑内容反映在所述客户 终端本地保持的部分对象的相关部分中。部分对象还可以是包括在源对象中包括的元素数据的一部分,和用 于访问这些元素数据的成员函数的对象。编辑信息例如可以是显示通过 成员函数访问部分对象的访问操作以及访问内容的信息。或者,编辑信 息也可以是由编辑操作更新后的部分对象数据本身。编辑信息是至少用 于将部分对象的更新反映在源对象所必须的信息。对于发送到客户终端 的编辑信息也是如此。源对象生成单元还可以从由多个标签确定的元素数据的结构化文档 文件生成源对象。源对象生成单元参照用于将预定数据库中包括的多个元素数据进行 结构化的预定结构定义信息,将多个元素数据中要被编辑的一组元素数 据进行结构化,并从结构化的一组元素数据生成源对象。该装置也可以进一步具备结构化的管理信息保持单元,保持表示 源对象中包括的一组元素数据的层次结构的结构管理信息;结构化的管 理信息发送单元,将结构化的管理信息发送到客户终端;结构化的管理 信息更新单元,根据源对象的更新来更新结构化的管理信息。当结构化的管理信息所示的一组元素数据的层次结构变化时,结构 化的管理信息接收单元可以将更新后的结构管理信息重新发送到客户终 端。本发明另一实施方式的数据编辑装置与管理源对象的外部数据管理 装置通过网络连接。所述的数据编辑装置包括访问请求信息发送单 元,将用于请求编辑权的访问请求信息发送到所述数据管理装置,所述 访问请求信息根据源对象中包括的一组元素数据的一部分,在所述数据 管理装置生成的多个部分对象中指定相应的部分对象;部分对象接收单 元,从所述数据管理装置接收被指定的部分对象的数据;部分对象保持 单元,保持已接收的所述部分对象的数据;编辑输入单元,接收用户对 保持的部分对象的编辑搡作;部分对象更新单元,根据对所述部分对象 的编辑操作更新所述部分对象;以及编辑信息发送单元,将表示所述部分对象的编辑内容的编辑信息发送到所述数据管理装置,从而使得所述编辑内容反映在所述数据管理装置的源对象中该装置也可以进一步包括结构化的管理信息接收单元,从所述数 据管理装置接收结构化的管理信息,该结构化的管理信息表示源对象中 包括的一组元素数据的层次结构;结构化的管理信息显示单元,显示所 述结构化的管理信息;编辑位置指定单元,接受用户对所显示的结构化 的管理信息希望编辑的数据位置的输入。所述访问请求信息发送单元参 照所述结构化的管理信息识别与所指定的位置对应的部分对象,并发送 用于请求所识别的部分对象的编辑权的访问请求信息。访问请求信息发 送单元也可以参照结构管理信息确定与指定位置对应的部分对象,发送 用于请求已确定的部分对象的编辑权的访问请求信息。源对象也可以由多个数据管理装置分割为多个来保持,并且结构化 的管理信息还表示源对象中包括的各元素数据的实体位于哪个数据管理 装置中。而且,该装置的所述访问请求信息发送单元参照所述结构化的管理 信息识别保持被指定为要被编辑的部分对象的数据管理装置,并向所识 别出的数据管理装置发送访问请求信息。该装置的部分对象保持单元可保持多个部分对象。部分对象保持单 元也可以包括第1保持单元,保持要被阅览的部分对象;以及第2保持 单元,当部分对象未被阅览时保存在所述第2保持单元中。当指定为要 被阅览的部分对象保持在所述第2保持单元中时,所述访问请求信息发 送单元将该部分对象从所述第2保持单元加载到所述第1保持单元中,而 不发送访问请求信息。本发明的另一实施方式的数据阅览装置也与管理源对象的外部数据 管理装置通过网络连接。该装置包括访问请求信息发送单元,将用于 请求阅览权的访问请求信息发送到所述数据管理装置,所述访问请求信 息根据源对象中包括的一组元素数据的一部分,在所述数据管理装置生 成的多个部分对象中指定相应的部分对象;部分对象接收单元,从所述 数据管理装置接收所指定的部分对象的数据;部分对象保持单元,保持 已接收的部分对象的数据;编辑信息接收单元,当与所保持的部分对象 相当的、源对象的一部分在所述数据管理装置中更新时,接收从所述数据管理装置发送的编辑信息以表示所更新的内容;以及部分对象更新单 元,根据所述编辑信息更新所述保持的部分对象。该装置也可以进一步包括结构化的管理信息接收单元,从所述数 据管理装置接收结构化的管理信息,该结构化的管理信息表示源对象中 包括的一组元素数据的层次结构;结构化的管理信息显示单元,显示所 述结构化的管理信息;以及阅览位置指定单元,从用户接收输入以指定 所显示的结构化的管理信息的所述用户期望阅览的数据位置。所述访问 请求信息发送单元参照所述结构化的管理信息识别与所指定数据位置对 应的部分对象,以及发送用于请求所识别的部分对象的阅览权的访问请 求信息。源对象也可以由多个数据管理装置分割为多个来保持,并且结构化 的管理信息还表示源对象中包括的各元素数据的实体位于哪个数据管理 装置中。该装置的所述访问请求信息发送单元参照所述结构化的管理信 息识别保持有被指定为要被阅览的部分对象的数据管理装置,并向所识 别的数据管理装置发送访问请求信息。应该认识到,以上结构元素的任意组合,以及本发明的表现在方 法、装置、系统、记录介质、计算机程序等之间变换的内容作为本发明 方式也是有效的。发明的效果根据本发明,多个用户容易有效地操作从源数据生成的对象。


图l是与前提技术相关的文档处理装置的构成示意图; 图2示出了成为处理对象的XML文档的实施例;图3示例性地示出了将图2所示的XML文档映射为由HTML描述的表;图4(a)示出了用于将图2所示的XML文档映射为图3所示的表的定义 文件的实施例;图4(b)示出了用于将图2所示的XML文档映射为图3所示的表的定义文件的实施例;图5示出了通过图3所示的对应关系将图2所示的成绩管理词描述的 XML文档映射为HTML并显示的屏幕的实施例;图6示出了为使用户创建定义文件而定义文件生成单元提供给用户 的图形用户界面的实施例;图7示出了利用定义文件生成单元创建的屏幕布局的另一个实施例;图8示出了文档处理装置提供的XML文档的编辑屏幕的实施例;图9示出了利用文档处理装置编辑的XML文档的另一实施例;图10示出了显示图9所示文档的屏幕的实施例;图ll (a)示出了文档处理系统的基本构成;图ll (b)示出了文档处理系统的总体框图;图ll (c)示出了文档处理系统的总体框图;图12示出了文档管理单元的细节;图13示出了词汇连接子系统的细节;图14示出了程序调用单元与其它组件之间的关系的细节;图15示出了由程序调用单元载入的应用程序服务的结构细节;图16示出了核心组件的细节;图17示出了文档管理单元的细节;图18示出了撤消框架和撤消命令的细节;图19示出了在文档处理系统中载入文档的操作;图20示出了文档及其表现的实施例;图21示出了模型和控制器的关系;图22示出了插件子系统、词汇连接与连接器的细节;图23示出了VCD文件的例子;图24示出了用于将复合文档载入到文档处理系统中的操作; 图25示出了用于将复合文档载入到文档处理系统中的操作; 图26示出了用于将复合文档载入到文档处理系统中的操作; 图27示出了用于将复合文档载入到文档处理系统中的操作; 图28示出了用于将复合文档载入到文档处理系统中的操作;图29示出了命令流;图30是用于说明本实施例中的数据处理内容的示意图; 图31是用于说明对某部分对象提出多个访问要求时的控制方法的序 列图;图32是数据管理装置的功能框图; 图33是数据处理终端的功能框图;图34是用于说明从源对象生成部分对象的过程的示意图;图35是结构化的管理文件的数据结构图;图36是在数据处理终端中选择要访问的数据时的屏幕图。符号说明20文档处理装置 22主控单元24编辑单元30 DOM单元 32 DOM提供单元34 DOM生成单元36输出单元 40CSS单元42 CSS分析单元44CSS提供单元 46呈现单元50 HTML单元52、 62控制单元 54、 64编辑单元56、 66显示单元60 SVG单元80 VC单元82映射单元84定义文件获取单元86定义文件生成单元3100文档管理装置3110用户4妻口处理单元3120通信单元3130数据处理单元3140数据保存单元3142访问请求接收单元3144部分对象发送单元3146结构化的管理文件发送单元3148编辑信息接收单元3150编辑信息发送单元3152对象处理单元3154访问4又管理单元3156源对象生成单元3158源对象更新单元3160部分对象生成单元3162结构化的管理文件处理单元3166源数据保持单元3168对象保持单元3170访问权信息保持单元3172结构化的管理文件保持单元3200数据处理终端3210用户4矣口处理单元3220通信单元3230数据处理单元3240数据保存单元3242访问请求发送单元3246结构化的管理文件接收单元3250编辑信息接收单元3254访问权管理单元3258第l保持单元3262结构化的管理文件保持单元3244部分对象接收单元 3248编辑信息发送单元 3252部分对象更新单元 3256部分对象保持单元 3260第2保持单元3264访问标记保持单元具体实施方式
(前提技术)图l示出了与前提技术相关的文档处理装置20的结构。文档处理装 置20对结构化的文档进行处理,该文档中的数据被分为具有分级结构的 多个构成元素。在本前提技术中以对作为一种结构化文档的XML文档进 行处理为例来说明。文档处理装置20包括主控单元22、编辑单元24、 DOM (文档对象模块)单元30、 CSS (层叠样式表)单元40、 HTML (超文本标记语言)单元50、 SVG (可缩放矢量图形)单元60以及作为 变换单元一个示例的VC (词汇连接)单元80。在石更件组件方面,这些单 元结构可由任意计算机的CPU、存储器、载入存储器中的程序等来实 现。这里,描述了由它们的协作而实现的功能模块。因此,本领域技术 人员能够理解,这些功能模块可仅通过硬件的方式、仅通过软件的方式 或通过二者相结合的方式等以多种形式来实现。主控单元22提供插件的载入或提供执行命令的框架。编辑单元24 提供了用于编辑XML文档的框架。文档处理装置20中的文档的显示和 编辑功能是通过插件来实现的,而必要的插件是根据所处理的文档类 型、通过主控单元22或编辑单元24来栽入的。主控单元22或编辑单 元24通过参考作为处理对象的XML文档的命名空间,来确定哪个或哪 些词汇描述了待处理的XML文档的内容,并且载入与所确定的词汇对 应的用于显示和编辑的插件,从而执行显示和编辑。例如,在文档处理 装置20中,对HTML文档进行显示和编辑的HTML单元50、以及对 SVG文档进4于显示和编辑的SVG单元60等^皮实现为用于各词汇(标签集)的显示系统和编辑系统的插件,以分别在对HTML文档进行编辑时 载入HTML单元50,和在对SVG文档进行编辑时载入SVG单元60。 如以下将描述的那样,在要对既包括HTML又包括SVG组件的复合文 档进行处理时,既载入HTML单元50又载入SVG单元60。通过实现以上结构,由于用户能够仅选择并安装必要的功能,然后 可以增加或删除适当的功能,因此,能够有效利用记录媒介的存储区域 (例如硬盘),并且在执行程序的时候还能够避免存储器的浪费。此 外,由于这一结构有利于性能扩展,因此开发者自己能够以插件的形式 处理新的词汇,因而能够促进开发过程;用户也能够通过增加插件而以 较低成本容易地增加功能。编辑单元24通过用户接口从用户处接收编辑指令的事件。编辑单元 24将该事件通知适当的插件等,并对包括事件的重做(redo)以及撤消 (undo)等的处理进行控制。DOM单元30包括DOM提供单元32、 DOM生成单元34以及输出 单元36。 DOM单元30实现了与文档对象模型(DOM)相符的功能, 所述文档对象模型被定义以提供用于处理XML文档形式的数据的访问 方法。DOM提供单元32是满足由编辑单元24定义的接口的DOM的实 现。DOM生成单元34从XML文档创建DOM树。如以下将描述的那 样,当通过VC单元80将待处理的XML文档映射为其它词汇时,创建 与映射源中的XML文档相对应的源树,以及与映射目的中的XML文档 相对应的目的树。例如,在编辑结束时,输出单元36输出作为XML文 档的DOM树。CSS单元40提供与CSS相符的显示功能,并包括CSS分析单元42、 CSS提供单元44以及呈现单元46。 CSS分析单元42具有用于分析CSS语法 的分析功能。CSS提供单元44是CSS对象的实现,并对DOM树执行CSS 的层叠处理。呈现单元46是CSS的呈现引擎,并用来显示利用CSS设置 的以诸如HTML等的词汇描述的文档。HTML单元50对以HTML描述的文档进行显示或编辑。SVG单元 60对以SVG描述的文档进4亍显示或编辑。这些显示/编辑系统以插件的 形式实现,各个系统包括对文档进行显示的显示单元(在本文中还称为"画布(Canvas) ) "56、 66,发送和接收包括编辑命令的事件的控制单 元(在本文中还称为"Editlet") 52、 62,以及在接收到编辑命令时对 DOM进行编辑的编辑单元(在本文中还称为"区(zone) ) "54、 64。在 控制单元52或62从外部源接收到用于DOM树的编辑命令时,编辑单 元54或64 <务改DOM树,而显示单元56或66更新显示。这些单元具 有与被称作MVC (Model-View-Controllers,模型-视图-控制器)的框 架相类似的结构,通常,显示单元56及66对应于 见图(View)",控 制单元52及62对应于"控制器(Controller),,,而编辑单元54及64和 DOM实体对应于"模型(Model)"。在本前提技术的文档处理装置20 中,不仅能够以树型视图显示格式来编辑XML文档,而且能够根据相 应的词汇来完成编辑。例如,HTML单元50提供能够用来以一种类似 于Word处理器的方法对HTML文档进行编辑的用户界面,而SVG单 元60也提供了能够用于以一种类似于图像绘制工具的方法对SVG文档 进行编辑的用户界面。
VC单元80包括映射单元82、定义文件获取单元84以及定义文件 生成单元86。 VC单元80能够将以某词汇描述的文档映射为另一给定词 汇,从而提供了一种能够通过与被映射的词汇相对应的显示或编辑插件 来显示或编辑文档的框架。在本前提技术中,该功能被称为VC
(Vocabulary Connection,词汇连接)。定义文件获取单元84获取描述 了映射定义的脚本文件。该定义文件逐个节点地描述了节点间的对应
(连接)。此时,可规定各节点的元素值或属性值是否可以编辑。也可 描述使用了节点的元素值或属性值的运算表达式。这些功能将在稍后进 行描述。映射单元82使得DOM生成单元34通过参考VC定义文件获 取单元84已经获取的脚本文件来创建目的树,以管理源树与目的树之 间的对应关系。定义文件生成单元86为用户提供图形用户界面,以创 建定义文件。
VC单元80对源树与目的树之间的连接进行监控。当VC单元80通过 由负责显示的插件提供的用户接口从用户处接收编辑指令时,它首先修 改源树的相关节点。因此,DOM单元30将发出指示源树已经被修改的变 化事件。然后,VC单元80接收该变化事件,并修改目的树中对应于被修改的节点的节点,以使得目的树与源树的修改同步。当显示/编辑目的树
的插件(例如HTML单元50)接收了指示目的树已经被修改的变化事件 时,该插件通过参考被修改的目的树而对显示进行更新。通过执行将词 汇转换为另 一主要词汇的上述结构,即使是以少数用户使用的局部词汇 来描述文档,也能够显示该文档,并为其提供编辑环境。
以下对文档处理装置20显示或编辑文档的操作进行描述。当文档 处理装置20载入待处理的文档时,DOM生成单元34从XML文档创建 DOM树。主控单元22或编辑单元24通过参考纟寺处理的XML文档的命 名空间来对描述XML文档的词汇进行判别。如果与词汇相对应的插件 安装在文档处理装置20中,则该插件被载入以显示/编辑文档。另一方 面,如果插件并未安装在其中,则进行检查以确认是否存在映射的定义 文件。如果存在定义文件,则定义文件获取单元84获取该定义文件, 并根据定义创建目的树,以使得能够通过与要被映射的词汇相对应的插 件来显示/编辑文档。如果该文档是包含多个词汇的复合文档,如后面所
不存在定义文件,则显示文档的源或树型结构,并在显示屏中进行编 辑。
图2示出了作为处理对象的XML文档的例子。该XML文档用于管理 学生的成绩数据。作为XML文档的上部节点的构成元素"成績"包括在 "成績"下方为各个学生设置的多个元素"生徒"。构成元素"生徒"具有属 性值"名前",以及子元素"国語,,(日语)、"数学"、"理科,,以及"社会,, (社会科学)。属性值"名前"存储学生的姓名。构成元素"国語"、"数 学"、"理科"和"社会"分别存储日语、数学、自然科学和社会科学的成 绩。例如,姓名为"A"的学生的成绩是日语为"90"、数学为"50"、自然 科学为"75"以及社会科学为"60"。下文中,该文档中使用的词汇(标签 集)被称作"成绩管理词汇"。
由于本前提技术的文档处理装置20不具有与成绩管理词汇的显示和/ 或编辑相对应的插件,因此,将使用以上描述的VC功能,而不使用源显 示和树显示的其它显示方法来显示该文档。也就是说,通过准备定义文 件,使得成绩管理词汇可映射为已具有插件的另一词汇,例如HTML或SVG。下面将要进行的说明是在假设已经具备了定义文件的情况下进行 的,不过对于用户本身用以创建定义文件所必需的用户界面将在后面描 述。图3示出了将图2中所示的XML文档映射为以HTML描述的表的例 子。在图3所示的例子中,使以成绩管理词汇描述的"生徒"节点与以 HTML描述的表("TABLE"节点)的行("TR"节点)相对应。各行的第 一列与属性值"名前"相对应,第二列与"国語"节点的元素值相对应,第 三列与"数学,,节点的元素值相对应,第四列与"理科,,节点的元素值相对 应,而第五列与"社会"节点的元素值相对应。因此,图2所示的XML文 档能以HTML的列表格式来显示。此外,这些属性值和元素值被指定为 能够编辑,以使得用户能够使用HTML单元50的编辑功能在利用HTML 显示的屏幕上对这些值进行编辑。在第六列中,指定了用来计算日语、 数学、自然科学以及社会科学的分数的加权平均的运算表达式,并显示 每个学生的分数的平均值。以这种方式,通过在定义文件中指定运算表 达式来完成更灵活的显示,从而提高用户在进行编辑时的便利性。另 外,将对第六列的编辑指定为不允许,以使得不能单独对平均值本身进 行编辑。因此,在映射定义中,能够指定可编辑或不能编辑,以避免用 户可能的错误操作。图4(a)和4(b)表示定义文件的例子,以将图2所示的XML文档映射为 图3所示的表。该定义文件通过被定义用于和定义文件一起使用的脚本 语言来描述。在图4(a)和4(b)所示的例子中,"生徒O追加"和"生徒O削 除"被定义为命令,并分别涉及将节点"生徒"插入源树中的操作以及将节 点"生徒"从源树中删除的操作。该定义文件以模板的形式描述了诸如"名 前"和"国語"的标题显示于表的第一行中,而节点"生徒"的内容显示于第 二行及其随后的行中。在显示节点"生徒"内容的模板中,包含"text-of, 的项表示允许进行编辑,而包含"value-of,的项表示不允许进行编辑。在 这些显示了节点"生徒"内容的行中,在第六列中描述了运算表达式"(src: 国語+ src:数学+ src:理科+ src:社会)div 4"。这意味着显示学生成 绩的平均值。图5示出了将图2所示的由成绩管理词汇描述的XML文档利用图3所示的对应关系映射为HTML以4吏其显示在显示屏上时,显示屏的一个例 子。在表90各行中从左至右显示的是各学生的姓名、日语成绩、数学成 绩、自然科学成绩、社会科学成绩及其平均值。用户能够在该屏幕上对 XML文档进行编辑。例如,当第二行第三列中的值变为"70"时,源树中 与该节点相对应的元素值(亦即学生"B"的数学成绩)变为"70"。此时, 为了使目的树与源树一致,目的树的相应部分因此而改变,从而使得 HTML单元50能够根据改变的目的树来对显示进行更新。因此,学生"B" 的数学成绩变为"70",而平均值相应地变为"55"。在图5所示的屏幕上,例如"生徒O追加"和"生徒O削除"的命令被显 示为菜单,如图4(a)、 (b)所示的定义文件中所定义的那样。当用户从这 些命令中选择一个命令时,节点"生徒"增加至源树中或从源树中删除。 以这种方式,利用根据本前提技术的文档处理装置20,不仅能够对分级 结构末端中的组件的元素值进行编辑,而且能够对该分级结构进行编 辑。具有上述树型结构的编辑功能能够以命令的形式显现给用户。此 外,增加或删除表中的行的命令可例如与增加或删除节点"生徒,,的操作 相关。嵌入其它词汇中的命令可显现给用户。该表可用作输入模板,以 使得对于新学生的成绩数据能够以填空的方式来增加。如上所述,在使 用HTML单元50的显示/编辑功能的同时,以成绩管理词汇描述的文档可 通过VC功能来编辑。图6示出了由定义文件生成单元86显现给用户的图形用户界面的例 子,以使用户能够创建定义文件。待映射的XML文档在屏幕的左侧区域 91显示为树。被映射成的XML文档的屏幕布局显示在屏幕的右侧区域92 中。该屏幕布局可通过HTML单元50来编辑,用户在屏幕的右侧区域92 中确定并创建用于对文档进行显示的屏幕布局。然后,例如,使用诸如 鼠标等的指示设备将屏幕的左侧区域91中显示的XML文档的待映射的节 点拖动并放置到屏幕的左侧区域91中的HTML屏幕布局中,以指定映射 源处的节点与映射目的处的节点之间的连接。例如,当作为元素"生徒" 的子元素的"数学"被放置到HTML屏幕上的表90中第一行与第三列的交 叉处时,"数学"节点与第三列中的"TD,,节点之间建立连接。各节点均 如此被指定为可编辑或者不可编辑。此外,可在显示屏中嵌入运算表达式。当完成屏幕编辑时,定义文件生成单元86创建描述屏幕布局与节点 之间的连接的定义文件。已经开发出了能够处理主要词汇(例如XHTML (可扩展超文本标 记语言)、MathML (数学标记语言)以及SVG (可缩放矢量图形)) 的浏览器或编辑器。但是,不可能开发出适于以自创词汇描述的所有文 档(例如图2中所示的文档)的浏览器或编辑器。然而,如果如上所述 创建了用于映射为其它词汇的定义文件,那么以自创词汇描述的文档就 能够使用VC功能来显示和/或编辑,而无需不断开发新的浏览器或编辑 器。图7示出了由定义文件生成单元86创建的屏幕布局的另一例子。在 图7所示的例子中,在屏幕上产生表90和圓形图93用于显示以成绩管理 词汇描述的XML文档。圓形图93以SVG描述。如以下将讨论的那样,由 于根据本前提技术的文档处理装置20能够对在单个XML文档内以多个词 汇描述的复合文档进行处理,因此,如该例子所示,以HTML描述的表 90以及以SVG描述的圆形图93能够显示在同一屏幕上。图8示出了用于由文档处理装置20处理的XML文档的编辑屏幕的一 例。在图8所示的例子中,单个屏幕被分割为多个区域,而待处理的 XML文档在各个区域以多种不同显示格式显示。该文档的源在区域94中 显示,该文档的树结构在区域95中显示,而以图5所示的HTML描述的表 在区域96中显示。该文档在这些区域中的任意区域均可被编辑,当用户 对这些区域中的任意区域的内容进行编辑时,源树将被相应修改,从而负责各屏幕显示的插件将更新屏幕,以反映源树的变更。具体而言,负 责显示对应编辑屏幕的插件的显示单元被预先注册为变化事件的监听 器,所述变化事件提供源树中发生了改变的通知。当源树被任意插件或 VC单元80修改时,显示编辑屏幕的所有显示单元接收发出的一个或多个 变化事件,并从而更新屏幕。此时,如果插件正在通过VC功能进行显 示,则VC单元80根据对源树的修改来修改目的树。之后,插件的显示单 元通过参考上述经过修改的目的树来对屏幕进行修改。例如,当通过专用插件来实现源显示和树型视图显示时,源显示插 件和树显示插件通过直接参考源树而不是利用目的树来实现它们的显示。在这种情况下,当在屏幕的任何区域中完成编辑时,源显示插件和树显示插件通过参考修改后的源树来更新屏幕。同样,负责显示区域96 的HTML单元50通过参考已根据对源树的修改而做了修改的目的树来更 新屏幕。源显示和树显示也可通过使用VC功能而实现。也就是说,例如,如 果HTMI^皮用于源和树型结构的布局,则XML文档可映射为HTML以通 过HTML单元50来显示。在这种情况下,将创建具有源格式、树格式、 表格式的三个目的树。如果在屏幕上的三个区域的任意一个中进行编 辑,则VC单元80对源树进行修改,并在之后分别对源格式、树格式、表 格式的三个目的树进行修改。然后,HTML单元50通过参考这些目的树 来更新屏幕的三个区域。以这种方式,在单个屏幕上以多种显示格式显示文档,从而提高了 用户的便利性。例如,用户能够利用表90等以视觉上易于理解的格式显 示和编辑文档,同时通过源显示或树显示来理解文档的分级结构。在上 述实施例中,单个屏幕被划分为多个显示格式,它们被同时显示。但 是,也可在单个屏幕上显示单个显示格式,从而可通过用户指令来切换 显示格式。在这种情况下,主控单元22从用户处接收用于切换显示格式 的请求,并随后命令各插件进行显示切换。图9示出了由文档处理装置20编辑的XML文档的另一例。在图9所示 的XML文档中,XHTML文档被嵌入SVG文档的"foreignObject"标签中, 而该XHTML文档包含以MathML描述的公式。在这种情况下,编辑单元 24通过参考命名空间而将描绘任务分配或指派给适当的显示系统。在图 9所示的实施例中,编辑单元24首先〗吏SVG单元60描绘矩形,然后偵_ HTML单元50描绘XHTML文档。此外,编辑单元24使MathML单元(未 示出)描绘公式。以这种方式,包含多个词汇的复合文档被适当地显 示。图10示出了显示结果。在对文档进行编辑期间,待显示的菜单可根据光标(* \ !i少) 的位置被切换。也就是说,当光标位于显示SVG文档的区域中时,显示 SVG单元60提供的菜单、或用于映射SVG文档的定义文件中定义的命 令。当光标位于显示XHTML文档的区域中时,显示HTML单元50提供的菜单、或用于映射XHTML文档的定义文件中定义的命令。因此,可根 据编辑位置提供适当的用户界面。如果在复合文档中不存在与某词汇相符的适当插件或映射定义,则 以该词汇描述的部分可以源或树格式显示。在传统实践中,当要打开在 某个文档中嵌有其它文档的复合文档时,如果没有安装能够显示该嵌入 文档的应用程序,则它们的内容不能显示。但是,根据本前提技术,即 使不存在用于显示的应用程序,也可以将由文本数据组成的XML文档显 示为源或树格式,从而能够确定其内容。这是基于文本的XML文档或类 4以文档的一个特征。以基于文本的语言来描述数据的另一个有益方面例如在于,在同一 文档中以其它词汇描述的部分的数据可被该复合文档中以某个词汇描述 的另一文档所参考。此外,当在该文档中进行搜索时,嵌入SVG等图片 中的字符串也可作为被搜索的对象。在以某个词汇描述的文档中,可使用其它词汇的标签。虽然该XML 文档通常并不有效,但只要它结构良好(well-formed),就可作为有效 的XML文档而被处理。在这种情况下,被插入的属于其它词汇的标签可 使用定义文件来进行映射。例如,在XHTML文档中,可使用诸如"重要" 和"最重要"的标签以通过强调的方式来显示这些标签周围的部分,或者 可将这些标签按重要性的顺序来排序以进行相应显示。当用户在图IO所示的编辑屏幕上对文档进行编辑时,负责对被编辑 的部分进行处理的插件或VC单元80对源树进行修改。能够为源树中的各 个节点注册对于变化事件的监听器。通常,与各个节点所属的词汇相符 的插件的显示单元或VC单元80被注册为监听器。当源树被修改时, DOM提供单元32从被修改的节点向较高层次探索。如果存在注册的监听 器,则DOM提供单元32向该监听器发出变化事件。例如,参考如图9中 所示的文档,如果位于〈html〉节点下方的节点被修改,那么该变化事件 被通报给被注册为<html>节点的监听器的HTML单元50。在同 一 时刻, 该变化事件被通报给被注册为位于<html>节点上方的<svg>节点中的监 听器的SVG单元60。此时,HTML单元50通过参考被修改的源树而更新 显示。由于属于SVG单元60本身的词汇的节点并未被修改,因此SVG单元60可忽视该变化事件。根据编辑的内容,可以随着HTML单元50对显示进行的修改来改变 总体布局。在这种情况下,对于各插件的各个显示区域的布局将由管理 屏幕布局的组件(例如,负责显示最高节点的插件)来更新。例如,当 由HTML单元50显示的区域较之以前变大时,HTML单元50首先描绘 HTML单元50本身所负责的区域,然后确定显示区域的大小。然后,显 示区域的大小被通报给管理屏幕布局的组件,以请求对布局进行更新。 负责屏幕布局的组件一收到该通知便为各个插件重新布置显示区域。因 此,被编辑的部分的显示被适当更新,且总体屏幕布局被更新。接着,对实现前提技术的文档处理装置20的功能构成进一步进行详 细说明。在下面的说明中,使用英文名称对类名等进行描述。A.概要由于因特网的出现,由用户处理、管理的文档的数量大致是成指数 函数形式在增加。形成因特网核心的Web (World Wide Web:万维网) 成了接受这些文档数据的大容器。除了文档以外,Web还提供用于这些 文档的信息检索系统。这些文档通常是由标记语言描述的。作为标记语 言的简单且常用的例子,HTML (HyperText Markup Language:超文本 标记语言)是其中的一个。这样的文档还包括有指向记录在Web的其它 位置的其他文档的链4妻。XML ( extensible Markup Language:可扩展标 记语言)是更高度普及的标记语言。用于访问和阅览Web文档的筒单的 浏览器是由像Java (注册商标)那样的面向对象的编程语言开发的。由标记语言描述的文档通常在浏览器或者其他应用程序中以树数据 结构的形式来表现。该结构相当于对文档进行语法分析结果的树。DOM (Document Object Model:文档目标模型)是用于表述和操作文档的、 众所周知的基于树的数据结构模型。DOM提供表述含有HTML或XML文 档等的对象集合。DOM包括两个基本组件,即表述文档内的组件的对象 是如何连接在一起的标准模型,以及用于对这些对象进行访问或者操作 的标准4妄口。应用程序的开发者能够支持DOM作为与其自身的数据结构或者API (Application Program Interface:应用禾呈序4妄口)的接口。另一方面,创建文档的应用程序的开发者可以使用DOM的标准接口而不是其自身的 API的特定接口。因此,DOM提供标准接口的能力有效地促进了在各种 环境下对文档进行共享,特别是用在Web上。DOM定义有几个版本,根 据不同的编程环境及应用程序来使用。DOM树是基于对应DOM的内容的文档的分级表述。DOM树包括 "根"及由根生出的一个以上的"节点"。根有时表述全体文档。中间节点 可表述元素,诸如表及表中的行和列。DOM树的"叶,,通常表述数据,例 如不可进一步分解的文本或者图像。DOM树的各个节点也可以与描述字 形、大小、颜色、索引等由节点所表示的元素的参数的属性关联对应。虽然HTML是一般的用于制作文档所使用的语言,但它是用于格式 和布局的语言而不是用于描述数据的语言。表现HTML文档的DOM树的 节点是预先定义作为HTML的格式化标签的元素。通常,由于HTML不 提供用于数据的详述或者对数据添标签/添标注的功能,因而对HTML文 档中的数据的查询格式化在很多场合是困难的。网络设计者们的目标是,能够把Web上的文档通过软件应用程序进 行查询或者处理。与显示方法无关,只要是分级结构化的语言,可以同 样查询处理。-渚如XML (extensible Markup Language)这样的标记i吾言 可以提供这类特征。众所周知,与HTML相反,XML的优点是文档的设计者可以使用可 自由定义的"标签"对数据元素进行标注。这样的数据元素可以分级进行 结构化。而且,XML文档可以包含文档类型定义,它描述文档内4吏用的 标签及其相互关系的"语法"。为了定义结构化的XML文档的显示方法, 使用CSS (Cascading Style Sheet:层叠式样式表)或者XSL (XML Style Language:可扩展标记语言样式语言)。关于DOM、 HTML、 XML、 CSS、 XSL及其有关语言特征的附加信息也可以从Web获得。(例如, http:〃www. w3.org/TR/)Xpath为了指定XML文档部分的位置,提供共同的语法及语义。作 为功能性的示例,是对应于XML文档的DOM树的遍历(移动)。这提 供了用于操作XML文档的各种表述所关联的字符串、数字及布尔型字符 的基本功能。Xpath不是XML文档表现的语法(例如作为文本来看时是第几行或者是第几字符这样的语法),而是在DOM树等抽象的、逻辑的 结构中操作。通过使用Xpath,例如,可以通过XML文档的DOM树内的 分级结构来定位。除了用于寻址的用途之外,XPath还被设计用来测试 DOM树中的节点是否与某个模式相匹配。涉及XPath的细节可在 http:〃www.w3.org/TR/XPath中找到。希望有一种有效的文档处理系统,能够利用XML的已知的优点和特 征,处理由标记语言(例如XML)描述的文档,并能够提供一种用于创 建和修改文档的友好的用户界面。在此说明的系统的构成中的 一 些将通过使用被称作MVC ( Model-View-Controller: 模型-视图-控制器)即众所周知的GUI (Graphical User Interface:图形用户界面)范例进行说明。MVC范例将应用程序或应用 程序的接口的一部分分解为三部分,即,模型、视图和控制器。最初开 发MVC是为了将传统的输入、处理和输出任务分配到GUI区域。输入->处理->输出控制器-〉模型- >视图根据MVC范例,外界的建模、对用户的视觉反馈以及用户输入通过 模型(M)、视图(V)以及控制器(C)对象来分离从而进行处理。控 制器操作以解释诸如用户的鼠标和键盘输入的输入,并将这些用户动作 映射为发送至模型和/或视图的命令,以实现适当的改变。模型发挥作用 以管理一个以上的数据元素、响应对其状态的询问、并对改变状态的指 示作出响应。^L图操作以管理显示的矩形区域,并有通过图形和文本的 组合将数据显现给用户的功能。B.文档处理系统的总配置文档处理系统的实施例将结合图11 -29进行清楚说明。 图ll (a)图示了包括将在下面描述的能够提供文档处理系统的、根 据现有技术的基础功能的配置结构。装置10包括通过通信路径13连接到 存储器12的CPU形式或微处理器等形式的处理器11。存储器12可为当前 或将来能够使用的任意ROM和/或RAM形式。通信路径13作为典型的总 线而设置。对于鼠标、键盘和语音识别系统等用户输入装置14以及显示装置15 (或者其他用户接口 )的输入输出接口16也连接在用于处理器11 和存储器12通信的总线上。该结构可以是独立的形式,也可以是由多个 终端以及一台以上的月良务器连接的网络化的形式,也可以由公知的任何 方式来构成。本发明并不受这些组件的配置、它们的集中式或分布式体 系结构或者多种组件的通信方式的限制。此外,本系统以及在此讨论的实施例将作为包括提供各种功能性的 若干组件以及子组件的例子来讨论。为了提供期望的功能,这些组件以 及子组件可以是硬件和專欠件的组合,也可以仅由石更件或者4又由软件来实 现。而且,硬件、软件及其组合可以由通用计算装置、专用硬件或者它 们的组合来实现。因此,组件或者子组件的构成包括执行用于提供组件 或者子组件功能的专用软件的通用/专用的计算装置。图ll (b)示出了文档处理系统一个例子的总体方框图。文档在这 种文档处理系统中净皮创建和编辑。这些文档(例如XML等)能够以具有 标记语言特征的任何语言来表述。同样,为方便起见,已经创建了用于 特定的组件和子组件的术语和标题。但是,这些不应被视作对本文公开 的一般教导范围的限制。文档处理系统可被视为具有两个基本构成。 一个构成是"执行环 境"IOI,它是文档处理系统运行的环境。例如,执行环境在对文档进行 处理中和管理中不仅支持用户,而且支持系统,提供基本效用和功能。第二构成是"应用程序"102,它由在执行环境中运行的应用程序构成。这 些应用程序包括文档本身及其各种表述。 1.执行环境执行环境101的关键组件是程序调用器(Programlnvoker,即程序启 动单元)103。程序调用器103是用于启动文档处理系统而^L访问的基本 程序。例如,当用户登录并启动文档处理系统时,程序调用器103被执 行。程序调用器103例如可以读取并执行作为插件增加至文档处理系统 的功能、启动并运行应用程序、以及读取与文档相关的属性。程序调用 器103的功能并不限于此。当用户希望启动计划在执行环境中运行的应用程序时,程序调用器 103找到并启动该应用禾呈序,然后执4亍该应用程序。在程序调用器103上联接有插件子系统104 、命令子系统105以及资 源模块109等若干组件。这些构成将随后进行更详细描述。a) 插件子系统插件子系统104能够高度灵活和有效地向文档处理系统增加功能。 插件子系统104也可以用来^f奮改和去除文档处理系统中存在的功能。此 外,可使用插件子系统增加或修改多种功能。例如,可以增加编辑功能 (Editlet:编辑单元)以起到支持在屏幕上呈现文档的作用。编辑插件 也支持对增加至系统的词汇进行编辑。插件子系统104包括服务代理(ServiceBroker:服务中介单元) 1041。服务代理1041通过管理增加至文档处理系统的插件,作为增加至 文档处理系统的服务的中介。期望的每个功能以月良务(Service) 1042的形式增加至系统。服务1042 的可用类型包括但不限于应用程序(Application)服务、区工厂 (ZoneFactory,即区生成单元)服务、Editlet (编辑单元)服务、命令工 厂 (CommandFactory : 命令生成单元)服务、连接xpath (ConnectXPath: XPath管理单元)服务、CSS计算(CSSComputation: CSS计算单元)服务等。这些服务及其与系统其余部分的关系将随后详 细描述,以更好地理解文档处理系统。插件和服务之间的关系如下所述。插件是可包括一 个以上的服务提 供器(ServiceProvider:服务提供单元)的单元。各个服务提供器具有 与之相关服务的一个以上的类。例如,通过使用具有适当软件应用程序 的单个插件,可将一个以上的服务增加至系统,从而可向系统增加相应 的功能。b) 命令子系统命令子系统105被用来执行与文档的处理相关的命令形式的指令。 用户可通过执行一系列指令而执行对文档的操作。例如,通过发出命令 形式的指令,用户对文档处理系统中的XML文档相对应的XML的DOM 树编辑来处理XML文档。这些命令可利用键盘击^:、鼠标点击或其它有 效的用户接口动作来输入。有时,也可通过一个命令来执行一个以上的指令。在这种情况下,这些指令被封装(包含)成一个命令并连续执 行。例如,用户希望将错误词语替换为正确词语。在这种情况下,第一 个命令可用以在文档中找寻错误词语,第二个命令可用以删除该错误词 语,第三个命令可用以输入正确词语。这三个命令可被包装成一个命 令。命令可具有相关功能,例如是下面将要详细记述的"撤消"功能。这 些功能可分配给用来创建对象所使用的若干个基类。命令子系统105的关键组件是命令调用器(Commandlnvoker,即命 令启动单元)1051,命令调用器1051可操作以有选择性地提供并执行命 令。虽然图ll (b)中仅示出了一个命令调用器,但也可使用一个以上 的命令调用器并可同时执行一个以上的命令。命令调用器1051维护执行 命令所需的功能和类。在操作中,要执行的命令1052被置于队列1053 中。命令调用器创建连续执行的命令线程。如果在命令调用器中没有正 在执行的命令,则由命令调用器1051执行待执行的命令1052。如果命令 调用器正在执行命令,则新的命令被置于命令队列1053的末尾。不过, 对于各命令调用器1051而言, 一次仅执行一个命令。如果指定的命令执 行失败,则命令调用器1051将执行异常处理。可由命令调用器(Commandlnvoker) 1051执行的命令的类型包括但 不限于可撤消命令(UndoableCommand)1054 、 异步命令 (AsynchronousCommand) 1055以及词汇连4妄命令(VCCommand)1056 。可 撤消命令1054是那些如果用户希望就能够撤销其结果的命令。可撤消命 令的示例为剪切、复制、插入文本等。在操作中,当用户选择文档的 一部分并对该部分应用剪切命令时,如果需要,通过使用可撤消命令, 可使被剪切的部分恢复至其未被剪切的状态。词汇连接命令1056被载入词汇连接描述符(Vocabulary Connection Descriptor: VCD)脚本文件中。词汇连接命令1056是能够由程序员定义 的用户指定命令。命令可以是例如用于增加XML片段、删除XML片段、 以及设置属性等更抽象命令的组合。这些命令特别涉及对文档进行编 辑。异步命令1055是用于文档的载入或保存等基于系统的命令,与可撤消命令或词汇连接命令不同,是异步执行。由于异步命令不是可撤消命 令,所以其执行的结果不能取消。 C)资源资源109是向各种类提供某些功能的对象。例如,串资源、图标和 缺省键绑定是系统中使用的资源的例子。2.应用程序组件应用程序组件102作为文档处理系统的第二个主要特征,在执行环 境101中运行。应用程序组件102包括实际文档和系统内的各种逻辑和物 理表述。应用程序组件102还包括用来管理文档所使用的系统组件。应 用程序组件102进一步包括用户应用程序(UserApplication ) 106、应用 程序核心108、用户界面107以及核心组件(CoreComponent) 110。a) 用户应用程序用户应用程序106连同程序调用器103—起被载入到系统中。用户应 用程序106是将文档、文档的各种表述以及与文档进行交互所需的用户 界面结合在一起的"粘合剂"。例如,用户可能希望创建作为项目的一 部分的一套文档。载入这些文档后,将创建用于文档的适当表述。用户 界面功能作为用户应用程序106的一部分被追加。换言之,用户应用程 序106既保持文档的表述也保持文档的各种形式,这些文档的表述使用 户能够与形成项目的一部分的文档进行交互。 一旦创建了用户应用程序 106,每当用户希望与形成项目 一部分的文档进行交互时,用户就能够 简单地将用户应用程序106载入到执行环境中。b) 核心组件核心组件(CoreComponent) 110提供在多个窗格(Pane)之间共享 文档的一种方法。如后述的那样,窗格显示DOM树,并处理屏幕的物理 布局。例如,物理屏幕包括在屏幕内的多个描述信息的片断的窗格。实 际上,由用户在屏幕上看到的文档可在一个或多个窗格中显示。此外, 两个不同的文档可以出现在屏幕上的两个不同窗格中。如图11(C)所示,屏幕的物理布局也具有树型形式。因此,窗格可被实现为根窗格(RootPane) 1084,也可以为子窗格(SubPane)1085。根 窗格1084是位于窗格树的根部的窗格,而子窗格1085是除了根窗格1084 之外的任何窗格。核心组件110还提供字体,并充当工具包等用于文档的多个功能性 操作的源。由核心组件110执行的任务的 一个示例是在多个窗格之间移 动鼠标光标。作为被执行的任务的另一个示例,标记某窗格中文档的一 部分,并将其复制到包含不同文档的另一窗格上。c) 应用程序核心如上所述,应用程序组件102由系统处理和管理的文档组成。其中 包括系统内的文档的多种逻辑和物理表述。应用程序核心108是应用程 序组件102的组件。其功能是保持实际文档及其内的所有数据。应用程 序核心108包括文档管理器(DocumentManager:文档管理单元)1081和 文档(Document) 1082本身。文档管理器1081的多个方面将在随后详细描述。文档管理器1081管 理文档1082。文档管理器1081也连接至一艮窗格1084、子窗格1085、剪贴 板(ClipBoard)实用程序1087以及快照(SnapShot)实用程序1088。剪 贴板实用程序1087提供了保持用户决定增加至剪贴板的部分文档的方 法。例如,用户可能希望剪切文档的一部分,并将其保存到新的文档 上,用于稍后查看。在这种情况下,剪切的部分被增加至剪贴板。接着,也对快照实用程序1088进行说明。快照实用程序1088在应用 程序从一个状态变为另一状态时,能够记住应用程序的当前状态。d) 用户界面应用程序组件102的另 一组件是用户界面107,其为用户提供一种与 系统进行物理交互的方式。例如,用户界面用于用户上载、删除、编辑 和管理文档。用户界面包括框架(Frame) 1071、菜单栏(MenuBar) 1072、状态栏(StatusBar) 1073以及URL栏(URLBar) 1074。如通常公知的那样,框架1071被视为物理屏幕的活动区域。菜单栏1072是包含有为用户提供选项菜单的屏幕区域。状态栏1073是显示应用 程序的执行状态的屏幕区域。URL栏1074提供输入用于在互联网上定位 的URL地址的区域。C.文档管理和相关的数据结构图12示出了文档管理器1081的细节。其中包括用于在文档处理系统 内表述文档的数据结构和组件。为了更好的理解,在这部分描述的组件 将利用模型-视图-控制器(MVC)表述范例来进行说明。文档管理器1081包括文档容器(DocumentContainer ) 203,文档容 器203保持并容纳文档处理系统中的所有文档。联接至文档管理器1081 的工具包201提供了由文档管理器1081使用的各种工具。例如,DOM服 务(DOMService)是由工具包201提供的能够提供创建、维护和管理与 文档相对应的DOM所需的所有功能的工具。作为工具包201提供的另一 工具的IO管理器(IOManager:输入输出管理部)分别管理向系统的输 入和来自系统的输出。同样地,流处理器(StreamHandler)是一种处理 将比特流形式的文档上载的工具。这些工具形成了工具包201的组件, 不过并未在图中特别示出和分配附图标记。根据MVC范例的表述,模型(M)包括文档的DOM树模型202。如 上所述,所有文档均在文档处理系统中净皮表述为DOM树。此外,文档也 形成文档容器203的一部分。1. DOM模型和区表述文档的DOM树是具有节点(Node) 2021的树。作为DOM树的 子集的区(Zone) 209包括对应于DOM树内部的一个或多个节点的区 域。例如,可能仅有文档的一部分在屏幕上显现,文档可见的这一部分 可使用"区"209来表述。利用被称作区工厂(ZoneFactory:区生成单 元)205的插件来创建、操作和处理区。虽然区表述DOM的一部分,但 它也可使用一个以上的"命名空间"。如本领域中公知的那样,命名空间 是名称的汇集或集合,这些名称在该命名空间中是唯一的。换言之,一 个命名空间中不存在相同的名称。2."方面"及其与区的关系方面(Facet) 2022是MVC范例的才莫型(M)部分内的另一组件。它 被用来编辑区中的节点。"方面"2022使用不会影响区本身的内容的可执 行过程(程序)来组织对于DOM的访问。如下面将说明的那样,这些过 程执行与节点相关的重要且有用的操作。各个节点具有相应的"方面"。通过利用"方面"执行操作来代替直接 对DOM中的节点进行操作,DOM的完整性得以确保。否则,如果直接 对节点执行操作,那么几个插件可能同时对DOM进行改变,从而造成结 果的前后矛盾。虽然W3 C构建的DOM标准定义了用于对节点进行操作的标准接口 , 实际上,由于对每个词汇或每个节点有特定的操作,优选将这些操作作 为API来准备。文档处理系统以"方面"的形式向各节点提供了特有的 API,并附加到各节点上。据此,可以提供符合DOM标准的有用的 API。此外,通过在标准DOM上后来增加特定的API而不是为每个词汇 实现特定的DOM,可对多种词汇进行统一处理,并且可以适当地处理由 多种词汇任意组合的混合文档。词汇是属于命名空间的标签(例如XML标签)的集合。如上所述, 命名空间具有唯一的名称(在此为标签)集。词汇表现为表述XML文档 的DOM树的子树。这种子树包括区(Zone)。在特定实施例中,标签集 的边界由区来限定。区209是利用被称为"区工厂"205的服务创建的。如 上所述,区209是对表述文档的DOM树的一部分的内部表述。为了提供 对该文档的上述部分的访问,需要逻辑表述。这种逻辑表述通知计算机 如何在屏幕上对文档进行逻辑显示。画布(Canvas) 210是一种可操作为 提供与区相对应的逻辑布局的服务。另一方面,窗才各211是与由画布210提供的与逻辑布局相对应的物理 屏幕布局。实际上,用户只是看以字符和图片形式呈现在显示屏上的文 档。因此,文档必须通过用于在屏幕上描绘字符和图片的处理来呈现在 屏幕上。根据由窗格211提供的物理布局,文档由画布210呈现在屏幕 上。与区209相对应的画布210是利用Editlet 206来创建的。文档的DOM 是利用Editlet 206和画布210来编辑的。为了维护原始文档的完整性, Editlet 206和画布服务210使用与区209中的一个或多个节点相对应的"方 面"。这些服务并不直接操作区和DOM中的节点。"方面"是利用命令207 来操作的。用户通常通过例如移动屏幕上的光标或键入命令而与屏幕进行交 互。提供屏幕的逻辑布局的画布210接收这些光标操作。画布210可使"方 面"采取相应的动作。根据这种关系,光标子系统204作为用于文档管理 器1081的MVC范例的控制器(C)。画布210也提供处理事件的任务。例 如,画布210处理诸如鼠标点击、焦点移动以及由用户发起的类似的操 作等事件。3. 区、"方面"、画布和窗格之间的关系积克述文档处理系统内的文档可从至少四个角度来描述。即1)用来保 持文档处理系统中的文档的内容和结构的数据结构;2)在不影响文档 完整性的同时编辑文档内容的方式;3)文档在屏幕上的逻辑布局;以 及4)文档在屏幕上的物理布局。"区"、"方面"、"画布"和"窗格" 分别表述与上述四个方面相对应的文档处理系统的组件。4. 撤消子系统如上所述,人们希望对文档的任何改变(例如,编辑)都可撤消。 例如,用户可执行编辑操作,然后决定撤消该改变。参照图12,撤消子 系统212是文档管理器的可进行撤消操作的组件。撤消管理器(UndoManager: 4敎销管理单元)2121保存可#1用户招t消的、对文档执 行的所有操作。例如,用户可执行命令来将文档中的词语替换成另一个 词语。之后,该用户可改变主意并决定保留原来的词语。撤消子系统 212协助上述操作。撤消管理器2121保存上述可撤消编辑(UndoableEdit:可撤消编辑)2122的操作。5. 光 标子系统如上所述,MVC的控制器部分可包括光标子系统204。该光标子系 统204接受来自用户的输入。这些输入通常具有命令和/或编辑操作的性 质。因此,光标子系统204可被视作是与文档管理器1081相关的MVC范 例的控制器(C)部分。6.视图如上所述,画布210表述要显现在屏幕上的文档的逻辑布局。对于 XHTML文档实施例而言,画布210可包括盒树(box tree) 208,该盒树 是文档在屏幕上如何被查看的逻辑表述。上述盒树208可包含在与文档 管理器1081有关的MVC范例的视图(V)部分中。D.词汇连才妄文档处理系统的一个重要特征是提供一种环境,该环境能够把XML 文档映射为其他表述来处理,而且对映射后的表述编辑时,将该编辑反 映到源XML文档中,同时保持该XML文档的完整性。由标记语言描述的文档,例如XML文档,基于通过文档类型定义的 词汇创建。词汇则是一组标签集。由于词汇可以任意定义,这就4吏得词 汇的数量可能是无限的。但是,为多个可能的词汇中的每一个都提供专 用的单独处理和管理环境是不切实际的。词汇连接提供解决这种问题的 一种方式。例如,文档可以利用两种以上的标记语言来表述。这些文档例如可 以是XHTML (可扩展超文本标记语言)、SVG (可缩放矢量图形)、 MathML (数学标记语言)或其他的标记语言。换句话说,标记语言可 以-现为和XML中的词汇和标签集相同。词汇使用词汇插件来实现。在文档处理系统中,通过将以插件不可 用的词汇所描述的文档映射为插件可用的另一词汇来显示。因此,对于 以未准备有插件的词汇描述的文档仍然是可以正确显示。词汇连接包括获取定义文件、和根据获取的定义文件在两个不同的 词汇之间进行映射的能力。用某种词汇描述的文档能够映射为另外的词 汇。因此,词汇连接提供通过与文档已被映射成的词汇相对应的显示和编辑插件来显示或编辑文档的能力。如上所述,各个文档在文档处理系统中被描述为通常具有多个节点的DOM树。"定义文件"为各个节点描述了该节点与其他节点之间的连 接。规定了是否可以对各个节点的元素值和属性值进行编辑。还可以描 述使用节点的元素值和属性值的运算表达式。利用映射特征,可以创建采用定义文件的目的DOM树。由此建立并 维护源DOM树和目的DOM树之间的关系。词汇连接监视源DOM树和目 的DOM树之间的连接。在从用户接收到编辑指令后,词汇连接〗奮改源 DOM树中的相关节点。发出表示已经修改了源DOM树的"变化事件", 并且相应地ff"改目的DOM树。通过使用词汇连接,使得仅有少量用户知道的相对次要的词汇可以 被转换为其他主要的词汇。因此,即便是对于那些仅有少量用户使用的 次要词汇,也可以准确地显示文档,并提供理想的编辑环境。因此,作为文档处理系统一部分的词汇连接子系统提供能够对文档 进行多种表述的功能。图13显示了词汇连接(VC: Vocabulary Connection )子系统300。 VC子系统300提供了 一种维护同 一文档的两种可替换表述之间的 一致性 的方式。例如,两种表述可以是同一文档以两种不同词汇来表现的。如 上所述,其中一种可以是源DOM树,而另一种可以是目的DOM树。1.词汇连接子系统利用^皮称为词汇连接(VocabularyCo皿ection ) 301的插件在文档处 理系统中实现词汇连接子系统300的功能。表述文档的各词汇305都需要 相应的插件。例如,如果文档的一部分以HTML表述,而其4也部分以 SVG表述,则需要与HTML和SVG分别对应的词汇插件。词汇连接插件301为区209或窗格211创建与适当词汇305的文档相对 应的适当的词汇连接画布(VCCanvas) 310。使用词汇连接301,根据转 换规则,对源DOM树的区209的改变被传递到另一 DOM树306的相应 区。转换身见则以词汇连接描述符(Vocabulary Connection Descriptor: VCD)的形式给出。对于与源DOM和目的DOM之间的这种转换相对应的各个VCD文件,创建相应的词汇连接管理器(VCManager) 302。 2.连接器(Connector)连接器304连接源DOM树中的源节点和目的DOM树中的目的节点。 连接器304的作用是观察源DOM树中的源节点,和对与源节点相对应的 源文档进行的修改(变化)。接着,修改相应的目的DOM树中的节点。 连接器304是能够对目的DOM树进行修改的唯一对象。例如,用户可以 只对源文档和相应的源DOM树进行修改。之后,连接器304对目的DOM 树进行相应的修改。连接器304被逻辑地链接在一起以形成树结构。连接器304形成的树 被称为连接器树(ConnectorTree )。连接器304通过 一 种服务 (Service)而创建,该服务被称为连接器工厂(ConnectorFactory:连接 器生成单元)303的服务。连接器工厂303从源文档创建连接器304,并 将其链接起来以形成连接器树。词汇连接管理器302维护连接器工厂 303。如上所述,词汇是命名空间中的标签集。如图所示,通过词汇连接 301为文档创建词汇305。这通过分析文档文件以及为源DOM和目的 DOM之间的映射创建适当的词汇连接管理器302来实现。此外,在创建 连接器的连接器工厂303 、创建区209的区工厂(ZoneFactory)205和创建与 区内节点相对应的画布的Editlet 206之间建立适当的关联。当用户从系 统中丟弃或删除文档时,对应的词汇连接管理器302将被删除。词汇305创建词汇连接画布310。此外,连4妄器304和目的DOM树306 被相应地创建。源DOM和画布分别对应于才莫型(M)和4见图(V)。然而,4又当目 标词汇能够在屏幕上呈现时,这种表现才有意义。这种呈现通过词汇插 件来进行。针对主要的词汇(例如XHTML、 SVG和MathML)提供词汇 插件。词汇插件与目标词汇关联使用。它们提供了一种使用词汇连接描 述符在词汇之间进行映射的方式。仅在目标词汇可被映射并具有预先定义的屏幕呈现方式时,这种映 射才有意义。这种呈现方式例如是由诸如W3C组织定义的XHTML等之类的标准规格。在需要词汇连接时,使用词汇连接画布(VCCanvas)。在这种情况 下,由于不能够为源直接创建视图,因此,不创建源的画布。在这种情 况下,使用连接器树来创建词汇连接画布。这种词汇连接画布仅仅处理 事件转换,而并不会有助于将文档呈现在屏幕上。3. 目的区(DestinationZone)、窗格(Pane)以及画布(Canvas) 如上所述,词汇连接子系统的目的在于同时创建并维护对同一文档的两种表述。第二表述也是DOM树形式,先前作为目的DOM树已被说 明。为了浏览第二种表述的文档,需要目的区、画布和窗格。在创建词汇连接画布后,将创建相应的目的窗格 (DestinationPane ) 307。此夕卜,相关的目的画布(DestinationCanvas ) 308和相应的盒树(BoxTree)309被创建。同样,词汇连接画布310还与源 文档的窗格211和区209关联。目的画布308提供了文档的第二种表述方式的逻辑布局。具体地, 目的画布308提供了用户界面功能,例如光标和选择,用于以目的表述 的方式呈现文档。在目的画布308中发生的事件被提供到连接器。目的 画布308向连接器304通知鼠标事件、键盘事件、拖动和放置事件、以及 通知文档的目的(第二种)表述的词汇的特有事件。4. 词汇连接命令子系统作为词汇连接(VC)子系统300的一部分是词汇连接(VC)命令子 系统313。词汇连接命令子系统313创建词汇连接命令(VCCommand) 315,词汇连接命令315用来执行与词汇连接子系统300相关的指令。可 通过内建的命令模板(CommandTemplate) 318来创建词汇连接命令,和 /或可通过在脚本子系统314中使用脚本语言从无到有地创建命令而创建 词汇连接命令。命令模板中包括,例如"If ,命令模板、"When"命令模板、"Insert fragment"命令模板等。这些模板被用来创建词汇连接命令。5. XPath子系统XPath子系统316是文档处理系统的 一个重要组件,它有助于实现词 汇连接。连接器304通常包括XPath信息。如上所述,词汇连接的任务之 一是将源DOM树的变化反映到目的DOM树中。XPath信息包括一个或多 个XPath表述,用来确定对改变/修改加以监视的源DOM树的子集。6. 源DOM树、目的DOM树和连接器树(ConnectorTree)的概述 源DOM树是对转换为另一种词汇之前的词汇表述的文档进行表述的DOM树或区。在源DOM树中的节点被称为源节点。另一方面,如已在前面结合词汇连接描述的,目的DOM树是通过映 射转换后以不同词汇表述的文档的DOM树或区。目的DOM树中的节点 被称为目的节点。连接器树是基于用来表述源节点和目的节点之间的对应关系的连接 器的分级表述。连接器监视源节点和对源文档进行的修改,修改目的 DOM树。连接器是被允许修改目的DOM树的唯一对象。E.文档处理系统中的事件流为了能够使用,程序必需对来自用户的命令进行响应。事件是一种 描述和执行用户对程序实施的动作的方法。许多高级语言例如Java (注 册商标)依靠描述用户动作的事件。在现有技术中,程序需要主动收集 信息以理解用户操作和由程序自己执行用户的操作。这意味着,例如, 在对程序自身初始化后,为了在用户对屏幕、键盘和鼠标等执行了任何 操作时进行适当的处理,进入反复确认用户操作的循环。然而,这种处 理难以操控。此外,这种处理在等候用户作某些事情时,还需要执行循 环的程序,从而消耗了CPU周期。许多语言通过包含不同的范例来解决这些问题。其中的 一 个范例即 事件驱动程序构成了所有现代的视图系统的基础。在这种范例中,所有 的用户动作属于被称为"事件"的抽象现象的集合。事件足够详细地描述 了特定的用户动作。程序不是主动地收集用户创建的事件,而是在要监 -亂的事件发生时,由系统通知程序。以这种方式处理用户交互的禾呈序3皮称为"事件驱动"。在多数场合,使用"事件(Event)"类来进行处理,其中事件类获取 所有用户创建事件的基本特性。文档处理系统定义和使用其自身的事件以及处理这些事件的方式。 有几种类型的事件被使用。例如,鼠标事件是由用户的鼠标操作引起的 事件。与鼠标有关的用户操作由画布210传递到鼠标事件。因此,画布 可以被认为是用户与系统交互的最前沿。如果需要,作为最前沿的画布 将把其与事件有关的内容传递到其下(子)级。另一方面,按键事件从画布210产生。按键事件具有瞬时的焦点。 即,按键事件总是涉及操作。输入到画布210的按键事件接着被传递到 其上级(父)。键盘输入通过能够处理字符串插入的不同事件而被处 理。处理字符串插入的事件将在使用键盘插入字符时发生。其他的"事 件"例如包括以与拖动事件、放置事件和鼠标事件相似的方式处理的其他 事件。1. 在词汇连接之外的事件处理使用事件线程对事件进行传递。在接收到事件后,画布210改变其 状态。如果需要,画布210将命令(Command) 1052记入到命令队列 (CommandQueue ) 1053。2. 在词汇连接之内的事件处理通过使用词汇连接插件301,作为目的画布一例的XHTML画布 (XHTMLCanvas) 1106接收现有的事件,例如鼠标事件、键盘事件、拖 动和放置事件、以及词汇中的特有事件。这些事件接着被通知到连接器 304。更具体地说,如图21 (b)所示,词汇连接插件301内的事件流经 过源窗格(SourcePane) 1103、词汇画布1104、目的窗格1105、作为目 的画布的实施例的目的画布1106、目的DOM树和连4妄器树。F.程序调用器(Programlnvoker)及其与其他组件之间的关系 在图14 (a)中更加详细地显示了程序调用器103及其与其他组件之间的关系。程序调用器103是在执行环境中被执行以启动文档处理系统 的基本程序。如图ll (b)及图ll (c)所示,用户应用程序 (User Application ) 106、月良务代理(ServiceBroker) 1041 、命令调用器 (Commandlnvoker) 1051和资源(Resource) 109都被联接到程序调用器103 。 如前所述,应用程序102是在执行环境中运行的组件。同样,服务代理 1041管理向系统增加各种功能的插件。另一方面,命令调用器1051执行 用户提供的指令,维护用来执行命令的类和函数。1. 插件和服务下面将参照图14 (b)详细描述服务代理1041。如上所述,服务代 理1041管理向系统增加各种功能的插件(及相关服务)。服务1042在最 底层,其能够将特征增加到文档处理系统中或者改变文档处理系统的特 征。"服务"由两部分构成服务种类(ServiceCategory)401和服务提供器 (ServiceProvider)402。如图14 (c)所示,单个服务种类401可具有多个 相关的服务提供器402。每个服务提供器都可操作以执行所有或部分的 特定服务种类。另一方面,服务种类401则定义了服务的类型。服务可分为三种类型l)"特征服务",向文档处理系统提供特定特 征;2)"应用程序服务",是由文档处理系统运行的应用程序;3)"环 境服务",提供在整个文档处理系统中需要的特征。图14 ( d )中示出了服务的例子。根据应用程序服务的种类 (Category),系统实用程序是相应服务提供器的示例。同样,Editlet 206是一个种类,HTML Editlet和SVG Editlet是相应的服务提供器。区工 厂205是服务的另一种,并具有相应的服务提供器(未示出)。已经描述的向文档处理系统增加功能的插件,可以看作是由几个服 务提供器402和与其相关的类构成的单元。各个插件都具有在定义文件 中记载的从属关系和服务种类401 。2. 程序调用器(Programlnvoker)和应用程序之间的关系图14 (e)详细显示了程序调用器103和用户应用程序106之间的关 系。所需的文档、数据等从存储器中载入。所有需要的插件载入到服务代理1041。服务代理1041维护并管理所有的插件。可将插件物理地增加 到系统,或者可从存储器中载入其功能。在载入插件的内容后,服务代 理1041定义相应的插件。接着,相应的用户应用程序106被创建,并被 载入执行环境101并联接到程序调用器103 。G. 应用程序服务和环境之间的关系图15 (a)更详细地示出了载入程序调用器103中的应用程序服务的 结构。作为命令子系统105组件的命令调用器1051调用或执行程序调用 器103内的命令1052。命令1052则是用来在文档处理系统中处理XML等 文档和编辑相应的XML DOM树的指令。命令调用器1051维护执4于命令 1052所需的类和功能。服务调用器1041也在程序调用器103中执行。用户应用程序106连接 到用户界面107和核心组件110。核心组件11 O提供了一种在所有的窗格中 共享文档的方式。核心组件110还提供字体并作为用于窗格的工具包。图15 (b)显示了框架(frame)1071、菜单栏(MenuBar)1072和状态栏 (StatusBar)1073之间的关系。H. 应用禾呈序核心图16 (a)进一步解释了应用程序核心108,其保持所有文档以及作 为文档一部分及属于文档的数据。核心组件1 IO联接到管理文档1082的 文档管理器(DocumentManager) 1081。文档管理器1081是存储到与文档处 理系统关联的存储器中的所有文档1082的所有者。为了便于在屏幕上显示文档,文档管理器1081还连接到根窗格 (RootPane)1084。剪贴板(ClipBoard)1087、快照(SnapShot)1088、拖拉和 放置(Drag&Drop)601以及重叠(Overlay)602的功能也被联接到核心组件 110。快照1088用来撤消应用程序状态。在用户启动快照1088的功能时, 应用程序的当前状态被检测并存储。之后,在应用程序的状态变为另一 状态时,所存储的状态的内容被保存下来。在图16(b)中示出了快照 1088。在操作中,当应用程序从一个URL移动到另一个时,快照1088记住先前的状态,从而能够无缝地执行后退和前进操作。 I.在文档管理器中组织文档图17 (a)更加详细地描述了文档管理器1081以及如何在文档管理器 中组织并保存文档。如图ll (b)所示,文档管理器1081管理文档 1082。在图17 ( a)显示的实施例中,多个文档中的一个为根文档 (RootDocument) 701 ,其他的文档为子文档(SubDocument) 702。文 档管理器1081连接到根文档701,根文档701则连接到所有的子文档 702。如图12和17 (a)所示,文档管理器1081耦合到文档容器203,文档 容器203是管理所有文档1082的对象。形成包括DOM服务 (DOMService)703和IO管理器(IOManager ) 704的工具包201 (例如, XML工具包)的一部分的工具也提供给文档管理器1081。再参照图17 (a) , DOM服务703创建基于由文档管理器1081管理的文档的DOM 树。各个文档705,不管是根文档701还是子文档702都由相应的文档容 器203管理。图17 (b)显示了一组文档A-E是如何以分级结构排列的实施例。文 档A为根文档。文档B-D是文档A的子文档。文档E则是文档D的子文 档。图17(b)的左侧显示了与此相同文档的分级结构显示在屏幕上的 实施例。作为根文档的文档A显示为基础框架。文档A的子文档B-D显示 为在基础框架A内的子框架。文档D的子文档E在屏幕上显示为子框架D 的子框架。再参照图17(a),为各个文档容器203创建撤消管理器706 (UndoManager:撤消管理单元)和撤消封装器(Undo Wrapper) 707。 撤消管理器706和撤消封装器707用来执行可撤消的命令。使用该特征, 可以撤消使用编辑操作对文档所作的改变。子文档中的改变也会涉及到 根文档。撤消操作考虑到对分级结构内其他文档产生影响的改变,例 如,如图7 (c)所示,确保维护在分级结构链中的所有文档之间的一致 性。撤消封装器707将与容器203中的子文档相关的撤消对象进行封装,并将它们和与根文档相关的撤消对象耦合。撤消封装器707收集可撤消 编辑接受器(UndoableEditAcceptor:可撤消编辑接受单元)709可利用 的撤消对象。撤消管理器706和撤消封装器707连接到可撤消编辑接收器709和可 撤消编辑源(UndoableEditResource ) 708。本领域技术人员应该理解, 文档705可以是可撤消编辑源708 ,也可以是可撤消编辑对象的源。J.撤消命令和撤消框架图18 (a)和18 (b)进一步详细地显示了撤消框架和撤消命令。如 图18 ( a )所示,撒消命令(UndoCommand ) 801 、重{故命令 (RedoCommand ) 802和可4敬消编辑命令(UndoableEditCommand ) 803 是能够排列在如图ll (b)所示的命令调用器1051中的命令,并且被顺 序执行。可撤消编辑命令803还进一步联接到可撤消编辑源708和可撤消 编辑接受器709。 "foo"编辑命令804和"bar"编辑命令805就是可撤消编辑 命令的例子。1.可撤消编辑命令的执行图18 (b)显示了可撤消编辑命令的执行。首先,假设用户使用编 辑命令来编辑文档705。在第一步骤S1,可撤消编辑接受器709被联接到 可才敬消编辑源708,而可4歆消编辑源708为文档705的DOM树。在第二步 骤S2,基于由用户发出的命令,使用DOM API对文档705进行编辑。在 第三步骤S3,向变化事件监听器通知已经发生了改变。即,在该步骤, 监视DOM树中所有改变的监听器检测编辑操作。在第四步骤S4,可撤消 的编辑作为撤消管理器706的对象被存储。在第五步骤S5,可撤消编辑 接受器709与可撤销编辑源708分开。可撤消编辑源708也可以是文档705 本身。K.与向系统载入文档有关的步骤上述子部分描述了系统的各个组件和子组件。下面将描述在使用这 些组件时用到的方法。图19 (a)显示了如何将文档载入到文档处理系统中的总体图。在图24-28中,结合特定的例子详细地描述各个步骤。简言之,文档处理系统从文档中包含的数据构成的二进制数据流创 建DOM。为文档中的感兴趣的并属于"区"中的 一部分创建顶节点 (ApexNode:顶点节点)。接着确定相应的"窗格"。所确定的窗格从顶 节点和物理屏幕表面创建"区"和"画布"。接着,"区"为各个节点创建"方 面",并为它们提供所需信息。画布创建用于呈现DOM树的节点的数据 结构。具体地,文档从存储器901载入。创建文档的DOM树902。创建保持 文档的相应文档容器903。接着将文档容器903联接到文档管理器904。 DOM树包括根节点,在一些情况下可包括多个次级节点。这种文档一般既包含文本也包含图形。因此,DOM树例如不仅具有 XHTML子树也可以具有SVG子树。XHTML子树具有XHTML顶节点 (ApexNode) 905。同样,SVG子树具有SVG顶节点906。在步骤l,将顶节点906联接到窗格907,窗格907是屏幕的逻辑布 局。在步骤2,窗格907向作为窗口拥有者(PaneOwner) 908的核心组件 请求用于顶节点的906区工厂。在步骤3,窗口拥有者908返回区工厂以 及用于顶节点906的Editlet。在步骤4,窗格907创建区909,区909联接至窗格907。在步骤5,区 909为各个节点创建"方面",并联接到相应的节点。在步骤6,窗格907创 建画布910。画布910联接到窗格907。在画布910中包括各种命令。在步 骤7,画布910则构建用于将文档呈现在屏幕上的数据结构。在XHTML 的情况下,这包括盒树结构。1.用于区的MVC图19 (b)使用MVC范例显示了区的结构概要。在这种情况下,由 于区和"方面"是与文档相关的输入,模型(M)包括区和"方面"。由于 画布和将文档呈现在屏幕上的数据结构是用户在屏幕上看到的输出,所 以-视图(V)对应于画布以及数据结构体。由于命令对文档及其各种关 系执行控制操作,所以控制(C)包括画布中所包含的命令。L.文档的表述下面将使用图20来描述文档及其各种表述的实施例。在该实施例中 使用的文档既包含文本也包含图片。文本使用XHTML表述,而图片用 SVG表述。图20详细显示了文档组件以及相应对象的关系的MVC表述。 在该示例中,文档1001联接到保持文档1001的文档容器1002。文档通过 DOM树1003表述。DOM树包括顶节点1004。顶节点用阴影圆圏表示。非顶节点用非阴影圆圏表示。用来编辑节 点的"方面"用三角形表示,并被联接到相应的节点。由于文档具有文本 和图片,所以该文档的DOM树包括XHTML部分和SVG部分。顶节点 1004是XHTML子树的最顶部的节点。该节点被联接到XHTML窗格 1005 , XHTML窗格(XHTMLPane ) 1005是文档XHTML部分的物理表 述的最顶部窗格。顶节点1004还联接到XHTML区(XHTMLZone) 1006 , 其中XHTML区1006是文档的DOM树的 一 部分。与节点1004相对应的"方面"还联接到XHTML区1006 。 XHTML区 1006则联接到XHTML窗格1005 。 XHTML Editlet创建XHTML画布 1007, XHTML画布1007是文档的逻辑表述。XHTML画布1007联接到 XHTML窗格1005 。 XHTML画布1007为文档1001的XHTML组件创建盒 树(BoxTree) 1009。维护和呈现文档的XHTML部分所需的各种命令1008 也被增加到XHTML画布1007 。同样,文档的SVG子树的顶节点1010被联接到SVG区 (SVGZone)lOl 1 , SVG区101 l是用于表述文档的SVG组件的文档1001的 DOM树的部分。顶节点1010被联接到SVG窗格(SVGPane)1013, SVG窗 格IOI3是文档的SVG部分的物理表述的最顶部窗格。表述文档的SVG部 分的逻辑表述的SVG画布(SVGCanvas)1012通过SVGEditlet创建,并被联 接到SVG窗格1013。用于将文档的SVG部分呈现在屏幕上的数据结构和 命令被联接到SVG画布。例如,如图所示,这种数据结构可包括圓圏、 线、矩形等。对于结合图20描述的文档例表述的一部分,参照图21 (a)用已经描 述的MVC范例来作进一步描述。图21 (a)提供了文档1001的XHTML组 件中的MV关系的简化图。4莫型是用于文档1001的XHTML组件的XHTML区(XHTMLZone) 1101。在XHTML区的树中包括几个节点及 其相应的"方面"。相应的XHTML区和窗格是MVC范例的模型(M)部 分的一部分。MVC范例的视图(V)部分是用于文档1001的HTML组件 的相应的XHTML画布(XHTMLCanvas ) 1102和盒树。通过画布以及其 中所包含的命令,文档的XHTML部分被呈现在屏幕上。键盘和鼠标输 入等事件如图所示,向相反方向进行处理。源窗格(SourcePane)具有附加功能,也就是说,起到DOM保持器 的作用。图21 (b)提供了在图21 (a)中示出的用于文档1001的组件的 词汇连接。作为源DOM保持器的源窗格1103包含文档的源DOM树。连 接器树通过连接器工厂创建,创建还起到目的DOM的保持器作用的目的 窗格(DestinationPane ) 1105。目的窗格1105以盒树的形式被布置为 XHTML目的画布(XHTMLDestinationCanvas ) 1106。M.插件子系统、词汇连接和连接器之间的关系图22 (a) - (c)分别显示了与插件子系统、词汇连接和连接器相关 的进一步的细节。插件子系统被用来向文档处理系统增加、或与之交换 功能。插件子系统包括服务代理(ServiceBroker)1041。联接到服务代理 1041的区工厂服务1201创建用于文档的部分的区。Editlet服务 (EditletService)1202也被联接到服务代理1041 。 Editlet服务1202创建与区 中的节点相对应的画布。区工厂的例子是分别创建XHTML区和SVG区的XHTML区工厂 (XHTMLZoneFactory ) 1211和SVG区工厂(SVGZoneFactory ) 1212。 如上文档示例所述,文档的文本组件可通过创建XHTML区来表述,而 图片则可使用SVG区来表述。Editlet服务的示例包括XHTML Editlet 1221 和SVGEditlet 1222。图22 (b)进一步详细显示了词汇连接。如上所述,词汇连接是文 档处理系统的重要特征,其能够使两种不同方式的文档的表述和显示保 持一致。对连接器工厂303加以维护的词汇连接管理器302是词汇连接子 系统的一部分。连接器工厂303创建文档的连接器304。如上所述,连接 器监3见源DOM中的节点,并^多改目的DOM中的节点,以维护两种表述之间的一致性。模板(Template) 317表述用于一些节点的转换规则。词汇连接描述 符(VCD)文件是表示一些规则的模板列表,这些规则用于将满足某种 路径或规则的元素或元素集合转换为其他的元素。模板317和命令模板 318都联接到词汇连接管理器302。词汇连接管理器是管理VCD文件中所 有部分的对象。对一个VCD文件创建一个词汇连接管理器对象。图22 (c)提供了有关连接器的进一步的细节。连接器工厂303从源 文档中创建连接器。连接器工厂303与词汇、模板和元素模板联接,并 分别创建词汇连接器(VocabularyConnector )、模板连接器 (TemplateConnector)和元素连接器(ElementConnector)。词汇连接管理器302维护连接器工厂303,为了创建词汇,读取相应 的VCD文件。接着创建连接器工厂303。该连接器工厂303与创建区的区 工厂和创建画布的Editlet相关联。接着,用于目标词汇的Editlet服务创建词汇连接画布。词汇连接画 布也创建源DOM树或区中顶点的连接器。根据需要递归地创建子连接 器。通过VCD文件中的一组模板创建连接器树。模板是用于将标记语言的元素转换为其他元素的规则的集合。例 如,各个模板与源DOM树或区相匹配。在正确匹配时,创建顶点连接 器。例如,模板"A/"D"匹配所有从节点A开始、在节点D结束的树分 支,而不考虑节点A和节点D之间的节点。同样,"〃B"对应于所有来自 根节点的"B"节点。N.与VCD文件相关的连接器树(ConnectorTree )的示例 下面将解释与特定文档相关的处理。名为"MySampleXML"的文档 :故载入到文档处理系统。图23显示了用于"MySampleXJML"文件的^f吏用 词汇连接管理器及连接器工厂树(ConnectorFactoryTree)的VCD脚本的实施例。在图中显示了脚本文件内的词汇部分、才莫板部分以及在词汇连接管 理器中的相应组件。在标签"vcd:vocabulary"下提供了属性"match"为 "sample:root" ," label"为"MySampleXML", 以及"call-template"为"sampleTemplatc"。在该实施例中,在"MySampleXML"的词汇连接管理器中,词汇包括 顶点元素"sample:root"。相应的UI标注为"MySampleXML"。在模板部 分,标签为"vcd:template",名称为"sample template"。O.将文件载入系统的方法的详细实施例图24 - 28显示了载入文档"MySampleXML"的详细描述。在步骤 1 ,如图24 ( a )所示,文档从存储器1405中载入。DOM服务 (DOMService )创建DOM树以及文档管理器1406对应的文档容器 1401。文档容器1401联接到文档管理器1406。文档包括XHTML和 MySampleXML的子树。XHTML顶节点1403是具有标签"xhtml:html"的 XHTML的最顶部的节点。"MySampleXML"的顶节点1404是具有标签 "sample:root"的"MySampleXML"的最顶部的节点。在步骤2,如图24(b)所示,根窗格为文档创建XTML区、"方面" 和画布。创建与顶节点1403对应的窗格1407、 XHTML区1408、 XHTML 画布1409和盒树1410。在步骤3,如图24 (c)所示,在发现XHTML区所不理解的标签 "sample:root"后,从XHTML画布上的区域创建子窗格。图25显示了步骤4,在步骤4中,子窗格获取能够处理"sample:root" 标签并可创建适当的区的区工厂。这种区工厂在能够执行区工厂的词汇 中。区工厂包括"MySampleXML,,中的词汇部分(Vocabulary Section ) 的内容。图26显示了步骤5,在步骤5中,与"MySampleXML"对应的词汇创 建缺省区(DefaultZone)1061。创建相应的Editlet并提供创建相应的画布的 子窗格1501。 Editlet创建词汇连接画布。接着,词汇连接画布调用包括 连接器工厂树的模板部分(TemplateSection)。连接器工厂树创建将构成连 接器树的所有的连接器。图27所示的步骤6中,各个连接器创建目的DOM对象。 一些连接器 包括XPath信息。XPath信息包括一个以上的XPath表达式,XPath表达式 用来确定需要对是否发生了改变/修改加以监测的源DOM树的子集。在图28所示的步骤7中,词汇从源DOM的窗格形成目的DOM树的目 的窗格。这基于源窗格(SourcePane)来完成。目的树的顶节点联接到 目的窗格(DestinationPane )以及相应的区。目的窗格创建目的画布 (DestinationCanvas)。而且,为目的窗格提供用于以目的格式呈现文 档的数据结构和命令,以及用于目的窗格自身的Editlet。图29 (a)显示了只是存在于目的树上的节点上发生时的事件流,而 不具有相应的源节点。如鼠标事件和键盘事件等由画布所获取的事件是 通过目的树而被传递到元素才莫板连接器(ElementTemplateConnector)。 元素模板连接器不具有相应的源节点,因此被传送的事件并不是对源节 点的编辑操作。如果所传送的事件与命令模板(CommandTemplate)中 描述的命令相匹配,则元素模板连接器执行相应的动作。如果没有相匹 配的命令,则元素模板连接器忽略所传送的事件。图29 ( b )显示了在目的树的节点上发生事件的情况下的流 (flow),该目的树的节点通过文本连接器(TextOfConnector)与源节 点相关联。文本连接器从由源DOM树的XPath规定的节点获取文本节 点,并将该文本节点映射为目的DOM树的节点。如鼠标事件和键盘事件 等由画布所获取的事件通过目的树而被传送到文本连接器。文本连接器将所传送的事件映射为相应源节点的编辑命令,并将这些命令设置在队 列(Queue) 1053中。编辑命令是通过"方面"执行的DOM的API调用集 合。当执行设置在队列中的命令时,编辑源节点。在编辑源节点时,发 出变化事件,并且将对源节点的修改通知到注册为监听器的文本连接 器。文本连接器重新建立目的树,从而在相应的目的节点中反映出对源 节点的修改。此时,如果包含文本连接器的模板包括控制声明,例如 "for each"和"for loop",则连接器工厂重新评估控制声明。在重建文本连 接器后,重建目的树。(实施例)图30是用于说明本实施例中的数据处理内容的示意图。服务器装置 通过控制使得被对象化的数据能够由多个用户编辑。用户通过客户终端 操作服务器装置的数据。首先,服务器装置获取要被编辑/阅览的源数据。源数据也可以是XML文档文件中包括的数据,也可以是保存在数据 库中的数据等任意数据。源数据也可以从多个源文件抽出。服务器装置 将这些源数据作为 一个源对象进行对象化。源对象具有作为成员变量的源数据,并提供用于访问这些成员变量 的成员函数。用户不是直接访问源文件,而是通过源对象的成员函数访 问作为成员变量保持的源数据。当从XML文档文件生成源对象时,还可 以提供遵循DOM规格的接口 。另外,通过前提技术中叙述的VC功能, 源对象的成员变量也可以各种形式层次结构化。例如,还可以准备用于 将数据库中包括的源数据结构化的结构定义文件,将这些源数据结构 化。由此,生成将层次结构化的源数据设为成员变量的源对象。源对象由来自客户终端的访问来操作。 一种用于将源对象从客户终 端操作的方法如下1. 下载源对象到客户终端2. 在客户终端中对源对象编辑操作3. 将由编辑操作更新的源对象上载到服务器装置,或者将表示编 辑内容的编辑信息发送到服务器装置,在服务器装置中更新源对象。上述的操作是可能实现的。但是,源对象的数据量相对于客户终端 的存储器容量来说较大时,将源对象完全部署在客户终端的本地存储器中是不现实的。大多是用户访问源对象的成员函数中 一部分就足够了 。因此,为了提高对源对象访问的效率,服务器装置从一个源对象生 成多个部分对象。部分对象中包括源数据作为成员变量,并提供用于访 问这些源数据的成员函数。但是,部分对象只将源数据中的一部分设为 成员变量,因此与源对象相比,数据量特别小。客户终端下载将要访问 的作为成员变量的源数据的部分对象,从而代替下载源对象整体。当编 辑下载到客户终端中的部分对象时,服务器装置根据其编辑内容更新源 对象。根据这种方法,能够抑制客户终端的存储器使用量。另外,当用户 A访问部分对象oc时,用户B几乎不影响用户A的访问就能够访问部分对 象p。因此,多个用户能够有效地访问源对象。然而,也有多个用户希 望同时访问同一部分对象的情况。这种情况下,服务器装置需要调整多个访问请求。图31用于说明对某部分对象进行多个访问要求时的控制方法的序列 图。在此,将要访问对象的部分对象称作部分对象cc。图31示出了从客 户终端A、 B、 C对该部分对象ct进行访问请求的情况。首先,当客户终 端A向部分对象ct请求访问时,对部分对象oc生成写标记(Write Token)和读标记(Read Token)的一对标记。以下,将客户终端A的写 标记称作"AW",读标记称作"AR"。对客户终端B、 C也以同样方式 标记。对每个部分对象都生成标记,当访问不同于部分对象oc的部分对 象P时,生成新的标记对。写标记是表示对部分对象的编辑权的标记。读标记是表示对部分对 象的阅览权的标记。编辑权是指通过部分对象的成员函数变更成员变量 的权利。阅览权是指当部分对象的成员变量变更时实时阅览最新数据的 权利。在下文中,将编辑权和阅览权称作"访问权"。读标记和写标记 对生成后,其中一个标记保持在服务器装置,另一标记保持在客户终 端。在图31中,首先客户终端A请求部分对象oc的阅览权。这种情况下,客户终端A保持AR,而将AW发送到服务器(S10)。 客户终端A通过剩下的AR认为保持着阅览权。另一方面,接受AW的服 务器装置认为担负着将部分对象a的最新数据通知客户终端A的义务。 当服务器装置接受AW时,将部分对象a的数据发送到客户终端A (S12)。接着,客户终端B也请求部分对象a的阅览权。客户终端B将 BW发送到服务器,而保持BR(S14)。当服务器装置接受BW时,将部 分对象a的数据发送到客户终端B (S16)。客户终端C请求部分对象a的编辑权。这种情况下,客户终端C将 CR发送给服务器装置,并保持CW(S18)。客户终端C通过剩下的CW 认为保持着编辑权。另一方面,接受CR的服务器装置认为其担负着从客 户终端C接收更新部分对象oc的义务。当服务器装置接受CR时,将部分 对象ct的数据发送到客户终端C (S20)。由此,服务器装置向获取访问 权的客户终端发送部分对象ct的数据。各客户终端将在本地保持部分对 象a的数据。 一个部分对象的阅览权提供给多个客户终端,但是提供编 辑权的客户终端是一个或者零个。因此,即使未图示的客户终端D重新请求部分对象a的编辑权,服务器装置也会拒绝该请求。在获取了编辑权的客户终端C中,当编辑操作本地中保持的部分对 象a时,更新部分对象a的内容,即成员变量(S22)。从客户终端C向 服务器装置发送表示其编辑内容的编辑信息(S24)。服务器装置更新 源对象使得编辑内容反映在源对象的相应部分(S26)。服务器装置向 具有阅览权的客户终端A、 B发送编辑信息(S28、 S30)。客户终端A和 B分别根据编辑信息更新本地中保持的部分对象oc (S32、 S34)。由 此,客户终端C中的部分对象a的编辑内容也反映在服务器装置的源对 象、以及客户终端A、 B的部分对象a中。在图31中,之后客户终端C放弃编辑权,取而代之请求阅览权。当 客户终端C将表示编辑权的CW发送到服务器装置时(S36),服务器装 置将CR返回客户终端C (S38)。由此,客户终端C代替放弃编辑权而获 取阅览权。由于》文弃了部分对象ct的编辑权,客户终端B通过发送BR (S40),接受BW(S42)来重新获取编辑权。此外,在客户终端C放弃 了对部分对象a的访问权的情况下,客户终端C将CW发送到服务器装 置,服务器装置将CW和CR对删除。接着,将参照具体的实施方式说明 作为服务器装置和客户终端的这些装置。图32是数据管理装置的功能框图。数据管理装置3100是作为与图 30、图31关联说明的服务器装置工作的装置。这里所说的各模块,硬件 能够由以计算机CPU为首的元件、机械装置实现,软件是由计算机程序 等实现,但是这里描绘了由这些协同实现的功能模块。因而,这些功能 模块能够由硬件、软件的组合以各种形式实现,这对于本领域从业人员 是可以理解的。对于下面的图33所示功能框图也相同。数据管理装置3100包括用户接口处理单元3110、通信单元3120、数 据处理单元3130以及数据保存单元3140。用户接口处理单元3110担当着 如来自用户的输入处理、对用户的信息显示的用户接口相关的全部处 理。通信单元3120担当着与作为客户终端工作的数据处理终端3200之间 的通信处理。对于数据处理终端3200将参照图33在下面详述。在本实施 例中,以由用户接口处理单元31 IO提供数据管理装置3100的用户接口服 务为例进行说明。作为其他例子,也可以是用户通过因特网操作数据管理装置3100。基于通过用户接口处理单元3110的输入操作以及从通信单元3120获 取的数据,数据处理单元3130执行各种数据处理。数据处理单元3130还 起到用户接口处理单元3110、通信单元3120以及数据保存单元3140之间 接口的作用。数据保存单元3140保存各种数据,例如预先准备的各种设 定数据,以及从数据处理单元3130接收的数据。数据保存单元3140包括源数据保持单元3166、对象保持单元3168、 访问权信息保持单元3170以及结构化的管理文件保持单元3172。源数据 保持单元3166保存作为源对象源的XML文档文件等源数据。对象保持单 元3168保存例如源对象和部分对象等的对象数据。访问权信息保持单元 3170保持从数据处理终端3200接收,的读标记和写标记。结构化的管理文 件保持单元3172保存结构化的管理文件。结构化的管理文件是指表示源 对象中的节点层次结构。详细情况将后述。通信单元3120包括访问请求接收单元3142、部分对象发送单元 3144、结构化的管理文件发送单元3146、编辑信息接收单元3148以及编 辑信息发送单元3150。访问请求接收单元3142从数据处理终端3200接收 访问请求信息。这里所说的访问请求信息是用于向部分对象请求编辑权 或者阅览权的数据。作为访问请求信息发送的数据是在其中将要访问的 部分对象、请求访问的数据处理终端3200、以及读标记或写标记的任何 一个标记进行打包的数据。部分对象发送单元3144向请求访问的数据处理终端3200发送指定了 部分对象的数据。结构化的管理文件发送单元3146向各数据处理终端 3200发送结构化的管理文件。结构化的管理文件发送单元3146可以向各 数据处理终端3200发送结构化的管理文件,而与是否存在访问请求无 关。编辑信息接收单元3148从获取了编辑权的数据处理终端3200接收编 辑信息。编辑信息发送单元3150向获取了阅览权的数据处理终端3200发 送编辑信息。数据处理单元3130包括对象处理单元3152和访问权管理单元3154。 对象处理单元3152执行例如对源数据进行对象化等的面向对象处理。访 问^又管理单元3154通过读标记和写标记管理每个部分对象的访问权。即访问权管理单元3154根据从数据处理终端3200接收的读标记和写标记, 执行基于访问权的判定处理,例如通过选择确定编辑信息应向那个客户 端发送、以及是否执行源对象更新处理。对象处理单元3152进一步包括源对象生成单元3156、源对象更新单 元3158、部分对象生成单元3160以及结构化的管理文件处理单元3162。 源对象生成单元3156将源数据结构化来生成源对象。生成的源对象保存 在源对象保持单元3168中。部分对象生成单元3160从源对象生成多个部 分对象。生成的多个部分对象也保存在对象保持单元3168中。当在具有 编辑斥又的数据处理终端3200中更新部分对象时,编辑信息接收单元3148 从该数据处理终端3200接收编辑信息。源对象更新单元3158#4居编辑信 息更新源对象。根据来自源对象更新单元3158的指示,部分对象生成单 元3160也更新相应的部分对象。结构化的管理文件处理单元3162生成表 示源对象节点层次结构的结构化的管理文件。当节点层次结构由于源对 象更新而变化时,结构化的管理文件处理单元3162更新结构化的管理文 件。当更新了结构管理信息时,结构化的管理文件发送单元3146向各数 据处理终端3200重新发送更新后的结构化的管理文件。图33是数据处理终端的功能框图。数据处理终端3200是作为与图 30、图31关联而说明的客户终端工作的装置。数据处理终端3200包括用 户接口处理单元3210、通信单元3220、数据处理单元3230以及数据保存 单元3240。数据处理终端3200的用户接口处理单元3210也担当关于用户 接口的全部处理,例如,用户的输入处理、或向用户显示信息的处理。 数据处理终端3200担当与作为服务器装置连接的数据管理装置3100之间 的通信处理。在本实施例中,以由用户接口处理单元3210提供H据处理 终端3200的用户接口服务为例进行说明。作为其他例,也可以是用户通 过因特网操作数据处理终端3200。基于通过用户接口处理单元3210进行的输入操作、或从通信单元 3220获取的数据,数据处理单元3230执行各种数据处理。数据处理单元 3230还起到用户接口处理单元3210、通信单元3220以及数据保存单元 3240之间接口的作用。数据保存单元3240保存各种数据,例如,预先准 备的各种设定数据或从数据处理单元3230接收的数据。数据保存单元3240包括部分对象保持单元3256、结构化的管理文件 保持单元3262、访问标记保持单元3264。部分对象保持单元3256保存从 数据管理装置3100接收的部分对象。部分对象保持单元3256包括第1保 持单元3258和第2保持单元3260。要被编辑或阅览等操作的部分对象保 存在第1保持单元3258中。另外,当不对部分对象进行编辑或预览操作 时,该部分对象保存在第2保持单元3260中。更具体地说,第l保持单元 3258可以由小容量且可高速访问的主存储装置(main memory)实现。 另一方面,第2保持单元3260可以由大容量且访问速度相对低速的石更盘 等辅助存储装置(auxiliary storage unit)实现。结构化的管理文件保持 单元3262保持结构化的管理文件。访问标记保持单元3264对获取了访问 权的每个部分对象保持标记。通信单元3220包括访问请求发送单元3242、部分对象接收单元 3244、结构化的管理文件接收单元3246、编辑信息发送单元3248以及编 辑信息接收单元3250。访问请求发送单元3242向数据管理装置3100发送 访问请求信息。部分对象接收单元3244从数据管理装置3100接收部分对 象。结构化的管理文件接收单元3246从数据管理装置3100接收结构化的 管理文件。编辑信息发送单元3248从数据管理装置3100接收与要被阅览 的部分对象相关的编辑信息。编辑信息接收单元3250将与要被编辑的部 分对象相关的编辑信息发送到数据管理装置3100。数据处理单元3230包括部分对象更新单元3252和访问权管理单元 3254。部分对象更新单元3252根据对获取了编辑权的部分对象的编辑操 作,更新部分对象保持单元3256的部分对象。另外,当接收了与获取了 阅览权的部分对象相关的编辑信息时,根据编辑信息更新部分对象保持 单元3256的部分对象。访问权管理单元3254通过标记管理对各部分对象 的访问权。在下面,示例从源对象生成部分对象的过程,说明访问源对 象时的用户接口。图34是用于说明从源对象生成部分对象的过程的示意图。在图31中 示意性地示出了节点1~16的形成树状结构的源对象。该源对象是包括16 个以上节点的巨大对象,但是这里将图31所示的16个节点作为对象说 明。当源数据是XML文档文件数据时,由标签确定的元素(element)对应一个节点。另外,当源数据是规定的数据库中包括的数据时,成为其 元素的数据对应一个节点。但是,源对象中的节点和源数据的对应关系 可以任意决定。在图34中,16个节点分配到pl至p8的八个部分对象。例如,部分对 象pl是作为成员变量只包括节点l,提供用于操作与节点l相关联的数据 的成员函数的对象。另一方面,与p6对应的部分对象包括节点8、 9、 10、 11、 24五个节点,提供用于操作这些节点的成员函数。节点和部分 对象的对应关系也可以由用户〗壬意身见定。例如一个节点也可以对应一个 部分对象。图35是结构化的管理文件的数据结构图。图34所示的各部分对象和 各节点的层次结构作为结构化的管理文件而被管理。部分对象栏3270表 示部分对象的名。上对象栏3272表示位置处于处于与部分对象栏3270中 对应的部分对象之上的部分对象。下对象栏3274表示位置处于与部分对 象栏3270中对应的部分对象之下的部分对象。成员节点栏3276表示部分 对象中包括的节点名。由此,结构化的管理文件是用于表示不包括每个 节点数据内容的源对象层次结构的文件。当源对象的层次结构由节点的 追加、删除而变化时,数据管理装置3100的结构化的管理文件处理单元 3162更新结构化的管理文件。结构化的管理文件发送单元3146向各数据 处理终端3200发送更新后的结构化的管理文件。此外,部分对象栏3270、上对象栏3272、下对象栏3274也可以表示 用于各部分对象的指针。另外,源对象的全部数据没有必要保存在单一 的数据管理装置3100中。例如,在源对象数据分散保持在多个数据管理 装置3100中的情况下,结构化的管理文件还可以包括与数据管理装置 3100有关的信息,即各部分对象实体存在哪里。这种情况下,数据处理 终端3200根据请求访问的部分对象,参照结构化的管理文件判断应该向 哪个数据管理装置3 IOO发送访问请求信息。图36是在数据处理终端中选择要被阅访问的数据时的屏幕图。数据 处理终端3200的用户4姿口处理单元3210参照结构化的管理文件显示节点 结构显示屏幕3280,以示出源对象中的节点层次结构。用户通过用鼠标 点击滚动按钮3284、滚动按钮3282,从而可滚动屏幕来观看整体层次结构。与其他部分对象相比,强调显示部分对象p3和部分对象p7。这表示 部分对象p3和部分对象p7已经下载完成。换句话说,对于部分对象p3和 部分对象p7,获取了访问权。部分对象p3上显示的"W"表示获取了部 分对象p3的编辑权。部分对象p7右上显示的"R"表示获取了部分对象 p7的阅览权。当部分对象p3管理的节点4被指定要被访问时,部分对象 保持单元3256的部分对象p3的数据加载到第l保持单元3258。此时,暂 时未被访问的部分对象p7可以保存到第2保持单元3260。另外,当未保持在本地中的部分对象p4被指定为要被访问时,数据 处理终端3200的访问权管理单元3254生成部分对象p4的写标记和读标记 对。在用户请求编辑权时,读标记被打包为访问请求信息并^皮发送到数 据管理装置3100。当请求阅览权时,写标记被打包为访问请求信息,并 被发送到数据管理装置3100。该数据处理终端3200从数据管理装置3100 接收部分对象p4的数据,并将其保存在部分对象保持单元3256的第1保 持单元3258中。此时,部分对象p4的显示部分重新变换为强调显示。在用户放弃对部分对象p3的编辑权来删除访问权本身的情况下,访 问请求发送单元3242将访问标记保持单元3264所保持的写标记发送到数 据管理装置3100。数据管理装置3100的访问权管理单元3154将已经保持 的读标记和重新接收的写标记删除,解除对应于部分对象p3的数据处理 终端3200的访问权。另外,数据处理终端3200的部分对象更新单元3252 将部分对象p4的数据从部分对象保持单元3256中删去。此时,与部分对 象p3相关的显示部分从强调显示改变为普通显示。放弃部分对象的阅览 权来删除访问权的情况也与此相同。以上,在本实施例中说明了由数据管理装置3100和数据处理终端 3200构成的数据管理系统。数据处理终端3200的用户查看节点结构显示 画面3280的同时,可选择希望访问的数据。当以DOM处理XML文档文 件时,按照层次结构顺序浏览节点来确定要处理的节点。在这种被称作 遍历树(tree traverse)的处理方法的情况下,当前节点是图36的节点4 时,为了处理节点6,经过节点l、 2、 3、到达节点6。因此,将产生需 要临时访问本来不是访问对象的节点l、 2、 3的必要。但是,根据如本实施例所示的访问方法,能够直接获取访问对象的部分对象p4。另外,即使源对象很大,由于是以部分对象为单位进行访问管理, 因此能够有效地处理多个用户的访问。数据处理终端3200根据获取的部分对象是否是要处理的对象,将第 l保持单元3258和第2保持单元3260的任何一个作为对其进行保存的装置 而进行切换。因此,在访问多个部分对象的情况下,数据处理终端3200 可最大限度地利用存储区域。此外,权利要求书中所述的数据编辑装置和数据阅览装置的各功 能,在本实施例中是由数据处理终端3200单体实现的。本领域的技术人 员来应该理解,权利要求书中描述的各元素执行的功能,可以由在本实 施方式中所示的各功能模块的单体或者它们的协同操作来实现。以上以实施方式为基础对本发明节进行了描述。该实施方式是示 例,本领域技术人员应该理解,在本发明的范围内,可以对它们的各结 构元素、各处理流程的组合进行各种改变。在本实施方式中,说明了处理XML文档的例子,但是对于用其他标 记语言,例如SGML、 HTML等描述的文档,也能够同样地进行处理。在对本实施方式的说明中假设了 ,当对象保持单元3256中不存在包 括数据处理终端3200的用户指定要访问的节点的部分对象时,数据处理 终端3200向数据管理装置3100请求相应的部分对象。作为变形例,数据 管理装置3IOO不仅可以提供与请求要访问的部分对象相关的访问权,而 且可以提供与要访问对象周边的部分对象(例如,上部分对象或下部分 对象)相关的访问权。此时,共同下载要访问的多个部分对象。根据这 种方式,不仅可以获取当前请求要访问的部分对象,而且还能够获取与 认为将来有可能访问的部分对象有关的访问权,因此将容易抑制通信处 理次数。另外,在本实施例中的说明中假设了数据管理装置3100从源对象预 先生成部分对象。作为变形例,数据管理装置3100也能够以数据处理终 端3200的访问请求为契机,从源对象的相应部分适当生成部分对象。产业上利用的可能性根据本发明,多个用户容易有效地操作从源数据生成的对象
权利要求
1.通过网络与多个客户终端连接的数据管理装置,包括源对象生成单元,生成用于操作要被编辑的一组元素数据的源对象,作为包括一组结构化的元素数据和用于访问各元素数据的成员函数的对象;部分对象生成单元,从所述源对象生成多个部分对象,作为与所述源对象中包括的所述一组元素数据的一部分对应的对象;访问请求接收单元,从客户终端接收访问请求信息,该访问请求信息用于请求在所述多个部分对象中指定的部分对象的编辑权或者阅览权;访问权管理单元,根据从多个客户终端接收的访问请求信息,向各客户终端分配每个所述部分对象的编辑权和阅览权;部分对象发送单元,向请求对所述访问请求信息指定的部分对象进行编辑或阅览的客户终端发送该部分对象的数据,以使得所述客户终端本地保存所述的数据;编辑信息接收单元,当在获取了所述部分对象的编辑权的客户终端中编辑本地保持的该部分对象时,从获取所述述编辑权的客户终端接收表示所述部分对象的编辑内容的编辑信息;源对象更新单元,按照接收的所述编辑信息中所示的编辑内容,更新所述源对象的相关部分;以及编辑信息发送单元,将表示所述部分对象的编辑内容的编辑信息发送到获取了所述阅览权的客户终端,从而使得所述编辑内容反映在所述客户终端本地保持的部分对象的相关部分中。
2. 根据权利要求l所述的数据管理装置,其中,所述源对象生成单 元从由多个标签标识元素数据的结构化文档文件生成所述源对象。
3. 根据权利要求1或2所述的数据管理装置,其中,所述源对象生 成单元参照用于将预定数据库中包括的多个元素数据进行结构化的预定结构定义信息,将所述多个元素数据中将要被编辑的 一组元素数据进行 结构化,并从所结构化的一组元素数据生成源对象。
4. 根据权利要求1至3任意一项所述的数据管理装置,还包括 结构化的管理信息保持单元,保持表示源对象中包括的一组元素数据的层次结构的结构化的管理信息;结构化的管理信息发送单元,将所述结构化的管理信息发送到客户 终端;以及结构化的管理信息更新单元,根据源对象的更新来更新所述结构化 的管理信息,其中,当所述结构化的管理信息所示的一组元素数据的层次结构变 化时,所述结构化的管理信息发送单元将更新后的结构管理信息重新发 送到所述客户终端。
5. 数据编辑装置,其与管理源对象的外部数据管理装置通过网络 连接,该源对象用于操作要被编辑的一组元素数据,其中,所述数据编 辑装置包括访问请求信息发送单元,将用于请求编辑权的访问请求信息发送到 所述数据管理装置,所述访问请求信息根据源对象中包括的一组元素数 据的一部分,在所述数据管理装置生成的多个部分对象中指定相应的部 分对象;部分对象接收单元,从所述数据管理装置接收被指定的部分对象的 数据;部分对象保持单元,保持已接收的所述部分对象的数据; 编辑输入单元,接收用户对保持的部分对象的编辑操作; 部分对象更新单元,根据对所述部分对象的编辑操作更新所述部分 对象;以及编辑信息发送单元,将表示所述部分对象的编辑内容的编辑信息发 送到所述数据管理装置,从而使得所述编辑内容反映在所述数据管理装 置的源对象中。
6. 根据权利要求5所述的数据编辑装置,还包括 结构化的管理信息接收单元,从所述数据管理装置接收结构化的管理信息,该结构化的管理信息表示源对象中包括的 一组元素数据的层次 结构;结构化的管理信息显示单元,显示所述结构化的管理信息; 编辑位置指定单元,接受用户对所显示的结构化的管理信息希望编辑的数据位置的输入;其中,所述访问请求信息发送单元参照所述结构化的管理信息识别与所指定的位置对应的部分对象,并发送用于请求所识别的部分对象的编辑权的访问请求信息。
7. 根据权利要求6所述的数据编辑装置,其中,所述源对象由多个 数据管理装置分割为多个来保持,并且所述结构化的管理信息还表示所 述源对象中包括的各元素数据的实体位于哪个数据管理装置中,所述访问请求信息发送单元参照所述结构化的管理信息识别保持被 指定为要被编辑的部分对象的数据管理装置,并向所识别出的数据管理 装置发送访问请求信息。
8. 根据权利要求5至7任意一项所述的数据编辑装置,其中,所述 部分对象保持单元能够保持多个部分对象,并包括第1保持单元,保持要被编辑的部分对象;第2保持单元,当部分对象未被编辑时保存在所述第2保持单元中; 当指定为要被编辑的部分对象保持在所述第2保持单元中时,所述访问请求信息发送单元将该部分对象从所述第2保持单元加载到所述第1保持单元中,而不发送访问请求信息。
9. 数据阅览装置,与管理源对象的外部数据管理装置通过网络连 接,该源对象用于操作要被编辑的一组元素数据,所述数据阅览装置包 括访问请求信息发送单元,将用于请求阅览权的访问请求信息发送到 所述数据管理装置,所述访问请求信息根据源对象中包括的一组元素数 据的一部分,在所述数据管理装置生成的多个部分对象中指定相应的部分对象;部分对象接收单元,从所述数据管理装置接收所指定的部分对象的 数据;部分对象保持单元,保持已接收的部分对象的数据; 编辑信息接收单元,当与所保持的部分对象相当的、源对象的一部分在所述数据管理装置中更新时,接收从所述数据管理装置发送的编辑信息以表示所更新的内容;以及部分对象更新单元,根据所述编辑信息更新所述保持的部分对象。
10. 根据权利要求9所述的数据阅览装置,还包括 结构化的管理信息接收单元,从所述数据管理装置接收结构化的管理信息,该结构化的管理信息表示源对象中包括的一组元素数据的层次 结构;结构化的管理信息显示单元,显示所述结构化的管理信息;以及 阅览位置指定单元,从用户接收输入以指定所显示的结构化的管理信息的所述用户期望阅览的数据位置;其中所述访问请求信息发送单元参照所述结构化的管理信息识另'J与所指定数据位置对应的部分对象,以及发送用于请求所识别的部分对象的阅览权的访问请求信息。
11. 根据权利要求10所述的数据阅览装置,其中,源对象由多个数 据管理装置分割为多个来保持,并且所述结构化的管理信息还表示所述 源对象中包括的各元素数据的实体位于哪个数据管理装置中,所述访问请求信息发送单元参照所述结构化的管理信息识别保持有 被指定为要被阅览的部分对象的数据管理装置,并向所识别的数据管理 装置发送访问请求信息。
12. 根据权利要求9至11任意一项所述的数据阅览装置,其中,所 述部分对象保持单元能够保持多个部分对象,其进一步包括第1保持单元,保持要被阅览的部分对象;第2保持单元,当部分对象未被阅览时保存在所述第2保持单元中; 当指定为要被阅览的部分对象保持在所述第2保持单元中时,所述访问请求信息发送单元将该部分对象从所述第2保持单元加载到所述第1保持单元中,而不发送访问请求信息。
13. 数据管理方法,所述方法在通过网络与多个客户终端连接的装 置中执行,并包括生成用于操作要被编辑的一组元素数据的源对象,作为包括一组结 构化的元素数据和用于访问各元素数据的成员函数的对象;从所述源对象生成多个部分对象,作为与所述源对象中包括的所述 一组元素数据的一部分对应的对象;从客户终端接收访问请求信息,该访问请求信息用于请求在所述多 个部分对象中指定的部分对象的编辑权或者阅览权;根据从多个客户终端接收的访问请求信息,向各客户终端分配每个 所述部分对象的编辑权和阅览权;向请求对所述访问请求信息指定的部分对象进行编辑或阅览的客户 终端发送所述访问请求信息指定的部分对象的数据,以使得所述客户终 端本地保存所述的数据;当在获取了所述部分对象的编辑权的客户终端中编辑本地保持的该 部分对象时,从获取所述述编辑权的客户终端接收表示所述部分对象的 编辑内容的编辑信息;按照接收的所述编辑信息中所示的编辑内容,更新所述源对象的相 关部分;以及将表示所述部分对象的编辑内容的编辑信息发送到获取了所述阅览 权的客户终端,从而使得所述编辑内容反映在所述客户终端本地保持的 部分对象的相关部分中。
14. 数据编辑方法,在与管理源对象的外部数据管理装置通过网络 连接的装置中执行,该源对象用于操作要被编辑的一组元素数据,所述 方法包括将用于请求编辑权的访问请求信息发送到所述数据管理装置,所述 访问请求信息根据源对象中包括的一组元素数据的一部分,在所述数据 管理装置生成的多个部分对象中指定相应的部分对象; 从所述数据管理装置接收被指定的部分对象的数据; 保持已接收的所述部分对象的数据; 接收用户对保持的部分对象的编辑操作; 根据对所述部分对象的编辑操作更新所述部分对象;以及 将表示所述部分对象的编辑内容的编辑信息发送到所述数据管理装 置,从而使得所述编辑内容反映在所述数据管理装置的源对象中。
15. 数据阅览方法,在与管理源对象的外部数据管理装置通过网络 连接的装置中执行,该源对象用于操作要被编辑的一组元素数据,所述 方法包4舌将用于请求阅览权的访问请求信息发送到所述数据管理装置,所述 访问请求信息根据源对象中包括的一组元素数据的一部分,在所述数据 管理装置生成的多个部分对象中指定相应的部分对象;从所述数据管理装置接收所指定的部分对象的数据;保持已接收的部分对象的数据;当与所保持的部分对象相当的、源对象的一部分在所述数据管理装 置中更新时,接收从所述数据管理装置发送的编辑信息以表示所更新的 内容;以及根据所述编辑信息更新所述保持的部分对象。
16. 数据管理程序,所述数据管理程序为在通过网络与多个客户终 端连接的装置中执行的计算机程序并包括源对象生成模块,生成用于操作要被编辑的 一 组元素数据的源对 象,作为包括一组结构化的元素数据和用于访问各元素数据的成员函数的对象;部分对象生成模块,从所述源对象生成多个部分对象,作为与所述 源对象中包括的所述一组元素数据的一部分对应的对象;访问请求接收模块,从客户终端接收访问请求信息,该访问请求信 息用于请求在所述多个部分对象中指定的部分对象的编辑权或者阅览 权;访问权管理模块,根据从多个客户终端接收的访问请求信息,向各 客户终端分配每个所述部分对象的编辑权和阅览权;部分对象发送模块,向请求对所述访问请求信息指定的部分对象进 行编辑或阅览的客户终端发送该部分对象的数据,以使得所述客户终端 本地保存所述的数据;编辑信息接收模块,当在获取了所述部分对象的编辑权的客户终端 中编辑本地保持的该部分对象时,从获取所述述编辑权的客户终端接收 表示所述部分对象的编辑内容的编辑信息;源对象更新模块,按照接收的所述编辑信息中所示的编辑内容,更 新所述源对象的相关部分;以及编辑信息发送模块,将表示所述部分对象的编辑内容的编辑信息发 送到获取了所述阅览权的客户终端,从而使得所述编辑内容反映在所述 客户终端本地保持的部分对象的相关部分中。
17.数据编辑程序,所述是在与管理源对象的外部数据管理装置通 过网络连接的装置中执行的计算机程序,该源对象用于操作要被编辑的 一组元素数据,所述计算机程序包括将用于请求编辑权的访问请求信息发送到所述数据管理装置的模 块,所述访问请求信息根据源对象中包括的一组元素数据的一部分,在 所述数据管理装置生成的多个部分对象中指定相应的部分对象;从所述数据管理装置接收被指定的部分对象的数据的模块;保持已接收的所述部分对象的数据的模块;接收用户对保持的部分对象的编辑操作的模块;根据对所述部分对象的编辑操作更新所述部分对象的模块;以及将表示所述部分对象的编辑内容的编辑信息发送到所述数据管理装 置,从而使得所述编辑内容反映在所述数据管理装置的源对象中的模 块。
18.数据阅览程序,所述数据阅览程序是在与管理源对象的外部数 据管理装置通过网络连接的装置中执行的计算机程序,该源对象用于操 作要被编辑的一组元素数据,所述数据阅览程序包括将用于请求阅览权的访问请求信息发送到所述数据管理装置的模 块,所述访问请求信息根据源对象中包括的一组元素数据的一部分,在 所述数据管理装置生成的多个部分对象中指定相应的部分对象;从所述数据管理装置接收所指定的部分对象的数据的模块;保持已接收的部分对象的数据的模块;当与所保持的部分对象相当的、源对象的一部分在所述数据管理装 置中更新时,接收从所述数据管理装置发送的编辑信息以表示所更新的 内容的模块;以及根据所述编辑信息更新所述保持的部分对象的模块。
全文摘要
由多个用户有效地编辑数据文件。从结构化文档文件等各种数据文件生成源对象。从源对象生成多个部分对象。客户终端下载与用户希望编辑或阅览的数据对应的部分对象。当获取了编辑权的客户终端编辑本地部分对象时,将表示编辑内容的编辑信息发送到服务器装置。根据该编辑信息更新源对象。另外,当其他客户终端下载相同的部分对象时,用于反映编辑内容的编辑信息从服务器装置发送到客户终端。
文档编号G06F12/00GK101268458SQ20068003420
公开日2008年9月17日 申请日期2006年9月21日 优先权日2005年9月22日
发明者本桥大辅, 樋浦秀树 申请人:佳思腾软件公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1