CN101057231A - 文档处理装置和文档处理方法 - Google Patents
文档处理装置和文档处理方法 Download PDFInfo
- Publication number
- CN101057231A CN101057231A CNA2005800387225A CN200580038722A CN101057231A CN 101057231 A CN101057231 A CN 101057231A CN A2005800387225 A CNA2005800387225 A CN A2005800387225A CN 200580038722 A CN200580038722 A CN 200580038722A CN 101057231 A CN101057231 A CN 101057231A
- Authority
- CN
- China
- Prior art keywords
- document
- unit
- dom
- tree
- document processing
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Document Processing Apparatus (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明能够对利用标记语言的结构化的数据进行适当的处理。当DOM管理单元(35)读入大型文档时,一旦生成DOM树后,把DOM树所含信息的一部分转移到硬盘等存储装置(17)里。DOM管理单元(35)对生成的源树的存储器消耗量与当前存储器的余量进行比较后,可以判断是否把信息转移到存储装置(17)里。同时,DOM管理单元(35)根据DOM树的存储器消耗量、存储器的余量,存储装置(17)的余量、以及CPU的动作速度等,可以选择把哪种信息储存到存储装置(17)里。DOM管理单元(35)把表示树结构的信息保留在存储器里,把元素名、属性名、元素值和属性值等信息转移到存储装置(17)里。
Description
技术领域
本发明涉及文档处理技术,特别是涉及对以标记语言记述的文档进行处理的文档处理装置及方法。
背景技术
XML作为适合于通过网络等与他人共享数据的形式而受到了瞩目。人们已开发出了用于XML文档的编写、显示和编辑的应用软件(例如,参考专利文献1)。XML文档是基于由文档类型定义等所定义的词汇(标签集)来编写的。
DOM是用于把XML读入到存储器里以由应用程序进行操作的技术,也是通常被广泛使用的一种技术。
专利文献1:特开2001-290804号公报
发明内容
虽然DOM是为应用程序对XML进行操作而提供的先进技术,但是根据把XML全体读入到存储器里来构成对象树的算法,为了对大型XML文件进行处理,必然会消耗大量的存储器空间,这样会给处理XML的***带来很大的风险。
本发明就是鉴于这种状况而产生的,其目的是提供在有限的存储器空间中对较大的XML文件进行处理的技术。
本发明涉及文档处理装置。这种文档处理装置的特征在于包括:DOM生成单元,获取利用标记语言的结构化文档,生成DOM树;和管理单元,把所述DOM树中的一部分信息保留在能够用作处理所述文档的处理***工作区域的存储器里,而把其他的信息转移到与所述存储器不同的存储装置中。
所述管理单元可以根据所述存储器的余量和所述DOM树的信息量来选择向所述存储装置转移的信息。所述管理单元可以用指针代替转移到所述存储装置中的信息而储存到所述DOM树中,该指针指向存储所述信息的所述存储装置的位置。所述管理单元可以把所述文档中所包含的文本节点转移到所述存储装置里。所述管理单元可以对所述文档中所包含的元素或者属性的名称分配识别符,把所述名称和所述识别符对应地关联并储存到表格里,代替所述元素或者属性的名称,可以把所述的识别符储存到所述的DOM树中。
此外,作为本发明的实施方式,以上构成要素的任意组合,以及在方法、装置、***等之间变换本发明的形式等也是有效的。
发明的效果
根据本发明,可以提供对利用标记语言的结构化的数据进行适当处理的技术。
附图说明
图1所示的是与前提技术有关的文档处理装置的构成图;
图2所示的是作为处理对象的XML文档的例子;
图3所示的是把图2所示XML文档映射成HTML描述的表格的例子;
图4(a)所示的是把图2所示的XML文档映射成图3所示的表格时所用的定义文件的例子;
图4(b)所示的是把图2所示的XML文档映射成图3所示的表格时所用的定义文件的例子;
图5所示的是把图2所示的成绩管理词汇描述的XML文档依据图3所示对应关系映射成HTML后所显示的屏幕的例子;
图6所示的是为了用户生成定义文件,定义文件生成单元为用户提示的图形用户界面的例子;
图7所示的是定义文件生成单元生成的其他的屏幕布局的例子;
图8所示的是利用文档处理装置对XML文档进行编辑的屏幕显示的一个例子;
图9所示的是根据文档处理装置编辑的XML文档的其他的例子;
图10所示的是图9所示文档的屏幕显示的例子;
图11所示的是与实施方式有关的文档处理装置的构成图;
图12所示的是与实施方式有关的文档处理装置的一般硬件构成图。
符号说明
12存储器 17存储装置 20文档处理装置
22主控单元 24编辑单元 30DOM单元
32DOM提供单元 34DOM生成单元 35DOM管理单元
36输出单元 40CSS单元 42CSS分析单元
44CSS提供单元 46呈现单元 50HTML单元
52、62控制单元 55、64编辑单元 56、66显示单元
60SVG单元 80VC单元 82映射单元
84定义文件获取单元 86定义文件生成单元
具体实施方式
(前提技术)
图1示出了与前提技术相关的文档处理装置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文档进行显示和编辑的SVG单元60等对于各词汇(标签集)的显示***和编辑***作为插件被安装,以分别在对HTML文档进行编辑时载入HTML单元50,和在对SVG文档进行编辑时载入SVG单元60。如以下将描述的那样,在要对既包括HTML又包括SVG组件的复合文档进行处理时,既载入HTML单元50又载入SVG单元60。
通过实现以上结构,由于用户能够仅选择并安装必要的功能,然后可以增加或删除适当的功能。因此,能够有效利用记录媒介的存储区域(例如硬盘),并在执行程序的时候还能够避免存储器的浪费。此外,由于这一结构有利于性能扩展,因此开发者自己能够以插件的形式处理新的词汇,因而能够促进开发过程;用户也能够通过增加插件而以较低成本轻易地增加功能。
编辑单元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描述的文档进行显示或编辑。这些显示/编辑***以插件的形式实现,各个***包括对文档进行显示的显示单元“画布(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提供了一种框架,通过将以某个词汇描述的文档映射为另一词汇,以通过与被映射的词汇相对应的显示和编辑插件来显示或编辑文档。在本前提技术中,该功能被称为词汇连接(Vocabulary Connection:VC)。定义文件获取单元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)所示的例子中,“生徒の追加”和“生徒の削除”被定义为命令,并分别涉及将节点“生徒”***源树中的操作以及将节点“生徒”从源树中删除的操作。作为模板,描述了诸如“名前”和“国語”的标题显示于表的第一行中,而节点“生徒”的内容显示于第二行及其随后的行中。在显示节点“生徒”内容的模板中,包含“text-of”的项表示允许进行编辑,而包含“value-of”的项表示不允许进行编辑。在这些显示了节点“生徒”内容的行中,在第六列中描述了运算表达式“(src:国語+src:数学+src:理科+src:社会)div 4”。这意味着显示学生成绩的平均值。
图5示出了将图2所示的由成绩管理词汇描述的XML文档利用图3所示的对应关系映射为HTML以使其显示在显示屏上时,显示屏的一个例子。在表90各行中从左至右显示的是各学生的姓名、日语成绩、数学成绩、自然科学成绩、社会科学成绩及其平均值。用户能够在该屏幕上对XML文档进行编辑。例如,当第二行第三列中的值变为“70”时,源树中与该节点相对应的元素值(亦即学生“B”的数学成绩)变为“70”。此时,为了使目的树与源树一致,目的树的相应部分因此而改变,从而使得HTML单元50能够根据改变的目的树来对显示进行更新。因此,学生“B”的数学成绩变为“70”,而平均值相应地变为“55”。
在图5所示的屏幕上,例如“生徒の追加”和“生徒の削除”的命令被显示为菜单,如图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功能而实现。也就是说,例如,如果HTML被用于源和树型结构的布局,则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示出了显示结果。
在对文档进行编辑期间,待显示的菜单可根据光标(キヤリツジ)的位置被切换。也就是说,当光标位于显示SVG文档的区域中时,显示SVG单元60提供的菜单、或用于映射SVG文档的定义文件中定义的命令。当光标位于显示XHTML文档的区域中时,显示HTML单元50提供的菜单、或用于映射XHTML文档的定义文件中定义的命令。因此,可根据编辑位置提供适当的用户界面。
如果在复合文档中不存在与某词汇相符的适当插件或映射定义,则以该词汇描述的部分可以源或树格式显示。在传统实践中,当要打开在某个文档中嵌有其它文档的复合文档时,如果没有安装能够显示该嵌入文档的应用程序,则它们的内容不能显示。但是,根据本前提技术,即使不存在用于显示的应用程序,也可以将由文本数据组成的XML文档显示为源或树格式,从而能够确定其内容。这是基于文本的XML文档或类似文档的一个特征。
以基于文本的语言来描述数据的另一个有益方面例如在于,在同一文档中以其它词汇描述的部分的数据可被该复合文档中以某个词汇描述的另一文档所参考。此外,当在该文档中进行搜索时,嵌入SVG等图片中的字符串也可作为被搜索的对象。
在以某个词汇描述的文档中,可使用属于其它词汇的标签。虽然该XML文档通常并不有效,但只要它结构良好(well-formed),就可作为有效的XML文档而被处理。在这种情况下,被***的属于其它词汇的标签可使用定义文件来进行映射。例如,在XML文档中,可使用诸如“重要”和“最重要”的标签以通过强调的方式来显示这些标签周围的部分,或者可将这些标签按重要性的顺序来排序以进行相应显示。
当用户在图10所示的编辑屏幕上对文档进行编辑时,负责对被编辑的部分进行处理的插件或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本身所负责的区域,然后确定显示区域的大小。然后,显示区域的大小被通报给管理屏幕布局的组件,以请求对布局进行更新。负责屏幕布局的组件一收到该通知便为各个插件重新布置显示区域。因此,被编辑的部分的显示被适当更新,且总体屏幕布局被更新。
(实施方式)
本实施方式提出了如下的方案,当对大型文档进行处理时,不是把文档的全部作为DOM树来保存到存储器里,而是把信息的一部分转移到硬盘等存储装置的虚拟存储区域里以减少存储器的占用。
图11所示的是本实施方式涉及的文档处理装置的构成。本实施方式中的文档处理装置20是在图1所示的前提技术的文档处理装置20的构成的基础上,加上DOM管理单元35及存储装置17而构成的。其他的构成和动作与前提技术是相同的。本实施方式中将以不同于前提技术的点为中心进行说明。
图12所示的是本实施方式涉及的文档处理装置的一般硬件构成。本实施方式的文档处理装置20可以由个人计算机等装置来实现,包括CPU 11、存储器12、用户输入装置14、显示装置15、存储装置17以及把这些装置连接起来的电路13。CPU 11是通用处理器,执行存储在存储装置17等内的文档处理程序。存储器12是CPU 11可以直接访问的存储装置,可以用作利用CPU 11执行的文档处理程序的工作区。一般来讲,存储器12是由DRAM、SDRAM等能够高速读写的存储装置构成的。存储装置17是硬盘、CD-ROM驱动器、DVD驱动器等外部存储装置,一般是由比存储器12低速而且低价的存储装置构成的。CPU 11执行的文档处理程序根据用户输入装置14输入的用户指令将文档进行处理后显示在显示装置15上。
像在前提技术中说明的那样,当文档处理装置20取得XML文档时,通过DOM生成单元34生成DOM树并保存在存储器12里。然后,利用DOM的标准API及作为其扩展的控件(フアセツト:“方面”),对DOM的节点进行变更,以此来编辑文档。DOM树不仅保存文档中描述的文本信息,也保存提供DOM标准API的成员函数、以及为了能够在树中遍历(トラバ-ス)而保存树结构的信息(例如,指向子节点的指针、指向亲节点的指针等),所以一般来讲,数据量要比原来的XML文档的数据量大。当作为编辑对象的XML文档非常大时,在全部文档DOM化后超出了存储器12的容量、或者CPU 11操作所必须的存储器12的量不能得到保证的情况下,DOM管理单元35把DOM树中的一部分信息保留在存储器12里,其他的信息转移到存储装置17里。例如,DOM管理单元35把表示树结构的信息保留在存储器12里,把元素名、属性名、元素值、属性值等信息优先转移到存储装置17的虚拟存储区域里。
当DOM管理单元35把DOM树的数据转移到存储装置17时,代替该数据而把指向存储该数据的存储装置17的位置指针储存到DOM树里。当DOM管理单元35对该数据进行访问时,把该数据的指针取出后,从存储装置17把数据读出并储存到存储器12里。
当DOM管理单元35将大型文档读入时,一旦生成源树后,可以把源树所含信息的一部分转移到硬盘等存储装置17的虚拟存储区域里,在解析中判断是否储存到存储器12里,转移到存储装置17的信息无需在存储器中生成源树,就可以直接转移到存储装置17里。例如,在解析中当文本节点出现时,代替文本节点的内容,只把存储了文本节点的存储装置17内的文件***上的指针保存在存储器12里,可以省略对文本节点的解析。
DOM管理单元35可以通过比较生成源树所使用的存储器和现有存储器的余量,判断是否要向存储装置17转移信息。同时,DOM管理单元35根据DOM树的存储器使用量、存储器12的余量、存储装置17的余量、以及CPU 11等的操作速度等,可以选择把什么信息转移到存储装置17里。首先对储存在DOM树里的数据分配优先顺序,当存储器12的余量低于预定值时,可以从优先顺序低的数据开始将数据顺序转移到存储装置17里。例如,将文本节点设成低的优先顺序,就可以优先地转移到存储装置17里。
当DOM管理单元35从处理***接受了DOM操作时,为了能够在存储器里进行评价Xpath式子和遍历DOM树的处理,表示DOM树结构的信息最好保留在存储器里。这样,可以使访问存储装置17的次数限制到最少,从而可以提高操作速度。DOM树结构可以保存为双方向清单,也可以保存为二分树。在DOM管理单元35作为双方向清单的树结构保存到存储器12里的场合,对于各个节点(例如,父母、接近的兄弟、最大的子女、最小的子女的5个节点),可以事先把指向各个节点的指针保存起来。这样,就可以正确和高速地遍历整个树。
在可以取得定义文档类型的方案等的场合,根据定义的文档类型,可以判断把哪种信息转移到存储装置17。例如,在表现表格的词汇中,在属性“border”存在的场合,由于可以预想到“border”属性在处理***进行布局时要被频繁参考,所以“border”属性的属性值可以保存在存储器12里。同时,在处理的过程中,可以随时对转移到存储装置17的信息进行变更。例如,即使是当初已经转移到存储装置17里的信息,在处理过程需要频繁参考的情况下,也可以改为储存至存储器12。
DOM管理单元35可以把元素名、属性名、属性值、元素值等信息从存储器12转移到存储装置17里。DOM管理单元35可以把显示中的节点的周围节点的信息保留在存储器里,没有被显示节点的元素名、属性名、属性值、元素值等转移到存储装置17里。当用户通过滚屏等方法移动了显示区域时,DOM管理单元35把要显示的区域所含的节点信息从存储装置17读入到存储器12里,这时,已经不显示的节点信息可以从存储器12中废弃掉。
由于元素名、属性名等在对Xpath式子进行评价时有可能被频繁使用,DOM管理单元35可以把文档中所含的元素或者属性的名称以ID、Huffman编码等形式对应并表格化后,保存在存储器12里。DOM管理单元35把分配的识别符代替元素或者属性的名称储存到DOM树里。在相同的元素名、属性名频繁出现的场合,通过以ID、Huffman编码等进行置换,可以大幅减少DOM树的数据量。
DOM管理单元35可以把属性值、元素值等信息转移到作为虚拟存储器而连接在网络上的其他装置的存储装置里。例如,在处理大型文档时,可以准备作为用于转移DOM树的一部分的虚拟存储区域的服务器等,提供虚拟存储区域的服务器可以从文档处理装置20中把DOM树的一部分取出并保存。在这种情况下,DOM的API可以跨越网络在文档处理装置20和提供虚拟存储装置的服务器之间提供通信功能。
这样,根据本实施方式的技术,即使是对大型的文档,也可以高效率、高速地进行处理。同时,可以减少处理文档时存储器的使用量。
以上通过实施方式对本发明进行了说明。本领域技术人员可以理解,这些实施方式只是个例子,这些构成要素、各个处理过程的组合可以形成各种各样的变型例,这些变型例也属于本发明的范围内。
虽然在实施方式中对处理XML文档的例子进行了说明,本实施方式的文档处理装置20对以其他的标记语言(例如,SGML、HTML等)描述的文档也可以进行同样的处理。
产业上利用的可能性
本发明可以利用对利用标记语言的结构化数据进行处理的装置。
Claims (7)
1.文档处理装置,其特征在于,包括:
DOM生成单元,获取使用标记语言的结构化文档,并生成DOM树;和
管理单元,把所述DOM树信息中的一部分保留在处理所述文档的处理***可以直接访问的存储器里,把其他的信息转移到与所述存储器不同的存储装置中。
2.权利要求1所述的文档处理装置,其特征在于,所述管理单元根据所述存储器的余量和所述DOM树的信息量,选择向所述存储装置转移的信息。
3.权利要求1或2所述的文档处理装置,其特征在于,所述管理单元用指针代替转移到所述存储装置的信息储存在所述DOM树中,所述指针指向存储该信息的存储装置的位置。
4.权利要求1至3任一项所述的文档处理装置,其特征在于,所述管理单元把所述文档中所包含的文本节点转移到所述存储装置中。
5.权利要求1至4任一项所述的文档处理装置,其特征在于,所述管理单元对所述文档中所包含的元素或者属性的名称分配识别符,把所述名称和所述识别符对应地关联并储存到表格里,以所述识别符代替所述的元素或者属性的名称储存到所述DOM树中。
6.文档处理方法,其特征在于包括:
获取利用标记语言的结构化文档并生成DOM树的步骤;和
将所述DOM树信息的一部分保留在处理所述文档的处理***可以直接访问的存储器里,而将其他的信息转移到与所述存储器不同的存储装置的步骤。
7.程序,用于在计算机中实现如下功能:
获取利用标记语言的结构化文档并生成DOM树的功能;和
将所述DOM树信息的一部分保留在处理所述文档的处理***可以直接访问的存储器里,而将其他的信息转移到与所述存储器不同的存储装置的功能。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP329630/2004 | 2004-11-12 | ||
JP2004329630 | 2004-11-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101057231A true CN101057231A (zh) | 2007-10-17 |
Family
ID=36336546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2005800387225A Withdrawn CN101057231A (zh) | 2004-11-12 | 2005-11-10 | 文档处理装置和文档处理方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20080005663A1 (zh) |
EP (1) | EP1821221A1 (zh) |
JP (1) | JPWO2006051869A1 (zh) |
CN (1) | CN101057231A (zh) |
WO (1) | WO2006051869A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108763235A (zh) * | 2018-02-13 | 2018-11-06 | 阿里巴巴集团控股有限公司 | 一种文件处理方法、装置及设备 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8499238B2 (en) * | 2007-07-11 | 2013-07-30 | International Business Machines Corporation | Manipulating design models by editing generated reports |
US20090289078A1 (en) * | 2008-05-22 | 2009-11-26 | Scott Melin | Wipes Dispenser With Improved Dispenser Opening |
JP2011076420A (ja) * | 2009-09-30 | 2011-04-14 | Toshiba Corp | 構造化文書検索システム及びプログラム |
WO2011063561A1 (en) * | 2009-11-25 | 2011-06-03 | Hewlett-Packard Development Company, L. P. | Data extraction method, computer program product and system |
CN102340698B (zh) * | 2011-10-12 | 2013-12-11 | 福建新大陆通信科技股份有限公司 | 一种基于svg的机顶盒界面的表现方法 |
JP5687219B2 (ja) * | 2012-01-20 | 2015-03-18 | 日本電信電話株式会社 | データ検索システム、データ検索方法及びデータ検索プログラム |
US10114804B2 (en) * | 2013-01-18 | 2018-10-30 | International Business Machines Corporation | Representation of an element in a page via an identifier |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS581242A (ja) * | 1981-06-27 | 1983-01-06 | Fujitsu Ltd | 木構造情報記憶制御方式 |
JP2596397B2 (ja) * | 1994-12-29 | 1997-04-02 | 日本電気株式会社 | 木構造データ格納方式 |
US6356902B1 (en) * | 1998-07-28 | 2002-03-12 | Matsushita Electric Industrial Co., Ltd. | Method and system for storage and retrieval of multimedia objects |
US7321900B1 (en) * | 2001-06-15 | 2008-01-22 | Oracle International Corporation | Reducing memory requirements needed to represent XML entities |
JP3984129B2 (ja) * | 2001-09-10 | 2007-10-03 | 富士通株式会社 | 構造化文書処理システム |
US7210097B1 (en) * | 2002-05-22 | 2007-04-24 | Pitney Bowes Inc. | Method for loading large XML documents on demand |
US7213041B2 (en) * | 2004-10-05 | 2007-05-01 | Unisys Corporation | Saving and restoring an interlocking trees datastore |
-
2005
- 2005-11-10 WO PCT/JP2005/020633 patent/WO2006051869A1/ja active Application Filing
- 2005-11-10 EP EP05806111A patent/EP1821221A1/en not_active Withdrawn
- 2005-11-10 CN CNA2005800387225A patent/CN101057231A/zh not_active Withdrawn
- 2005-11-10 US US11/667,691 patent/US20080005663A1/en not_active Abandoned
- 2005-11-10 JP JP2006544956A patent/JPWO2006051869A1/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108763235A (zh) * | 2018-02-13 | 2018-11-06 | 阿里巴巴集团控股有限公司 | 一种文件处理方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
US20080005663A1 (en) | 2008-01-03 |
JPWO2006051869A1 (ja) | 2008-05-29 |
WO2006051869A1 (ja) | 2006-05-18 |
EP1821221A1 (en) | 2007-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101057231A (zh) | 文档处理装置和文档处理方法 | |
US20100107048A1 (en) | Document processor and document processing method | |
US20090021767A1 (en) | Document processing device | |
EP1821219A1 (en) | Document processing device and document processing method | |
US20100100807A1 (en) | Data processing device, and data processing method | |
CN1950817A (zh) | 文档处理装置和文档处理方法 | |
CN1977259A (zh) | 文档处理装置和文档处理方法 | |
CN1947115A (zh) | 文档处理装置和文档处理方法 | |
CN1977260A (zh) | 文档处理装置和文档处理方法 | |
JP4566196B2 (ja) | 文書処理方法および装置 | |
CN101057232A (zh) | 文档处理装置和文档处理方法 | |
JP4627530B2 (ja) | 文書処理方法および装置 | |
EP1821220A1 (en) | Data processing device, document processing device, and document processing method | |
JPWO2007052680A1 (ja) | 文書処理装置及び文書処理方法 | |
WO2007105364A1 (ja) | 文書処理装置及び文書処理方法 | |
JPWO2006051717A1 (ja) | 文書処理装置及び文書処理方法 | |
US20090077369A1 (en) | Data Processing Device And Data Processing Method | |
US20070240036A1 (en) | Document Processing Device and Document Processing Method | |
JP4719743B2 (ja) | グラフ処理装置 | |
EP1743254A1 (en) | Processing data and documents that use a markup language | |
JP2007532986A (ja) | 複数のマークアップ表現における文書処理 | |
WO2006051718A1 (ja) | 文書処理装置及び文書処理方法 | |
US20090094509A1 (en) | Document processing device, and document processing method | |
JP2008257277A (ja) | 文書処理装置、方法、及びプログラム | |
JP2006139623A (ja) | 文書処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C04 | Withdrawal of patent application after publication (patent law 2001) | ||
WW01 | Invention patent application withdrawn after publication |