[go: up one dir, main page]

CN101203848A - Document processing apparatus and document processing method - Google Patents

Document processing apparatus and document processing method Download PDF

Info

Publication number
CN101203848A
CN101203848A CNA2006800220522A CN200680022052A CN101203848A CN 101203848 A CN101203848 A CN 101203848A CN A2006800220522 A CNA2006800220522 A CN A2006800220522A CN 200680022052 A CN200680022052 A CN 200680022052A CN 101203848 A CN101203848 A CN 101203848A
Authority
CN
China
Prior art keywords
document
data
processing system
processing
unit
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
Application number
CNA2006800220522A
Other languages
Chinese (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.)
JustSystems Corp
Original Assignee
JustSystems Corp
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 JustSystems Corp filed Critical JustSystems Corp
Publication of CN101203848A publication Critical patent/CN101203848A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Document Processing Apparatus (AREA)

Abstract

The present invention provides techniques for appropriately processing documents structured using a markup language. The view template (78) operates with data in the document to provide a predetermined function. A prompting unit (72) prompts the user for available view templates (78). A receiving unit (74) receives an indication from a user to insert a view template (78) into a document. After the receiving unit (74) receives an instruction to insert the view template (78) into the document, the editing unit (76) inserts a component element (tag) for starting the view template at a position in the document where the instruction is inserted. The editing unit (76) also describes parameters and the like required for the operation of the view template in the document.

Description

文档处理装置和文档处理方法 Document processing device and document processing method

技术领域technical field

本发明涉及文档处理技术,特别涉及处理由标记语言描述的文档的文档处理装置和方法。The present invention relates to document processing technology, in particular to a document processing device and method for processing documents described by markup language.

背景技术Background technique

近年来,因特网的使用技术取得了令人瞩目的进步,使得我们可以访问世界上各种各样的信息。以前,以HTML描述的基于文本的网页是主流。而现在,基础结构在进步,在网页上张贴图像、音乐和动画等丰富的表现形式已经成为主流。In recent years, technology using the Internet has made remarkable progress, allowing us to access all kinds of information in the world. Previously, text-based web pages described in HTML were the mainstream. Now, however, infrastructure is advancing, and posting rich forms of expression such as images, music, and animations on web pages has become mainstream.

而且,除了单纯地在网页中发送信息外,还可以通过在网页上描述脚本等,实现各种各样的功能。例如,通过用VB脚本语言控制作为ActiveX控件而开发的应用程序,即使在网页上也可以使各种各样应用程序操作。Furthermore, in addition to simply transmitting information on a web page, various functions can be realized by describing scripts and the like on the web page. For example, by controlling an application developed as an ActiveX control with the VB script language, various applications can be operated even on a web page.

发明内容Contents of the invention

发明要解决的课题The problem to be solved by the invention

但是,由于ActiveX控件本身的内部被黑盒子化,因此无法实现使ActiveX控件之间相互直接关联而操作那样的应用。本发明为了提供更柔性的、具有高扩展性和通用性的应用程序的开发环境,想到了新的编程或者脚本的技术思想。However, since the inside of the ActiveX control itself is formed into a black box, it is impossible to implement an application in which the ActiveX controls are directly linked to each other and operated. In order to provide a more flexible, highly expandable and versatile application program development environment, the present invention conceives of a new technical idea of programming or scripting.

本发明是鉴于这种状况而做出的,其目的在于提供一种对由标记语言构造的数据进行适当处理的技术。The present invention has been made in view of such a situation, and an object of the present invention is to provide a technique for appropriately processing data structured in a markup language.

解决课题的方案Solution to the problem

为了解决上述课题,本发明的实施方式的文档处理装置包括:文档获取单元,获取由预定的标签集描述的文档;处理系统,处理所述文档的构成元素所属的标签集,其中,当所述文档中所含的构成元素具有指向包含于所述文档中的其他数据的指针信息时,所述处理系统参照所述指针信息指向的所述数据进行操作,所述处理系统在处理所述构成元素所属的标签集时,所述其他数据被用作参考数据。In order to solve the above-mentioned problems, the document processing device according to the embodiment of the present invention includes: a document acquisition unit, which acquires a document described by a predetermined tag set; a processing system, which processes the tag set to which the constituent elements of the document belong, wherein, when the When a constituent element included in a document has pointer information pointing to other data contained in the document, the processing system operates referring to the data pointed to by the pointer information, and the processing system processes the constituent element The other data are used as reference data when belonging to the tag set.

上述指针信息可以用xpath方式描述。上述指针信息可以是明确地定义的概念信息。上述文档处理装置还可以包括分析单元,当上述指针信息作为上述概念信息被提供时,根据上述概念信息确定上述指针信息所指示的数据。The above pointer information can be described by xpath. The above pointer information may be clearly defined concept information. The above-mentioned document processing apparatus may further include an analyzing unit, when the above-mentioned pointer information is provided as the above-mentioned conceptual information, determines the data indicated by the above-mentioned pointer information according to the above-mentioned conceptual information.

当多个构成元素含有指向同一数据源的指针信息时,处理各个构成元素所属的标签集的多个处理系统可以把上述同一数据源作为共享存储体使用。When multiple constituent elements contain pointer information pointing to the same data source, multiple processing systems that process the tag sets to which each constituent element belongs can use the same data source as a shared memory.

上述处理系统还可以包括还包括管理单元,所述管理单元基于所述文档创建文档对象模型数据,从而对所述文档进行管理。所述处理系统通过所述管理单元提供的接口参考所述指针信息所指示的数据。在所述文档对象模型数据被改变时,所述管理单元将该改变通知所述处理系统,以及当从所述管理单元接收到所述文档对象模型数据被改变的通知后,所述处理系统根据所述修改执行处理。The processing system above may further include a management unit, the management unit creates document object model data based on the document, so as to manage the document. The processing system refers to the data indicated by the pointer information through the interface provided by the management unit. When the document object model data is changed, the management unit notifies the processing system of the change, and upon receiving the notification that the document object model data is changed from the management unit, the processing system according to The modified execution process.

从所述管理单元接收所述文档对象模型数据已被改变的通知的目标方,是以明确地定义的概念信息的形式规定的。此外,所述文档处理装置还包括分析单元,当接收以概念信息的形式规定的通知的所述目标方从所述管理单元接收到所述对象模型数据已被改变的通知时,所述分析单元根据所述概念信息识别实际要被通知的目标方。A destination receiving notification from the management unit that the document object model data has been changed is specified in the form of clearly defined concept information. In addition, the document processing apparatus further includes an analysis unit that, when the target party receiving the notification specified in the form of concept information, receives a notification from the management unit that the object model data has been changed, the analysis unit A target party to be actually notified is identified based on the conceptual information.

上述构成元素还可以包括上述处理系统的操作所需的参数信息。上述参数信息可以包含与所述指针信息所指向的数据有关的明确地定义的语义类型信息。上述参数信息是被明确地定义的概念信息,当上述参数信息包含有表示被明确地定义的语义类型信息时,上述分析单元可以参照上述语义类型信息,从上述概念信息中确定上述指针信息所指向的数据。The above-mentioned constituent elements may also include parameter information necessary for the operation of the above-mentioned processing system. The above parameter information may include clearly defined semantic type information related to the data pointed to by the pointer information. The above-mentioned parameter information is clearly defined conceptual information. When the above-mentioned parameter information contains clearly defined semantic type information, the above-mentioned analysis unit can refer to the above-mentioned semantic type information to determine from the above-mentioned concept information that the above-mentioned pointer information points to The data.

本发明的另一个实施方式是文档处理装置。该装置包括:接收单元,接收将处理模块附加到文档中的指示,所述处理模块使用文档中的数据来体现预定功能;以及编辑单元,在接收到所述指示时,向所述文档插入包含有指针信息的构成元素,所述指针信息指向所述处理模块使用的数据。Another embodiment of the present invention is a document processing device. The device includes: a receiving unit, configured to receive an instruction to attach a processing module to a document, the processing module using data in the document to embody a predetermined function; and an editing unit, when receiving the instruction, to insert into the document a There is a constituent element of pointer information pointing to data used by the processing module.

该装置还可以包括:启动单元,其启动处理模块,所述处理模块处理插入到所述文档中的所述构成元素。所述编辑单元可以向文档中插入所述处理模块的操作所需的参数。The apparatus may further include: an activation unit that activates a processing module that processes the constituent elements inserted into the document. The editing unit may insert parameters necessary for the operation of the processing module into the document.

本发明的又一个实施方式涉及文档处理装置。该文档处理装置包括:文档获取单元,获取由预定的标签集描述的文档;第一处理系统,处理所述文档的构成元素所属的标签集;第二处理系统,使用文档中的数据提供预定的功能,其中,当接收到将处理所述文档的构成元素的处理系统由所述第一处理系统切换为所述第二处理系统的指示时,所述第二处理系统参照在其中记录有用于识别要使用的数据的信息的文件,来识别所述要使用的数据,并使用所识别的数据提供所述预定的功能。Still another embodiment of the present invention relates to a document processing device. The document processing device includes: a document acquisition unit, which acquires a document described by a predetermined tag set; a first processing system, which processes the tag set to which the constituent elements of the document belong; a second processing system, which uses data in the document to provide a predetermined function, wherein, when receiving an instruction to switch the processing system processing the constituent elements of the document from the first processing system to the second processing system, the second processing system refers to the a file of information on data to be used, to identify the data to be used, and to provide the predetermined function using the identified data.

所述第二处理系统在所述文件不存在的情况下,可以从用户接收所述用于确定所述使用数据的信息,创建所述文件。The second processing system may receive the information for determining the usage data from a user and create the file if the file does not exist.

此外,应该理解,通过对本发明的方法、装置和系统等进行修改而实现的、对上述组件或表现形式的任意组合,与本发明的实施方式是等同的。In addition, it should be understood that any combination of the above-mentioned components or expression forms achieved by modifying the method, device, system, etc. of the present invention is equivalent to the embodiment of the present invention.

发明的效果The effect of the invention

根据本发明,可提供适当地处理利用标记语言构造的数据的技术。According to the present invention, it is possible to provide a technique for appropriately processing data structured using a markup language.

附图说明Description of drawings

图1是与前提技术相关的文档处理装置的构成示意图;FIG. 1 is a schematic diagram of the composition of a document processing device related to the premise technology;

图2示出了由文档处理装置处理的XML文档的实施例;Figure 2 shows an embodiment of an XML document processed by a document processing device;

图3示例性地示出了将图2所示的XML文档映射为由HTML描述的表;Fig. 3 exemplarily shows that the XML document shown in Fig. 2 is mapped to a table described by HTML;

图4(a)示出了用于将图2所示的XML文档映射为图3所示的表的定义文件的实施例;Fig. 4 (a) shows the embodiment that is used for mapping the XML document shown in Fig. 2 to the definition file of the table shown in Fig. 3;

图4(b)示出了用于将图2所示的XML文档映射为图3所示的表的定义文件的实施例;Fig. 4 (b) shows the embodiment that is used for mapping the XML document shown in Fig. 2 to the definition file of the table shown in Fig. 3;

图5示出了通过图3所示的对应关系将图2所示的XML文档映射为HTML并显示的显示屏的实施例;Fig. 5 shows the embodiment of the display screen that the XML document shown in Fig. 2 is mapped to HTML and displayed through the correspondence shown in Fig. 3;

图6示出了为使用户创建定义文件而将定义文件生成单元提供给用户的图形用户界面;Fig. 6 shows a graphical user interface that provides a definition file generation unit to a user for the user to create a definition file;

图7示出了利用定义文件生成单元创建的屏幕布局的另一个实施例;Fig. 7 shows another embodiment of the screen layout created by the definition file generating unit;

图8示出了文档处理装置提供的XML文档的编辑屏幕的实施例;FIG. 8 shows an embodiment of an editing screen of an XML document provided by a document processing device;

图9示出了利用文档处理装置编辑的XML文档的另实施例;Fig. 9 shows another embodiment of an XML document edited by a document processing device;

图10示出了显示图9所示文档的屏幕显示的实施例;Figure 10 shows an embodiment of a screen display displaying the document shown in Figure 9;

图11(a)示出了文档处理系统的基本构成;Figure 11(a) shows the basic composition of the document processing system;

图11(b)示出了文档处理系统的总体方框图;Figure 11(b) shows a general block diagram of the document processing system;

图11(c)示出了文档处理系统的总体方框图;Figure 11(c) shows an overall block diagram of the document processing system;

图12示出了文档管理单元的细节;Figure 12 shows the details of the document management unit;

图13示出了词汇连接子系统的细节;Figure 13 shows the details of the vocabulary connection subsystem;

图14示出了程序调用单元与其它组件之间的关系的细节;Figure 14 shows the details of the relationship between the program call unit and other components;

图15示出了载入到程序调用单元的应用程序服务的结构细节;Figure 15 shows the structural details of the application program service loaded into the program call unit;

图16示出了核心组件的细节;Figure 16 shows the details of the core components;

图17示出了文档管理单元的细节;Figure 17 shows the details of the document management unit;

图18示出了撤消框架和撤消命令的细节;Figure 18 shows the details of the undo frame and the undo command;

图19示出了在文档处理系统中载入文档的操作;Figure 19 shows the operation of loading a document in the document processing system;

图20示出了文档及其表现的实施例;Figure 20 shows an embodiment of a document and its presentation;

图21示出了模型和控制器的关系;Figure 21 shows the relationship between models and controllers;

图22示出了插件子系统、词汇连接与连接器的细节;Figure 22 shows the details of the plug-in subsystem, vocabulary connections and connectors;

图23示出了VCD文件的例子;Figure 23 shows an example of a VCD file;

图24示出了用于将复合文档载入到文档处理系统中的操作;Figure 24 illustrates operations for loading a compound document into a document processing system;

图25示出了用于将复合文档载入到文档处理系统中的操作;Figure 25 illustrates operations for loading a compound document into a document processing system;

图26示出了用于将复合文档载入到文档处理系统中的操作;Figure 26 illustrates operations for loading a compound document into a document processing system;

图27示出了用于将复合文档载入到文档处理系统中的操作;Figure 27 illustrates operations for loading a compound document into a document processing system;

图28示出了用于将复合文档载入到文档处理系统中的操作;Figure 28 illustrates operations for loading a compound document into a document processing system;

图29示出了命令流;Figure 29 shows the command flow;

图30(a)、(b)和(c)示出了处理对象的XML文档的数据结构的例子;Figure 30 (a), (b) and (c) have shown the example of the data structure of the XML document of processing target;

图31(a)和(b)示出了指针信息的实施例;Figure 31 (a) and (b) have shown the embodiment of pointer information;

图32(a)和(b)图示说明了发出DOM被改变的通知的机制;Figures 32(a) and (b) illustrate the mechanism for issuing notifications that the DOM has changed;

图33示出了根据本发明第一实施方式的文档处理装置的构成;FIG. 33 shows the composition of the document processing apparatus according to the first embodiment of the present invention;

图34示出了文档的编辑屏幕;Fig. 34 shows an editing screen of a document;

图35示出了用于调度的视图模板处于启动状态的编辑屏幕;Figure 35 shows the edit screen with the View Template for Scheduling activated;

图36示出了根据第二实施方式的文档处理装置的构成;FIG. 36 shows the configuration of a document processing apparatus according to the second embodiment;

图37示出了插入有AVC组件的属性的XML文档的实施例;Figure 37 shows an embodiment of an XML document inserted with attributes of an AVC component;

图38示出了根据本发明第二实施方式的文档处理方法的处理操作;Fig. 38 shows the processing operation of the document processing method according to the second embodiment of the present invention;

图39示出了通过AVC组件显示的屏幕的实施例;FIG. 39 shows an embodiment of a screen displayed by an AVC component;

图40示出了根据本发明第三实施方式的文档处理装置的构成;FIG. 40 shows the composition of a document processing apparatus according to a third embodiment of the present invention;

图41示出了根据本发明第三实施方式的文档处理方法的处理操作。FIG. 41 shows processing operations of the document processing method according to the third embodiment of the present invention.

符号说明Symbol Description

20文档处理装置        22主控单元       24编辑单元20 Document processing device 22 Main control unit 24 Editing unit

27概念分析引擎        28通知单元       30DOM单元27 Concept Analysis Engine 28 Notification Unit 30 DOM Unit

32DOM提供单元         34DOM生成单元    36输出单元32 DOM providing unit 34 DOM generating unit 36 Output unit

40CSS单元             42CSS分析单元    44CSS提供单元40CSS unit 42CSS analysis unit 44CSS provision unit

46呈现单元            50HTML单元       52、62控制单元46 presentation units 50 HTML units 52, 62 control units

54、64编辑单元        56、66显示单元   60SVG单元54, 64 editing unit 56, 66 display unit 60SVG unit

70视图模板控制单元    71获取单元       72提示单元70 view template control unit 71 acquisition unit 72 prompt unit

74接收单元            76编辑单元       78视图模板74 receiving unit 76 editing unit 78 view template

80VC单元              82映射单元       84定义文件获取单元80VC unit 82 Mapping unit 84 Definition file acquisition unit

86定义文件生成单元    100文档处理装置86 Definition file generation unit 100 Document processing device

3000AVC控制单元               3002AVC属性设定单元3000AVC control unit 3002AVC attribute setting unit

3004AVC属性生成单元           3006定义文件生成单元3004 AVC attribute generating unit 3006 Definition file generating unit

3010用于显示表的AVC组件       3020用于显示图的AVC组件3010 AVC component for displaying tables 3020 AVC component for displaying graphs

3030用于显示UI部件的AVC组件   3040用于显示树的AVC组件3030 AVC components for displaying UI components 3040 AVC components for displaying trees

具体实施方式Detailed ways

(前提技术)(prerequisite technology)

图1示出了与前提技术相关的文档处理装置20的结构。文档处理装置20对结构化的文档进行处理,该文档中的数据被分为具有分级结构的多个构成元素。在本前提技术中以对作为一种结构化文档的XML文档进行处理为例来说明。文档处理装置20包括主控单元22、编辑单元24、DOM(文档对象模块)单元30、CSS(层叠样式表)单元40、HTML(超文本标记语言)单元50、SVG(可缩放矢量图形)单元60以及作为变换单元一个示例的VC(词汇连接)单元80。在硬件组件方面,这些单元结构可由任意计算机的CPU、存储器、载入存储器中的程序等来实现。这里,描述了由它们的协作而实现的功能模块。因此,本领域技术人员能够理解,这些功能模块可仅通过硬件的方式、仅通过软件的方式或通过二者相结合的方式等以多种形式来实现。FIG. 1 shows the structure of a document processing apparatus 20 related to the premise technology. The document processing device 20 processes a structured document in which data is divided into a plurality of constituent elements having a hierarchical structure. In this premise technology, the processing of an XML document as a structured document is taken as an example for illustration. The document processing device 20 includes a main control unit 22, an editing unit 24, a DOM (Document Object Module) unit 30, a CSS (Cascading Style Sheet) unit 40, an HTML (Hypertext Markup Language) unit 50, and an SVG (Scalable Vector Graphics) unit 60 and a VC (Vocabulary Connection) unit 80 as an example of a transformation unit. In terms of hardware components, these unit structures can be realized by a CPU, a memory, a program loaded into the memory, etc. of any computer. Here, the functional modules realized by their cooperation are described. Therefore, those skilled in the art can understand that these functional modules can be implemented in various forms such as hardware only, software only, or a combination of the two.

主控单元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。The main control unit 22 provides the loading of plug-ins or provides a framework for executing commands. Editing unit 24 provides a framework for editing XML documents. The document display and editing functions in the document processing device 20 are realized through plug-ins, and the necessary plug-ins are loaded through the main control unit 22 or the editing unit 24 according to the types of documents to be processed. The main control unit 22 or the editing unit 24 determines which or which vocabulary describes the content of the XML document to be processed by referring to the namespace of the XML document to be processed, and loads the corresponding display and Editing plug-in to perform display and editing. For example, in the document processing device 20, an HTML unit 50 for displaying and editing an HTML document, an SVG unit 60 for displaying and editing an SVG document, and the like are realized as a display system and editing system for each vocabulary (tag set). A plug-in of the system to load the HTML unit 50 when editing an HTML document, and load the SVG unit 60 when editing an SVG document. As will be described below, when a compound document including both HTML and SVG components is to be processed, both the HTML unit 50 and the SVG unit 60 are loaded.

通过实现以上结构,由于用户能够仅选择并安装必要的功能,然后可以增加或删除适当的功能,因此,能够有效利用记录媒介的存储区域(例如硬盘),并且在执行程序的时候还能够避免存储器的浪费。此外,由于这一结构有利于性能扩展,因此开发者自己能够以插件的形式处理新的词汇,因而能够促进开发过程;用户也能够通过增加插件而以较低成本容易地增加功能。By realizing the above structure, since the user can select and install only necessary functions, and then add or delete appropriate functions, the storage area of the recording medium (such as a hard disk) can be effectively used, and the memory area can be avoided when the program is executed. waste. In addition, since this structure is conducive to performance expansion, developers themselves can process new vocabularies in the form of plug-ins, thereby facilitating the development process; users can also easily add functions at a low cost by adding plug-ins.

编辑单元24通过用户接口从用户处接收编辑指令的事件。编辑单元24将该事件通知适当的插件等,并对包括事件的重做(redo)以及撤消(undo)等的处理进行控制。The editing unit 24 receives an event of an editing instruction from the user through the user interface. The editing unit 24 notifies an appropriate plug-in or the like of the event, and controls processing including redo (redo) and undo (undo) of the event.

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树。The DOM unit 30 includes a DOM providing unit 32 , a DOM generating unit 34 , and an output unit 36 . The DOM element 30 implements functions conforming to the Document Object Model (DOM) defined to provide access methods for manipulating data in the form of an XML document. The DOM providing unit 32 is an implementation of a DOM that satisfies the interface defined by the editing unit 24 . The DOM generation unit 34 creates a DOM tree from the XML document. As will be described below, when the XML document to be processed is mapped to other vocabularies by the VC unit 80, a source tree corresponding to the XML document in the mapping source and an object tree corresponding to the XML document in the mapping destination are created. Tree. For example, at the end of editing, the output unit 36 outputs a DOM tree as an XML document.

CSS单元40提供与CSS相符的显示功能,并包括CSS分析单元42、CSS提供单元44以及呈现单元46。CSS分析单元42具有用于分析CSS语法的分析功能。CSS提供单元44是CSS对象的实现,并对DOM树执行CSS的层叠处理。呈现单元46是CSS的呈现引擎,并用来显示利用CSS设置的以诸如HTML等的词汇描述的文档。The CSS unit 40 provides a display function conforming to CSS, and includes a CSS analysis unit 42 , a CSS providing unit 44 and a presentation unit 46 . The CSS analysis unit 42 has an analysis function for analyzing CSS syntax. The CSS providing unit 44 is an implementation of a CSS object, and performs cascading processing of CSS on a DOM tree. The rendering unit 46 is a rendering engine of CSS, and is used to display a document described in a vocabulary such as HTML set with CSS.

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文档进行编辑的用户界面。The HTML unit 50 displays or edits documents described in HTML. The SVG unit 60 displays or edits documents described in SVG. These display/editing systems are implemented in the form of plug-ins, and each system includes a display unit (also referred to herein as "Canvas)" 56, 66 for displaying documents, and a control unit for sending and receiving events including editing commands. (also referred to herein as an "Editlet") 52, 62, and an editing unit (also referred to herein as a "zone)" 54, 64 that edits the DOM upon receipt of an editing command. When the control unit 52 or 62 receives an editing command for the DOM tree from an external source, the editing unit 54 or 64 modifies the DOM tree and the display unit 56 or 66 updates the display. These units have a structure similar to the frame called MVC (Model-View-Controllers, Model-View-Controller), usually, the display units 56 and 66 correspond to "View (View)", and the control units 52 and 62 corresponds to "Controller", and the editing units 54 and 64 and DOM entities correspond to "Model". In the document processing apparatus 20 of the present premise technology, not only the XML document can be edited in the tree view display format, but also the editing can be completed according to the corresponding vocabulary. For example, the HTML unit 50 provides a user interface that can be used to edit HTML documents in a way similar to a Word processor, and the SVG unit 60 also provides a user interface that can be used to edit SVG documents in a way similar to an image drawing tool. The user interface for editing documents.

VC单元80包括映射单元82、定义文件获取单元84以及定义文件生成单元86。VC单元80能够将以某词汇描述的文档映射为另一给定词汇,从而提供了一种能够通过与被映射的词汇相对应的显示或编辑插件来显示或编辑文档的框架。在本前提技术中,该功能被称为VC(Vocabulary Connection,词汇连接)。定义文件获取单元84获取描述了映射定义的脚本文件。该定义文件逐个节点地描述了节点间的对应(连接)。此时,可规定各节点的元素值或属性值是否可以编辑。也可描述使用了节点的元素值或属性值的运算表达式。这些功能将在稍后进行描述。映射单元82使得DOM生成单元34通过参考VC定义文件获取单元84已经获取的脚本文件来创建目的树,以管理源树与目的树之间的对应关系。定义文件生成单元86为用户提供图形用户界面,以创建定义文件。The VC unit 80 includes a mapping unit 82 , a definition file acquisition unit 84 , and a definition file generation unit 86 . The VC unit 80 can map a document described with a certain vocabulary to another given vocabulary, thereby providing a framework capable of displaying or editing a document through a display or editing plug-in corresponding to the mapped vocabulary. In this premise technology, this function is called VC (Vocabulary Connection, vocabulary connection). The definition file acquisition unit 84 acquires a script file describing a mapping definition. This definition file describes the correspondence (connection) between nodes on a node-by-node basis. At this time, it can be specified whether the element value or attribute value of each node can be edited. Operation expressions using element values or attribute values of nodes can also be described. These functions will be described later. The mapping unit 82 causes the DOM generation unit 34 to create the destination tree by referring to the script file that the VC definition file acquisition unit 84 has acquired, so as to manage the correspondence between the source tree and the destination tree. The definition file generation unit 86 provides a graphical user interface for the user to create a definition file.

VC单元80对源树与目的树之间的连接进行监控。当VC单元80通过由负责显示的插件提供的用户接口从用户处接收编辑指令时,它首先修改源树的相关节点。因此,DOM单元30将发出指示源树已经被修改的变化事件。然后,VC单元80接收该变化事件,并修改目的树中对应于被修改的节点的节点,以使得目的树与源树的修改同步。当显示/编辑目的树的插件(例如HTML单元50)接收了指示目的树已经被修改的变化事件时,该插件通过参考被修改的目的树而对显示进行更新。通过执行将词汇转换为另一主要词汇的上述结构,即使是以少数用户使用的局部词汇来描述文档,也能够显示该文档,并为其提供编辑环境。The VC unit 80 monitors the connection between the source tree and the destination tree. When the VC unit 80 receives editing instructions from the user through the user interface provided by the plug-in responsible for display, it first modifies the relevant nodes of the source tree. Accordingly, DOM unit 30 will emit a change event indicating that the source tree has been modified. Then, the VC unit 80 receives the change event, and modifies the node corresponding to the modified node in the destination tree, so that the modification of the destination tree and the source tree are synchronized. When a plug-in for displaying/editing an object tree (such as the HTML unit 50) receives a change event indicating that the object tree has been modified, the plug-in updates the display by referring to the modified object tree. By performing the above-described structure of converting a vocabulary into another main vocabulary, even if a document is described with a partial vocabulary used by a small number of users, the document can be displayed and an editing environment provided therefor.

以下对文档处理装置20显示或编辑文档的操作进行描述。当文档处理装置20载入待处理的文档时,DOM生成单元34从XML文档创建DOM树。主控单元22或编辑单元24通过参考待处理的XML文档的命名空间来对描述XML文档的词汇进行判别。如果与词汇相对应的插件安装在文档处理装置20中,则该插件被载入以显示/编辑文档。另一方面,如果插件并未安装在其中,则进行检查以确认是否存在映射的定义文件。如果存在定义文件,则定义文件获取单元84获取该定义文件,并根据定义创建目的树,以使得能够通过与要被映射的词汇相对应的插件来显示/编辑文档。如果该文档是包含多个词汇的复合文档,如后面所述,则通过与各词汇相对应的插件来显示/编辑该文档的相关部分。如果不存在定义文件,则显示文档的源或树型结构,并在显示屏中进行编辑。The operation of displaying or editing a document by the document processing apparatus 20 will be described below. When the document processing apparatus 20 loads a document to be processed, the DOM generation unit 34 creates a DOM tree from the XML document. The main control unit 22 or the editing unit 24 discriminates the vocabulary describing the XML document by referring to the namespace of the XML document to be processed. If a plug-in corresponding to a vocabulary is installed in the document processing apparatus 20, the plug-in is loaded to display/edit the document. On the other hand, if the plugin is not installed there, a check is made to see if there is a mapped definition file. If there is a definition file, the definition file acquisition unit 84 acquires the definition file, and creates a purpose tree according to the definition so that a document can be displayed/edited by a plug-in corresponding to a vocabulary to be mapped. If the document is a compound document including a plurality of vocabularies, as described later, the relevant part of the document is displayed/edited by a plug-in corresponding to each vocabulary. If no definition file exists, the source or tree structure of the document is shown and edited in the display.

图2示出了作为处理对象的XML文档的例子。该XML文档用于管理学生的成绩数据。作为XML文档的上部节点的构成元素“成绩”包括:在“成绩”下方为各个学生设置的多个元素“生徒”。构成元素“生徒”具有属性值“名前”,以及子元素“国語”(日语)、“数学”、“理科”以及“社会”(社会科学)。属性值“名前”存储学生的姓名。构成元素“国語”、“数学”、“理科”和“社会”分别存储日语、数学、自然科学和社会科学的成绩。例如,姓名为“A”的学生的成绩是:日语为“90”、数学为“50”、自然科学为“75”以及社会科学为“60”。下文中,该文档中使用的词汇(标签集)被称作“成绩管理词汇”。Fig. 2 shows an example of an XML document as a processing object. This XML document is used to manage student grade data. The constituent element "grade" which is the upper node of the XML document includes a plurality of elements "student" set for each student under "grade". The constituent element "Shengtu" has an attribute value "Namae", and sub-elements "National Language" (Japanese), "Mathematics", "Science", and "Society" (Social Science). The attribute value "first name" stores the student's first and last name. The constituent elements "national language", "mathematics", "science" and "society" respectively store grades of Japanese, mathematics, natural science and social science. For example, the grades of a student named "A" are: "90" in Japanese, "50" in mathematics, "75" in natural science, and "60" in social science. Hereinafter, the vocabulary (label set) used in this document is referred to as "score management vocabulary".

由于本前提技术的文档处理装置20不具有与成绩管理词汇的显示和/或编辑相对应的插件,因此,将使用以上描述的VC功能,而不使用源显示和树显示的其它显示方法来显示该文档。也就是说,通过准备定义文件,使得成绩管理词汇可映射为已具有插件的另一词汇,例如HTML或SVG。下面将要进行的说明是在假设已经具备了定义文件的情况下进行的,不过对于用户本身用以创建定义文件所必需的用户界面将在后面描述。Since the document processing device 20 of the present premise technology does not have a plug-in corresponding to the display and/or editing of the performance management vocabulary, it will be displayed using the VC function described above without using other display methods of source display and tree display the document. That is, by preparing a definition file, the grade management vocabulary can be mapped to another vocabulary that already has a plug-in, such as HTML or SVG. The following description is based on the assumption that the definition file already exists, but the user interface necessary for the user to create the definition file will be described later.

图3示出了将图2中所示的XML文档映射为以HTML描述的表的例子。在图3所示的例子中,使以成绩管理词汇描述的“生徒”节点与以HTML描述的表(“TABLE”节点)的行(“TR”节点)相对应。各行的第一列与属性值“名前”相对应,第二列与“国語”节点的元素值相对应,第三列与“数学”节点的元素值相对应,第四列与“理科”节点的元素值相对应,而第五列与“社会”节点的元素值相对应。因此,图2所示的XML文档能以HTML的列表格式来显示。此外,这些属性值和元素值被指定为能够编辑,以使得用户能够使用HTML单元50的编辑功能在利用HTML显示的屏幕上对这些值进行编辑。在第六列中,指定了用来计算日语、数学、自然科学以及社会科学的分数的加权平均的运算表达式,并显示每个学生的分数的平均值。以这种方式,通过在定义文件中指定运算表达式来完成更灵活的显示,从而提高用户在进行编辑时的便利性。另外,将对第六列的编辑指定为不允许,以使得不能单独对平均值本身进行编辑。因此,在映射定义中,能够指定可编辑或不能编辑,以避免用户可能的错误操作。FIG. 3 shows an example of mapping the XML document shown in FIG. 2 into a table described in HTML. In the example shown in FIG. 3, the "student" node described in the grade management vocabulary is made to correspond to the row ("TR" node) of the table ("TABLE" node) described in HTML. The first column of each row corresponds to the attribute value "Name Front", the second column corresponds to the element value of the "Mandarin" node, the third column corresponds to the element value of the "Mathematics" node, and the fourth column corresponds to the "Science" node corresponds to the element value of the , while the fifth column corresponds to the element value of the "society" node. Therefore, the XML document shown in FIG. 2 can be displayed in the list format of HTML. Furthermore, these attribute values and element values are designated as editable so that the user can edit these values on a screen displayed with HTML using the editing function of the HTML unit 50 . In the sixth column, an operation expression for calculating the weighted average of scores of Japanese, mathematics, natural science, and social science is specified, and the average value of the scores of each student is displayed. In this way, more flexible display is accomplished by specifying operation expressions in the definition file, thereby improving user's convenience when editing. In addition, editing of the sixth column is specified as disallowed, so that editing of the average itself alone is not possible. Therefore, in the mapping definition, it is possible to designate editable or non-editable to avoid possible erroneous operations by the user.

图4(a)和4(b)表示定义文件的例子,以将图2所示的XML文档映射为图3所示的表。该定义文件通过被定义用于和定义文件一起使用的脚本语言来描述。在图4(a)和4(b)所示的例子中,“生徒の追加”和“生徒の削除”被定义为命令,并分别涉及将节点“生徒”插入源树中的操作以及将节点“生徒”从源树中删除的操作。该定义文件以模板的形式描述了诸如“名前”和“国語”的标题显示于表的第一行中,而节点“生徒”的内容显示于第二行及其随后的行中。在显示节点“生徒”内容的模板中,包含“text-of”的项表示允许进行编辑,而包含“value-of”的项表示不允许进行编辑。在这些显示了节点“生徒”内容的行中,在第六列中描述了运算表达式“(src:国語+src:数学+src:理科+src:社会)div 4”。这意味着显示学生成绩的平均值。4(a) and 4(b) show examples of definition files to map the XML document shown in FIG. 2 into the table shown in FIG. The definition file is described by a script language defined for use with the definition file. In the examples shown in Figures 4(a) and 4(b), “shengtuのappend” and “shengtuのcut” are defined as commands, and involve the operation of inserting the node “shengtu” into the source tree and inserting the node "Students" operations that are removed from the source tree. The definition file describes in the form of a template that titles such as "Name Front" and "Guoyu" are displayed in the first row of the table, and the content of the node "Shengtu" is displayed in the second row and subsequent rows. In the template showing the contents of the node "Student", items containing "text-of" indicate that editing is allowed, while items containing "value-of" indicate that editing is not allowed. In the rows showing the content of the node "Shengtu", the operation expression "(src: Mandarin + src: mathematics + src: science + src: society) div 4" is described in the sixth column. This is meant to display the average of student grades.

图5示出了将图2所示的由成绩管理词汇描述的XML文档利用图3所示的对应关系映射为HTML以使其显示在显示屏上时,显示屏的一个例子。在表90各行中从左至右显示的是各学生的姓名、日语成绩、数学成绩、自然科学成绩、社会科学成绩及其平均值。用户能够在该屏幕上对XML文档进行编辑。例如,当第二行第三列中的值变为“70”时,源树中与该节点相对应的元素值(亦即学生“B”的数学成绩)变为“70”。此时,为了使目的树与源树一致,目的树的相应部分因此而改变,从而使得HTML单元50能够根据改变的目的树来对显示进行更新。因此,学生“B”的数学成绩变为“70”,而平均值相应地变为“55”。FIG. 5 shows an example of the display screen when the XML document described by the performance management vocabulary shown in FIG. 2 is mapped to HTML using the correspondence shown in FIG. 3 so as to be displayed on the display screen. Displayed from left to right in each row of Table 90 are the names, Japanese scores, math scores, natural science scores, social science scores and their average values of each student. The user can edit the XML document on this screen. For example, when the value in the third column of the second row becomes "70", the value of the element corresponding to the node in the source tree (that is, the math score of student "B") becomes "70". At this time, in order to make the target tree consistent with the source tree, the corresponding part of the target tree is changed accordingly, so that the HTML unit 50 can update the display according to the changed target tree. Thus, student "B"'s math score becomes "70" and the average accordingly becomes "55".

在图5所示的屏幕上,例如“生徒の追加”和“生徒の削除”的命令被显示为菜单,如图4(a)、(b)所示的定义文件中所定义的那样。当用户从这些命令中选择一个命令时,节点“生徒”增加至源树中或从源树中删除。以这种方式,利用根据本前提技术的文档处理装置20,不仅能够对分级结构末端中的组件的元素值进行编辑,而且能够对该分级结构进行编辑。具有上述树型结构的编辑功能能够以命令的形式显现给用户。此外,增加或删除表中的行的命令可例如与增加或删除节点“生徒”的操作相关。嵌入其它词汇中的命令可显现给用户。该表可用作输入模板,以使得对于新学生的成绩数据能够以填空的方式来增加。如上所述,在使用HTML单元50的显示/编辑功能的同时,以成绩管理词汇描述的文档可通过VC功能来编辑。On the screen shown in FIG. 5, commands such as "addition of students" and "deletion of students" are displayed as menus, as defined in the definition files shown in FIGS. 4(a), (b). When the user selects one of these commands, a node "Student" is added to or removed from the source tree. In this way, with the document processing apparatus 20 according to the present premise technology, not only the element values of the components in the end of the hierarchical structure but also the hierarchical structure can be edited. The editing functions with the above tree structure can be presented to the user in the form of commands. Furthermore, the commands to add or delete rows in the table may be related, for example, to the operation of adding or deleting the node "Student". Commands embedded in other vocabularies can be presented to the user. This form can be used as an input template so that performance data for new students can be added in a fill-in-the-blank fashion. As described above, while using the display/edit function of the HTML unit 50, the document described in the grade management vocabulary can be edited by the VC function.

图6示出了由定义文件生成单元86显现给用户的图形用户界面的例子,以使用户能够创建定义文件。待映射的XML文档在屏幕的左侧区域91显示为树。被映射成的XML文档的屏幕布局显示在屏幕的右侧区域92中。该屏幕布局可通过HTML单元50来编辑,用户在屏幕的右侧区域92中确定并创建用于对文档进行显示的屏幕布局。然后,例如,使用诸如鼠标等的指示设备将屏幕的左侧区域91中显示的XML文档的待映射的节点拖动并放置到屏幕的左侧区域91中的HTML屏幕布局中,以指定映射源处的节点与映射目的处的节点之间的连接。例如,当作为元素“生徒”的子元素的“数学”被放置到HTML屏幕上的表90中第一行与第三列的交叉处时,“数学”节点与第三列中的“TD”节点之间建立连接。各节点均如此被指定为可编辑或者不可编辑。此外,可在显示屏中嵌入运算表达式。当完成屏幕编辑时,定义文件生成单元86创建描述屏幕布局与节点之间的连接的定义文件。FIG. 6 shows an example of a graphical user interface presented to the user by the definition file generating unit 86 to enable the user to create a definition file. The XML document to be mapped is displayed as a tree in the left area 91 of the screen. The screen layout of the mapped XML document is displayed in the right area 92 of the screen. The screen layout can be edited through the HTML unit 50, and the user determines and creates the screen layout for displaying the document in the right area 92 of the screen. Then, for example, a node to be mapped of the XML document displayed in the left area 91 of the screen is dragged and dropped into the HTML screen layout in the left area 91 of the screen using a pointing device such as a mouse to specify the mapping source The connection between the node at and the node at the destination of the map. For example, when "Mathematics" which is a child element of the element "Student" is placed at the intersection of the first row and the third column in Table 90 on the HTML screen, the "Mathematics" node and "TD" in the third column Connections are established between nodes. Each node is designated as editable or non-editable as such. In addition, arithmetic expressions can be embedded in the display. When screen editing is completed, the definition file generating unit 86 creates a definition file describing the layout of the screen and connections between nodes.

已经开发出了能够处理主要词汇(例如XHTML(可扩展超文本标记语言)、MathML(数学标记语言)以及SVG(可缩放矢量图形))的浏览器或编辑器。但是,不可能开发出适于以自创词汇描述的所有文档(例如图2中所示的文档)的浏览器或编辑器。然而,如果如上所述创建了用于映射为其它词汇的定义文件,那么以自创词汇描述的文档就能够使用VC功能来显示和/或编辑,而无需不断开发新的浏览器或编辑器。Browsers or editors have been developed that can handle major vocabularies such as XHTML (Extensible Hypertext Markup Language), MathML (Mathematical Markup Language), and SVG (Scalable Vector Graphics). However, it is impossible to develop a browser or an editor suitable for all documents described in self-created vocabularies, such as the documents shown in FIG. 2 . However, if definition files for mapping to other vocabularies are created as described above, documents described in self-created vocabularies can be displayed and/or edited using VC functions without constantly developing new browsers or editors.

图7示出了由定义文件生成单元86创建的屏幕布局的另一例子。在图7所示的例子中,在屏幕上产生表90和圆形图93用于显示以成绩管理词汇描述的XML文档。圆形图93以SVG描述。如以下将讨论的那样,由于根据本前提技术的文档处理装置20能够对在单个XML文档内以多个词汇描述的复合文档进行处理,因此,如该例子所示,以HTML描述的表90以及以SVG描述的圆形图93能够显示在同一屏幕上。FIG. 7 shows another example of the screen layout created by the definition file generating unit 86. As shown in FIG. In the example shown in FIG. 7, a table 90 and a pie chart 93 for displaying an XML document described in a grade management vocabulary are generated on the screen. The circular graph 93 is described in SVG. As will be discussed below, since the document processing apparatus 20 according to the present premise technology can process a compound document described in a plurality of vocabularies within a single XML document, as shown in this example, the table 90 described in HTML and A circular graph 93 described in SVG can be displayed on the same screen.

图8示出了用于由文档处理装置20处理的XML文档的编辑屏幕的一例。在图8所示的例子中,单个屏幕被分割为多个区域,而待处理的XML文档在各个区域以多种不同显示格式显示。该文档的源在区域94中显示,该文档的树结构在区域95中显示,而以图5所示的HTML描述的表在区域96中显示。该文档在这些区域中的任意区域均可被编辑,当用户对这些区域中的任意区域的内容进行编辑时,源树将被相应修改,从而负责各屏幕显示的插件将更新屏幕,以反映源树的变更。具体而言,负责显示对应编辑屏幕的插件的显示单元被预先注册为变化事件的监听器,所述变化事件提供源树中发生了改变的通知。当源树被任意插件或VC单元80修改时,显示编辑屏幕的所有显示单元接收发出的一个或多个变化事件,并从而更新屏幕。此时,如果插件正在通过VC功能进行显示,则VC单元80根据对源树的修改来修改目的树。之后,插件的显示单元通过参考上述经过修改的目的树来对屏幕进行修改。FIG. 8 shows an example of an editing screen for an XML document processed by the document processing apparatus 20. As shown in FIG. In the example shown in FIG. 8 , a single screen is divided into multiple areas, and the XML document to be processed is displayed in various display formats in each area. The source of the document is displayed in area 94 , the tree structure of the document is displayed in area 95 , and the table described in HTML shown in FIG. 5 is displayed in area 96 . The document can be edited in any of these areas, and when the user edits the contents of any of these areas, the source tree will be modified accordingly, so that the plug-in responsible for the display of each screen will update the screen to reflect the source Tree changes. In particular, the display unit of the plug-in responsible for displaying the corresponding editing screen is pre-registered as a listener for change events that provide notification that a change has occurred in the source tree. When the source tree is modified by any plug-in or VC unit 80, all display units displaying the edit screen receive one or more change events emitted and update the screen accordingly. At this time, if the plug-in is being displayed by the VC function, the VC unit 80 modifies the destination tree according to the modification of the source tree. Afterwards, the display unit of the plug-in modifies the screen by referring to the above-mentioned modified object tree.

例如,当通过专用插件来实现源显示和树型视图显示时,源显示插件和树显示插件通过直接参考源树而不是利用目的树来实现它们的显示。在这种情况下,当在屏幕的任何区域中完成编辑时,源显示插件和树显示插件通过参考修改后的源树来更新屏幕。同样,负责显示区域96的HTML单元50通过参考已根据对源树的修改而做了修改的目的树来更新屏幕。For example, when the source display and the tree view display are implemented by dedicated plug-ins, the source display plug-in and the tree display plug-in achieve their display by directly referring to the source tree instead of utilizing the destination tree. In this case, the source display plugin and the tree display plugin update the screen by referring to the modified source tree when editing is done in any area of the screen. Likewise, the HTML unit 50 responsible for the display area 96 updates the screen by referring to the destination tree which has been modified according to the modification to the source tree.

源显示和树显示也可通过使用VC功能而实现。也就是说,例如,如果HTML被用于源和树型结构的布局,则XML文档可映射为HTML以通过HTML单元50来显示。在这种情况下,将创建具有源格式、树格式、表格式的三个目的树。如果在屏幕上的三个区域的任意一个中进行编辑,则VC单元80对源树进行修改,并在之后分别对源格式、树格式、表格式的三个目的树进行修改。然后,HTML单元50通过参考这些目的树来更新屏幕的三个区域。Source display and tree display can also be realized by using the VC function. That is, for example, if HTML is used for the source and layout of the tree structure, the XML document can be mapped to HTML to be displayed by the HTML unit 50 . In this case, three destination trees will be created with source format, tree format, and table format. If editing is performed in any one of the three areas on the screen, the VC unit 80 modifies the source tree, and then modifies the three destination trees in source format, tree format, and table format respectively. Then, the HTML unit 50 updates the three areas of the screen by referring to these object trees.

以这种方式,在单个屏幕上以多种显示格式显示文档,从而提高了用户的便利性。例如,用户能够利用表90等以视觉上易于理解的格式显示和编辑文档,同时通过源显示或树显示来理解文档的分级结构。在上述实施例中,单个屏幕被划分为多个显示格式,它们被同时显示。但是,也可在单个屏幕上显示单个显示格式,从而可通过用户指令来切换显示格式。在这种情况下,主控单元22从用户处接收用于切换显示格式的请求,并随后命令各插件进行显示切换。In this way, documents are displayed in a plurality of display formats on a single screen, thereby improving user convenience. For example, a user can display and edit a document in a visually understandable format using a table 90 or the like while understanding the hierarchical structure of the document through source display or tree display. In the above-described embodiments, a single screen is divided into a plurality of display formats, which are displayed simultaneously. However, it is also possible to display a single display format on a single screen so that the display format can be switched by a user instruction. In this case, the main control unit 22 receives a request from the user for switching the display format, and then instructs each plug-in to perform display switching.

图9示出了由文档处理装置20编辑的XML文档的另一例。在图9所示的XML文档中,XHTML文档被嵌入SVG文档的“foreignObject”标签中,而该XHTML文档包含以MathML描述的公式。在这种情况下,编辑单元24通过参考命名空间而将描绘任务分配或指派给适当的显示系统。在图9所示的实施例中,编辑单元24首先使SVG单元60描绘矩形,然后使HTML单元50描绘XHTML文档。此外,编辑单元24使MathML单元(未示出)描绘公式。以这种方式,包含多个词汇的复合文档被适当地显示。图10示出了显示结果。FIG. 9 shows another example of an XML document edited by the document processing apparatus 20. As shown in FIG. In the XML document shown in FIG. 9, an XHTML document containing a formula described in MathML is embedded in a "foreignObject" tag of an SVG document. In this case, the editing unit 24 assigns or assigns the rendering task to an appropriate display system by referring to the namespace. In the embodiment shown in FIG. 9, editing unit 24 first causes SVG unit 60 to draw a rectangle, and then makes HTML unit 50 to draw an XHTML document. Furthermore, the editing unit 24 causes a MathML unit (not shown) to draw a formula. In this way, compound documents containing a plurality of vocabularies are properly displayed. Figure 10 shows the display results.

在对文档进行编辑期间,待显示的菜单可根据光标(キヤリツジ)的位置被切换。也就是说,当光标位于显示SVG文档的区域中时,显示SVG单元60提供的菜单、或用于映射SVG文档的定义文件中定义的命令。当光标位于显示XHTML文档的区域中时,显示HTML单元50提供的菜单、或用于映射XHTML文档的定义文件中定义的命令。因此,可根据编辑位置提供适当的用户界面。During editing of the document, the menu to be displayed can be switched according to the position of the cursor. That is, when the cursor is located in an area where an SVG document is displayed, a menu provided by the SVG unit 60, or a command defined in a definition file for mapping the SVG document is displayed. When the cursor is located in an area where an XHTML document is displayed, a menu provided by the HTML unit 50, or a command defined in a definition file for mapping the XHTML document is displayed. Therefore, an appropriate user interface can be provided according to the editing position.

如果在复合文档中不存在与某词汇相符的适当插件或映射定义,则以该词汇描述的部分可以源或树格式显示。在传统实践中,当要打开在某个文档中嵌有其它文档的复合文档时,如果没有安装能够显示该嵌入文档的应用程序,则它们的内容不能显示。但是,根据本前提技术,即使不存在用于显示的应用程序,也可以将由文本数据组成的XML文档显示为源或树格式,从而能够确定其内容。这是基于文本的XML文档或类似文档的一个特征。If no suitable plug-in or mapping definition for a vocabulary exists in the compound document, the parts described with that vocabulary can be displayed in source or tree format. In conventional practice, when a compound document with other documents embedded in a document is to be opened, their contents cannot be displayed if no application program capable of displaying the embedded document is installed. However, according to the present premise technology, even if there is no application program for display, an XML document composed of text data can be displayed in a source or tree format, thereby being able to specify its content. This is a characteristic of text-based XML documents or similar.

以基于文本的语言来描述数据的另一个有益方面例如在于,在同一文档中以其它词汇描述的部分的数据可被该复合文档中以某个词汇描述的另一文档所参考。此外,当在该文档中进行搜索时,嵌入SVG等图片中的字符串也可作为被搜索的对象。Another beneficial aspect of describing data in a text-based language is, for example, that parts of data described in other vocabularies in the same document can be referenced by another document described in a certain vocabulary in the compound document. In addition, when searching in the document, character strings embedded in images such as SVG can also be searched.

在以某个词汇描述的文档中,可使用其它词汇的标签。虽然该XML文档通常并不有效,但只要它结构良好(well-formed),就可作为有效的XML文档而被处理。在这种情况下,被插入的属于其它词汇的标签可使用定义文件来进行映射。例如,在XHTML文档中,可使用诸如“重要”和“最重要”的标签以通过强调的方式来显示这些标签周围的部分,或者可将这些标签按重要性的顺序来排序以进行相应显示。In a document described by a certain vocabulary, tags of other vocabulary can be used. Although the XML document is usually not valid, it can be processed as a valid XML document as long as it is well-formed. In this case, the inserted tags belonging to other vocabularies can be mapped using the definition file. For example, in an XHTML document, tags such as "important" and "most important" can be used to display parts around these tags in an emphasized manner, or these tags can be sorted in order of importance for corresponding display.

当用户在图10所示的编辑屏幕上对文档进行编辑时,负责对被编辑的部分进行处理的插件或VC单元80对源树进行修改。能够为源树中的各个节点注册对于变化事件的监听器。通常,与各个节点所属的词汇相符的插件的显示单元或VC单元80被注册为监听器。当源树被修改时,DOM提供单元32从被修改的节点向较高层次探索。如果存在注册的监听器,则DOM提供单元32向该监听器发出变化事件。例如,参考如图9中所示的文档,如果位于<html>节点下方的节点被修改,那么该变化事件被通报给被注册为<html>节点的监听器的HTML单元50。在同一时刻,该变化事件被通报给被注册为位于<html>节点上方的<svg>节点中的监听器的SVG单元60。此时,HTML单元50通过参考被修改的源树而更新显示。由于属于SVG单元60本身的词汇的节点并未被修改,因此SVG单元60可忽视该变化事件。When a user edits a document on the editing screen shown in FIG. 10, the plug-in or VC unit 80 responsible for processing the edited portion modifies the source tree. Ability to register listeners for change events for each node in the source tree. Typically, the display unit or VC unit 80 of the plug-in corresponding to the vocabulary to which each node belongs is registered as a listener. When the source tree is modified, the DOM providing unit 32 explores from the modified node to a higher level. If there is a registered listener, the DOM providing unit 32 sends a change event to the listener. For example, referring to the document as shown in FIG. 9, if a node located below the <html> node is modified, the change event is notified to the HTML unit 50 registered as a listener for the <html> node. At the same moment, the change event is notified to the SVG element 60 registered as a listener in the <svg> node located above the <html> node. At this time, the HTML unit 50 updates the display by referring to the modified source tree. Since the nodes belonging to the vocabulary of SVG unit 60 itself have not been modified, SVG unit 60 can ignore this change event.

根据编辑的内容,可以随着HTML单元50对显示进行的修改来改变总体布局。在这种情况下,对于各插件的各个显示区域的布局将由管理屏幕布局的组件(例如,负责显示最高节点的插件)来更新。例如,当由HTML单元50显示的区域较之以前变大时,HTML单元50首先描绘HTML单元50本身所负责的区域,然后确定显示区域的大小。然后,显示区域的大小被通报给管理屏幕布局的组件,以请求对布局进行更新。负责屏幕布局的组件一收到该通知便为各个插件重新布置显示区域。因此,被编辑的部分的显示被适当更新,且总体屏幕布局被更新。Depending on the edited content, the overall layout may change as the HTML unit 50 modifies the display. In this case, the layout of each display area for each widget will be updated by the component managing the screen layout (eg the widget responsible for displaying the highest node). For example, when the area displayed by the HTML unit 50 becomes larger than before, the HTML unit 50 first draws the area that the HTML unit 50 itself is responsible for, and then determines the size of the display area. Then, the size of the display area is notified to the component that manages the screen layout to request an update to the layout. As soon as the component responsible for the screen layout receives this notification, it rearranges the display area for each widget. Accordingly, the display of the edited portion is updated appropriately, and the overall screen layout is updated.

接着,对实现前提技术的文档处理装置20的功能构成进一步进行详细说明。在下面的说明中,使用英文名称对类名等进行描述。Next, the functional configuration of the document processing device 20 that realizes the premise technology will be further described in detail. In the following description, class names and the like are described using English names.

A.概要A. Summary

由于因特网的出现,由用户处理、管理的文档的数量大致是成指数函数形式在增加。形成因特网核心的Web(World Wide Web:万维网)成了接受这些文档数据的大容器。除了文档以外,Web还提供用于这些文档的信息检索系统。这些文档通常是由标记语言描述的。作为标记语言的简单且常用的例子,HTML(HyperText Markup Language:超文本标记语言)是其中的一个。这样的文档还包括有指向记录在Web的其它位置的其他文档的链接。XML(eXtensible Markup Language:可扩展标记语言)是更高度普及的标记语言。用于访问和阅览Web文档的简单的浏览器是由像Java(注册商标)那样的面向对象的编程语言开发的。Since the advent of the Internet, the number of documents handled and managed by users has increased roughly exponentially. The Web (World Wide Web: World Wide Web), which forms the core of the Internet, has become a large container for receiving these document data. In addition to documents, the Web also provides information retrieval systems for these documents. These documents are usually described by a markup language. As a simple and commonly used example of a markup language, HTML (HyperText Markup Language: Hypertext Markup Language) is one of them. Such documents also include links to other documents recorded elsewhere on the Web. XML (eXtensible Markup Language: Extensible Markup Language) is a more highly popular markup language. A simple browser for accessing and viewing Web documents is developed by an object-oriented programming language like Java (registered trademark).

由标记语言描述的文档通常在浏览器或者其他应用程序中以树数据结构的形式来表现。该结构相当于对文档进行语法分析结果的树。DOM(Document Object Model:文档目标模型)是用于表述和操作文档的、众所周知的基于树的数据结构模型。DOM提供表述含有HTML或XML文档等的对象集合。DOM包括两个基本组件,即表述文档内的组件的对象是如何连接在一起的标准模型,以及用于对这些对象进行访问或者操作的标准接口。Documents described by markup languages are usually represented in the form of tree data structures in browsers or other applications. This structure is equivalent to a tree of the result of parsing a document. DOM (Document Object Model: Document Object Model) is a well-known tree-based data structure model for representing and manipulating documents. DOM provides representations for collections of objects including HTML or XML documents, etc. The DOM consists of two basic components, a standard model of how objects representing components within a document are connected together, and a standard interface for accessing or manipulating these objects.

应用程序的开发者能够支持DOM作为与其自身的数据结构或者API(Application Program Interface:应用程序接口)的接口。另一方面,创建文档的应用程序的开发者可以使用DOM的标准接口而不是其自身的API的特定接口。因此,DOM提供标准接口的能力有效地促进了在各种环境下对文档进行共享,特别是用在Web上。DOM定义有几个版本,根据不同的编程环境及应用程序来使用。A developer of an application can support the DOM as an interface with its own data structure or an API (Application Program Interface: Application Programming Interface). On the other hand, developers of applications that create documents can use the DOM's standard interface rather than the specific interface of its own API. Therefore, the ability of DOM to provide a standard interface effectively facilitates the sharing of documents in various environments, especially on the Web. There are several versions of the DOM definition, which are used according to different programming environments and applications.

DOM树是基于对应DOM的内容的文档的分级表述。DOM树包括“根”及由根生出的一个以上的“节点”。根有时表述全体文档。中间节点可表述元素,诸如表及表中的行和列。DOM树的“叶”通常表述数据,例如不可进一步分解的文本或者图像。DOM树的各个节点也可以与描述字形、大小、颜色、索引等由节点所表示的元素的参数的属性关联对应。A DOM tree is a hierarchical representation of a document based on the content of the corresponding DOM. The DOM tree includes a "root" and one or more "nodes" that grow from the root. The root sometimes refers to the entire document. Intermediate nodes may represent elements such as tables and the rows and columns in tables. The "leaves" of the DOM tree usually represent data, such as text or images that cannot be further decomposed. Each node of the DOM tree may also be associated with attributes describing parameters such as font, size, color, index, etc. of the element represented by the node.

虽然HTML是一般的用于制作文档所使用的语言,但它是用于格式和布局的语言而不是用于描述数据的语言。表现HTML文档的DOM树的节点是预先定义作为HTML的格式化标签的元素。通常,由于HTML不提供用于数据的详述或者对数据添标签/添标注的功能,因而对HTML文档中的数据的查询格式化在很多场合是困难的。Although HTML is a language generally used for authoring documents, it is a language for formatting and layout rather than a language for describing data. A node representing a DOM tree of an HTML document is an element previously defined as a formatting tag of HTML. In general, query formatting of data in HTML documents is difficult on many occasions because HTML does not provide functionality for elaboration of data or tagging/annotating data.

网络设计者们的目标是,能够把Web上的文档通过软件应用程序进行查询或者处理。与显示方法无关,只要是分级结构化的语言,可以同样查询处理。诸如XML(eXtensible Markup Language)这样的标记语言可以提供这类特征。The goal of web designers is to enable documents on the web to be queried or processed by software applications. Regardless of the display method, as long as it is a hierarchically structured language, query processing can be performed in the same way. Markup languages such as XML (eXtensible Markup Language) can provide such features.

众所周知,与HTML相反,XML的优点是文档的设计者可以使用可自由定义的“标签”对数据元素进行标注。这样的数据元素可以分级进行结构化。而且,XML文档可以包含文档类型定义,它描述文档内使用的标签及其相互关系的“语法”。为了定义结构化的XML文档的显示方法,使用CSS(Cascading Style Sheet:层叠式样式表)或者XSL(XML StyleLanguage:可扩展标记语言样式语言)。关于DOM、HTML、XML、CSS、XSL及其有关语言特征的附加信息也可以从Web获得。(例如,http://www.w3.org/TR/)As we all know, contrary to HTML, the advantage of XML is that the designer of the document can use freely definable "tags" to mark the data elements. Such data elements may be structured hierarchically. Furthermore, an XML document can contain a document type definition, which describes the "syntax" of the tags used within the document and their interrelationships. In order to define a display method of a structured XML document, CSS (Cascading Style Sheet: Cascading Style Sheet) or XSL (XML StyleLanguage: Extensible Markup Language Style Language) is used. Additional information about DOM, HTML, XML, CSS, XSL, and their related language features is also available from the Web. (eg 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中找到。XPath provides a common syntax and semantics for specifying the location of parts of an XML document. As an example of functionality, is traversal (movement) of a DOM tree corresponding to an XML document. This provides basic functionality for manipulating strings, numbers, and Boolean characters associated with various representations of XML documents. XPath is not the syntax expressed by XML documents (such as the syntax of which line or character when viewed as text), but operates in an abstract and logical structure such as a DOM tree. By using XPath, for example, it is possible to navigate through a hierarchical structure within the DOM tree of an XML document. In addition to its use for addressing, XPath was designed to test whether a node in a DOM tree matches a pattern. Details involving XPath can be found at http://www.w3.org/TR/XPath.

希望有一种有效的文档处理系统,能够利用XML的已知的优点和特征,处理由标记语言(例如XML)描述的文档,并能够提供一种用于创建和修改文档的友好的用户界面。It is desired to have an effective document processing system that can utilize the known advantages and characteristics of XML, process documents described by markup languages (such as XML), and provide a friendly user interface for creating and modifying documents.

在此说明的系统的构成中的一些将通过使用被称作MVC(Model-View-Controller:模型-视图-控制器)即众所周知的GUI(Graphical UserInterface:图形用户界面)范例进行说明。MVC范例将应用程序或应用程序的接口的一部分分解为三部分,即,模型、视图和控制器。最初开发MVC是为了将传统的输入、处理和输出任务分配到GUI区域。Some of the configurations of the system described here will be described using a well-known GUI (Graphical User Interface: Graphical User Interface) paradigm called MVC (Model-View-Controller: Model-View-Controller). The MVC paradigm decomposes an application or part of an application's interface into three parts, namely, the model, the view, and the controller. MVC was originally developed to distribute traditional input, processing, and output tasks to GUI areas.

输入->处理->输出Input -> Processing -> Output

控制器->模型->视图Controller -> Model -> View

根据MVC范例,外界的建模、对用户的视觉反馈以及用户输入通过模型(M)、视图(V)以及控制器(C)对象来分离从而进行处理。控制器操作以解释诸如用户的鼠标和键盘输入的输入,并将这些用户动作映射为发送至模型和/或视图的命令,以实现适当的改变。模型发挥作用以管理一个以上的数据元素、响应对其状态的询问、并对改变状态的指示作出响应。视图操作以管理显示的矩形区域,并有通过图形和文本的组合将数据显现给用户的功能。According to the MVC paradigm, modeling of the outside world, visual feedback to the user, and user input are handled separately through Model (M), View (V) and Controller (C) objects. The controller operates to interpret input such as the user's mouse and keyboard input, and to map these user actions into commands sent to the model and/or view to effect appropriate changes. A model functions to manage one or more data elements, respond to queries about its state, and respond to indications to change state. Views operate to manage a rectangular area of display and have the ability to present data to the user through a combination of graphics and text.

B.文档处理系统的总配置B. General configuration of the document processing system

文档处理系统的实施例将结合图11-29进行清楚说明。Embodiments of the document processing system will be clearly described with reference to FIGS. 11-29.

图11(a)图示了包括将在下面描述的能够提供文档处理系统的、根据现有技术的基础功能的配置结构。装置10包括通过通信路径13连接到存储器12的CPU形式或微处理器等形式的处理器11。存储器12可为当前或将来能够使用的任意ROM和/或RAM形式。通信路径13作为典型的总线而设置。对于鼠标、键盘和语音识别系统等用户输入装置14以及显示装置15(或者其他用户接口)的输入输出接口16也连接在用于处理器11和存储器12通信的总线上。该结构可以是独立的形式,也可以是由多个终端以及一台以上的服务器连接的网络化的形式,也可以由公知的任何方式来构成。本发明并不受这些组件的配置、它们的集中式或分布式体系结构或者多种组件的通信方式的限制。FIG. 11( a ) illustrates a configuration structure including basic functions according to the prior art capable of providing a document processing system to be described below. Apparatus 10 includes a processor 11 in the form of a CPU or microprocessor or the like connected to a memory 12 via a communication path 13 . Memory 12 may be in any form of ROM and/or RAM that can be used now or in the future. The communication path 13 is provided as a typical bus. Input and output interfaces 16 for user input devices 14 such as mouse, keyboard and voice recognition system, and display device 15 (or other user interfaces) are also connected to the bus used for communication between processor 11 and memory 12 . This structure may be an independent form, or may be a networked form in which a plurality of terminals and one or more servers are connected, or may be constructed in any known manner. The invention is not limited by the configuration of these components, their centralized or distributed architecture, or the manner in which the various components communicate.

此外,本系统以及在此讨论的实施例将作为包括提供各种功能性的若干组件以及子组件的例子来讨论。为了提供期望的功能,这些组件以及子组件可以是硬件和软件的组合,也可以仅由硬件或者仅由软件来实现。而且,硬件、软件及其组合可以由通用计算装置、专用硬件或者它们的组合来实现。因此,组件或者子组件的构成包括执行用于提供组件或者子组件功能的专用软件的通用/专用的计算装置。Furthermore, the present system and the embodiments discussed herein will be discussed as examples comprising several components and subcomponents that provide various functionality. In order to provide desired functions, these components and subcomponents may be a combination of hardware and software, or may be realized only by hardware or only by software. Also, hardware, software, and combinations thereof can be implemented by general purpose computing devices, special purpose hardware, or combinations thereof. Accordingly, a component or sub-component is constituted including a general/special purpose computing device executing specific software for providing the functionality of the component or sub-component.

图11(b)示出了文档处理系统一个例子的总体方框图。文档在这种文档处理系统中被创建和编辑。这些文档(例如XML等)能够以具有标记语言特征的任何语言来表述。同样,为方便起见,已经创建了用于特定的组件和子组件的术语和标题。但是,这些不应被视作对本文公开的一般教导范围的限制。Fig. 11(b) shows an overall block diagram of an example of a document processing system. Documents are created and edited in such document processing systems. These documents (such as XML, etc.) can be expressed in any language that has markup language features. Also, terms and headings for specific components and subcomponents have been created for convenience. However, these should not be viewed as limitations on the scope of the general teachings disclosed herein.

文档处理系统可被视为具有两个基本构成。一个构成是“执行环境”101,它是文档处理系统运行的环境。例如,执行环境在对文档进行处理中和管理中不仅支持用户,而且支持系统,提供基本效用和功能。第二构成是“应用程序”102,它由在执行环境中运行的应用程序构成。这些应用程序包括文档本身及其各种表述。A document processing system can be viewed as having two basic components. One component is the "execution environment" 101, which is the environment in which the document processing system operates. For example, the execution environment supports not only the user but also the system in the processing and management of documents, providing basic utility and functionality. The second component is "applications" 102, which consists of application programs running in the execution environment. These applications include the document itself and its various representations.

1.执行环境1. Execution environment

执行环境101的关键组件是程序调用器(ProgramInvoker,即程序启动单元)103。程序调用器103是用于启动文档处理系统而被访问的基本程序。例如,当用户登录并启动文档处理系统时,程序调用器103被执行。程序调用器103例如可以读取并执行作为插件增加至文档处理系统的功能、启动并运行应用程序、以及读取与文档相关的属性。程序调用器103的功能并不限于此。A key component of the execution environment 101 is a program invoker (ProgramInvoker, ie, a program launching unit) 103 . The program invoker 103 is a basic program accessed for starting the document processing system. For example, when a user logs in and starts the document processing system, the program invoker 103 is executed. The program invoker 103 can, for example, read and execute functions added as plug-ins to the document processing system, start and run application programs, and read attributes related to documents. The function of the program caller 103 is not limited thereto.

当用户希望启动计划在执行环境中运行的应用程序时,程序调用器103找到并启动该应用程序,然后执行该应用程序。When the user wishes to start an application program planned to run in the execution environment, the program invoker 103 finds and starts the application program, and then executes the application program.

在程序调用器103上联接有插件子系统104、命令子系统105以及资源模块109等若干组件。这些构成将随后进行更详细描述。Several components such as a plug-in subsystem 104 , a command subsystem 105 , and a resource module 109 are connected to the program invoker 103 . These constitutions will be described in more detail later.

a)插件子系统a) Plug-in subsystem

插件子系统104能够高度灵活和有效地向文档处理系统增加功能。插件子系统104也可以用来修改和去除文档处理系统中存在的功能。此外,可使用插件子系统增加或修改多种功能。例如,可以增加编辑功能(Editlet:编辑单元)以起到支持在屏幕上呈现文档的作用。编辑插件也支持对增加至系统的词汇进行编辑。The plug-in subsystem 104 enables highly flexible and efficient addition of functionality to the document processing system. Plug-in subsystem 104 may also be used to modify and remove functionality present in the document processing system. In addition, various functions can be added or modified using the plug-in subsystem. For example, an editing function (Editlet: editing unit) may be added to play a role of supporting presentation of a document on a screen. The editing plugin also supports editing of vocabularies added to the system.

插件子系统104包括服务代理(ServiceBroker:服务中介单元)1041。服务代理1041通过管理增加至文档处理系统的插件,作为增加至文档处理系统的服务的中介。The plug-in subsystem 104 includes a service broker (Service Broker: service broker unit) 1041 . The service broker 1041 acts as an intermediary for the services added to the document processing system by managing the plug-ins added to the document processing system.

期望的每个功能以服务(Service)1042的形式增加至系统。服务1042的可用类型包括但不限于:应用程序(Application)服务、区工厂(ZoneFactory,即区生成单元)服务、Editlet(编辑单元)服务、命令工厂(CommandFactory:命令生成单元)服务、连接xpath(ConnectXPath:XPath管理单元)服务、CSS计算(CSSComputation:CSS计算单元)服务等。这些服务及其与系统其余部分的关系将随后详细描述,以更好地理解文档处理系统。Each desired functionality is added to the system in the form of a Service 1042 . Available types of service 1042 include but are not limited to: application program (Application) service, district factory (ZoneFactory, i.e. district generating unit) service, Editlet (editing unit) service, command factory (CommandFactory: command generating unit) service, connection xpath ( ConnectXPath: XPath management unit) service, CSS calculation (CSSComputation: CSS calculation unit) service, etc. These services and their relationship to the rest of the system are described in detail later to better understand the document processing system.

插件和服务之间的关系如下所述。插件是可包括一个以上的服务提供器(ServiceProvider:服务提供单元)的单元。各个服务提供器具有与之相关服务的一个以上的类。例如,通过使用具有适当软件应用程序的单个插件,可将一个以上的服务增加至系统,从而可向系统增加相应的功能。The relationship between plugins and services is described below. A plug-in is a unit that may include one or more service providers (ServiceProvider: service providing unit). Each service provider has one or more classes of services associated with it. For example, more than one service can be added to the system by using a single plug-in with an appropriate software application, thereby adding corresponding functionality to the system.

b)命令子系统b) command subsystem

命令子系统105被用来执行与文档的处理相关的命令形式的指令。用户可通过执行一系列指令而执行对文档的操作。例如,通过发出命令形式的指令,用户对文档处理系统中的XML文档相对应的XML的DOM树编辑来处理XML文档。这些命令可利用键盘击键、鼠标点击或其它有效的用户接口动作来输入。有时,也可通过一个命令来执行一个以上的指令。在这种情况下,这些指令被封装(包含)成一个命令并连续执行。例如,用户希望将错误词语替换为正确词语。在这种情况下,第一个命令可用以在文档中找寻错误词语,第二个命令可用以删除该错误词语,第三个命令可用以输入正确词语。这三个命令可被包装成一个命令。Command subsystem 105 is used to execute commands in the form of commands related to the processing of documents. Users can perform operations on documents by executing a series of instructions. For example, by issuing an instruction in the form of a command, the user edits the XML DOM tree corresponding to the XML document in the document processing system to process the XML document. These commands may be entered using keyboard keystrokes, mouse clicks, or other valid user interface actions. Sometimes, more than one instruction can be executed by one command. In this case, these instructions are packaged (contained) into one command and executed consecutively. For example, a user wants to replace a wrong word with a correct word. In this case, the first command can be used to find the wrong word in the document, the second command can be used to delete the wrong word, and the third command can be used to enter the correct word. These three commands can be packaged into one command.

命令可具有相关功能,例如是下面将要详细记述的“撤消”功能。这些功能可分配给用来创建对象所使用的若干个基类。Commands may have associated functions, such as an "undo" function described in detail below. These functions can be assigned to several base classes used to create objects.

命令子系统105的关键组件是命令调用器(CommandInvoker,即命令启动单元)1051,命令调用器1051可操作以有选择性地提供并执行命令。虽然图11(b)中仅示出了一个命令调用器,但也可使用一个以上的命令调用器并可同时执行一个以上的命令。命令调用器1051维护执行命令所需的功能和类。在操作中,要执行的命令1052被置于队列1053中。命令调用器创建连续执行的命令线程。如果在命令调用器中没有正在执行的命令,则由命令调用器1051执行待执行的命令1052。如果命令调用器正在执行命令,则新的命令被置于命令队列1053的末尾。不过,对于各命令调用器1051而言,一次仅执行一个命令。如果指定的命令执行失败,则命令调用器1051将执行异常处理。A key component of the command subsystem 105 is a command invoker (CommandInvoker, ie, a command initiating unit) 1051, which is operable to selectively provide and execute commands. Although only one command invoker is shown in FIG. 11(b), more than one command invoker may be used and more than one command may be executed simultaneously. Command Invoker 1051 maintains the functions and classes needed to execute commands. In operation, commands 1052 are placed in queue 1053 to be executed. The command invoker creates command threads that execute continuously. If there is no command being executed in the command invoker, the command 1052 to be executed is executed by the command invoker 1051 . The new command is placed at the end of the command queue 1053 if the command invoker is executing a command. However, for each command invoker 1051, only one command is executed at a time. If the specified command fails to execute, the command invoker 1051 will perform exception handling.

可由命令调用器(CommandInvoker)1051执行的命令的类型包括但不限于:可撤消命令(UndoableCommand)1054、异步命令(AsynchronousCommand)1055以及词汇连接命令(VCCommand)1056。可撤消命令1054是那些如果用户希望就能够撤销其结果的命令。可撤消命令的示例为:剪切、复制、插入文本等。在操作中,当用户选择文档的一部分并对该部分应用剪切命令时,如果需要,通过使用可撤消命令,可使被剪切的部分恢复至其未被剪切的状态。Types of commands that can be executed by Command Invoker (CommandInvoker) 1051 include, but are not limited to: Undoable Command (UndoableCommand) 1054 , Asynchronous Command (AsynchronousCommand) 1055 , and Vocabulary Connection Command (VCCommand) 1056 . Undoable commands 1054 are those commands whose results can be undone if the user so desires. Examples of undoable commands are: cut, copy, insert text, etc. In operation, when a user selects a portion of a document and applies a cut command to that portion, the cut portion can be returned to its uncut state, if desired, by using an undoable command.

词汇连接命令1056被载入词汇连接描述符(Vocabulary ConnectionDescriptor:VCD)脚本文件中。词汇连接命令1056是能够由程序员定义的用户指定命令。命令可以是例如用于增加XML片段、删除XML片段、以及设置属性等更抽象命令的组合。这些命令特别涉及对文档进行编辑。The vocabulary connection command 1056 is loaded into a vocabulary connection descriptor (Vocabulary Connection Descriptor: VCD) script file. The vocabulary connection command 1056 is a user-specified command that can be defined by a programmer. Commands may be a combination of more abstract commands such as adding XML fragments, removing XML fragments, and setting attributes. These commands relate specifically to editing documents.

异步命令1055是用于文档的载入或保存等基于系统的命令,与可撤消命令或词汇连接命令不同,是异步执行。由于异步命令不是可撤消命令,所以其执行的结果不能取消。The asynchronous command 1055 is a system-based command for loading or saving a document, and is executed asynchronously, unlike an undoable command or a word link command. Since asynchronous commands are not undoable commands, the results of their execution cannot be cancelled.

c)资源c) resources

资源109是向各种类提供某些功能的对象。例如,串资源、图标和缺省键绑定是系统中使用的资源的例子。Resources 109 are objects that provide certain functionality to various classes. For example, string resources, icons, and default keybindings are examples of resources used in the system.

2.应用程序组件2. Application components

应用程序组件102作为文档处理系统的第二个主要特征,在执行环境101中运行。应用程序组件102包括实际文档和系统内的各种逻辑和物理表述。应用程序组件102还包括用来管理文档所使用的系统组件。应用程序组件102进一步包括用户应用程序(UserApplication)106、应用程序核心108、用户界面107以及核心组件(CoreComponent)110。The application program component 102, which is the second main feature of the document processing system, runs in the execution environment 101. Application components 102 include actual documents and various logical and physical representations within the system. Application components 102 also include system components used to manage documents. The application component 102 further includes a user application (UserApplication) 106 , an application core 108 , a user interface 107 and a core component (CoreComponent) 110 .

a)用户应用程序a) User application

用户应用程序106连同程序调用器103一起被载入到系统中。用户应用程序106是将文档、文档的各种表述以及与文档进行交互所需的用户界面结合在一起的“粘合剂”。例如,用户可能希望创建作为项目的一部分的一套文档。载入这些文档后,将创建用于文档的适当表述。用户界面功能作为用户应用程序106的一部分被追加。换言之,用户应用程序106既保持文档的表述也保持文档的各种形式,这些文档的表述使用户能够与形成项目的一部分的文档进行交互。一旦创建了用户应用程序106,每当用户希望与形成项目一部分的文档进行交互时,用户就能够简单地将用户应用程序106载入到执行环境中。A user application 106 is loaded into the system along with a program invoker 103 . User applications 106 are the "glue" that holds together the document, its various representations, and the user interface required to interact with the document. For example, a user may wish to create a set of documents as part of a project. Once these documents are loaded, the appropriate representations for the documents will be created. User interface functions are added as part of the user application 106 . In other words, the user application 106 maintains both representations of documents and forms of documents that enable users to interact with documents that form part of a project. Once the user application 106 has been created, the user can simply load the user application 106 into the execution environment whenever the user wishes to interact with documents forming part of the project.

b)核心组件b) Core components

核心组件(CoreComponent)110提供在多个窗格(Pane)之间共享文档的一种方法。如后述的那样,窗格显示DOM树,并处理屏幕的物理布局。例如,物理屏幕包括在屏幕内的多个描述信息的片断的窗格。实际上,由用户在屏幕上看到的文档可在一个或多个窗格中显示。此外,两个不同的文档可以出现在屏幕上的两个不同窗格中。The core component (CoreComponent) 110 provides a method for sharing documents between multiple panes (Pane). As described later, panes display the DOM tree and handle the physical layout of the screen. For example, a physical screen includes a plurality of panes within the screen that describe pieces of information. In practice, the documents seen by the user on the screen may be displayed in one or more panes. Also, two different documents can appear in two different panes on the screen.

如图11(c)所示,屏幕的物理布局也具有树型形式。因此,窗格可被实现为根窗格(RootPane)1084,也可以为子窗格(SubPane)1085。根窗格1084是位于窗格树的根部的窗格,而子窗格1085是除了根窗格1084之外的任何窗格。As shown in FIG. 11(c), the physical layout of the screen also has a tree form. Therefore, a pane can be implemented as a root pane (RootPane) 1084 or as a subpane (SubPane) 1085 . A root pane 1084 is the pane at the root of the pane tree, and a child pane 1085 is any pane other than the root pane 1084 .

核心组件110还提供字体,并充当工具包等用于文档的多个功能性操作的源。由核心组件110执行的任务的一个示例是在多个窗格之间移动鼠标光标。作为被执行的任务的另一个示例,标记某窗格中文档的一部分,并将其复制到包含不同文档的另一窗格上。The core component 110 also provides fonts, and serves as a source of toolkits and the like for various functional operations of the document. One example of a task performed by core component 110 is moving a mouse cursor between multiple panes. As another example of a task being performed, mark a portion of a document in one pane and copy it to another pane containing a different document.

c)应用程序核心c) Application Core

如上所述,应用程序组件102由系统处理和管理的文档组成。其中包括系统内的文档的多种逻辑和物理表述。应用程序核心108是应用程序组件102的组件。其功能是保持实际文档及其内的所有数据。应用程序核心108包括文档管理器(DocumentManager:文档管理单元)1081和文档(Document)1082本身。As noted above, application components 102 consist of documents that are processed and managed by the system. These include various logical and physical representations of documents within the system. Application core 108 is a component of application component 102 . Its function is to hold the actual document and all the data within it. The application core 108 includes a document manager (DocumentManager: document management unit) 1081 and a document (Document) 1082 itself.

文档管理器1081的多个方面将在随后详细描述。文档管理器1081管理文档1082。文档管理器1081也连接至根窗格1084、子窗格1085、剪贴板(ClipBoard)实用程序1087以及快照(SnapShot)实用程序1088。剪贴板实用程序1087提供了保持用户决定增加至剪贴板的部分文档的方法。例如,用户可能希望剪切文档的一部分,并将其保存到新的文档上,用于稍后查看。在这种情况下,剪切的部分被增加至剪贴板。Aspects of the document manager 1081 will be described in detail subsequently. A document manager 1081 manages documents 1082 . The document manager 1081 is also connected to a root pane 1084 , a subpane 1085 , a clipboard (ClipBoard) utility 1087 , and a snapshot (SnapShot) utility 1088 . Clipboard utility 1087 provides a method for maintaining portions of a document that the user decides to add to the clipboard. For example, a user may wish to cut out a portion of a document and save it to a new document for viewing at a later time. In this case, the cut part is added to the clipboard.

接着,也对快照实用程序1088进行说明。快照实用程序1088在应用程序从一个状态变为另一状态时,能够记住应用程序的当前状态。Next, the snapshot utility 1088 will also be described. The snapshot utility 1088 is capable of remembering the current state of an application as it changes from one state to another.

d)用户界面d) User interface

应用程序组件102的另一组件是用户界面107,其为用户提供一种与系统进行物理交互的方式。例如,用户界面用于用户上载、删除、编辑和管理文档。用户界面包括框架(Frame)1071、菜单栏(MenuBar)1072、状态栏(StatusBar)1073以及URL栏(URLBar)1074。Another component of the application component 102 is the user interface 107, which provides a way for the user to physically interact with the system. For example, a user interface is used for users to upload, delete, edit, and manage documents. The user interface includes a frame (Frame) 1071 , a menu bar (MenuBar) 1072 , a status bar (StatusBar) 1073 and a URL bar (URLBar) 1074 .

如通常公知的那样,框架1071被视为物理屏幕的活动区域。菜单栏1072是包含有为用户提供选项菜单的屏幕区域。状态栏1073是显示应用程序的执行状态的屏幕区域。URL栏1074提供输入用于在互联网上定位的URL地址的区域。As is generally known, frame 1071 is considered the active area of the physical screen. Menu bar 1072 is the area of the screen that contains a menu of options for the user. The status bar 1073 is a screen area that displays the execution status of the application. URL field 1074 provides an area to enter a URL address for locating on the Internet.

C.文档管理和相关的数据结构C. Document Management and Related Data Structures

图12示出了文档管理器1081的细节。其中包括用于在文档处理系统内表述文档的数据结构和组件。为了更好的理解,在这部分描述的组件将利用模型-视图-控制器(MVC)表述范例来进行说明。FIG. 12 shows details of the document manager 1081 . These include the data structures and components used to represent documents within document processing systems. For better understanding, the components described in this section will be illustrated using the Model-View-Controller (MVC) representation paradigm.

文档管理器1081包括文档容器(DocumentContainer)203,文档容器203保持并容纳文档处理系统中的所有文档。联接至文档管理器1081的工具包201提供了由文档管理器1081使用的各种工具。例如,DOM服务(DOMService)是由工具包201提供的能够提供创建、维护和管理与文档相对应的DOM所需的所有功能的工具。作为工具包201提供的另一工具的IO管理器(IOManager:输入输出管理部)分别管理向系统的输入和来自系统的输出。同样地,流处理器(StreamHandler)是一种处理将比特流形式的文档上载的工具。这些工具形成了工具包201的组件,不过并未在图中特别示出和分配附图标记。The document manager 1081 includes a document container (DocumentContainer) 203, which holds and accommodates all documents in the document processing system. Toolkit 201 coupled to document manager 1081 provides various tools used by document manager 1081 . For example, DOM Service (DOMService) is a tool provided by the toolkit 201 capable of providing all functions required to create, maintain and manage a DOM corresponding to a document. An IO manager (IOManager: input/output management unit) which is another tool provided by the toolkit 201 manages input to the system and output from the system, respectively. Likewise, a StreamHandler is a tool that handles uploading files in bitstream form. These tools form components of tool kit 201 , but are not specifically shown and assigned reference numerals in the figures.

根据MVC范例的表述,模型(M)包括文档的DOM树模型202。如上所述,所有文档均在文档处理系统中被表述为DOM树。此外,文档也形成文档容器203的一部分。Model (M) includes the DOM tree model 202 of the document, according to the MVC paradigm. As mentioned above, all documents are represented as DOM trees in the document processing system. Furthermore, documents also form part of the document container 203 .

1.DOM模型和区1. DOM model and area

表述文档的DOM树是具有节点(Node)2021的树。作为DOM树的子集的区(Zone)209包括对应于DOM树内部的一个或多个节点的区域。例如,可能仅有文档的一部分在屏幕上显现,文档可见的这一部分可使用“区”209来表述。利用被称作区工厂(ZoneFactory:区生成单元)205的插件来创建、操作和处理区。虽然区表述DOM的一部分,但它也可使用一个以上的“命名空间”。如本领域中公知的那样,命名空间是名称的汇集或集合,这些名称在该命名空间中是唯一的。换言之,一个命名空间中不存在相同的名称。A DOM tree representing a document is a tree having nodes (Node) 2021 . A zone (Zone) 209 which is a subset of the DOM tree includes an area corresponding to one or more nodes inside the DOM tree. For example, only a portion of the document may appear on the screen, and the visible portion of the document may be described using a "zone" 209 . Zones are created, manipulated and processed using a plug-in called ZoneFactory (ZoneFactory: zone generation unit) 205 . Although a section represents a part of the DOM, it can also use more than one "namespace". As is known in the art, a namespace is a collection or collection of names that are unique within that namespace. In other words, the same name does not exist in a namespace.

2.“方面”及其与区的关系2. "Aspects" and their relationship to districts

方面(Facet)2022是MVC范例的模型(M)部分内的另一组件。它被用来编辑区中的节点。“方面”2022使用不会影响区本身的内容的可执行过程(程序)来组织对于DOM的访问。如下面将说明的那样,这些过程执行与节点相关的重要且有用的操作。Facet 2022 is another component within the Model (M) part of the MVC paradigm. It is used to edit nodes in the zone. "Aspects" 2022 organize access to the DOM using executable procedures (programs) that do not affect the content of the zone itself. As will be explained below, these procedures perform important and useful operations related to nodes.

各个节点具有相应的“方面”。通过利用“方面”执行操作来代替直接对DOM中的节点进行操作,DOM的完整性得以确保。否则,如果直接对节点执行操作,那么几个插件可能同时对DOM进行改变,从而造成结果的前后矛盾。Each node has a corresponding "facet". By utilizing "aspects" to perform operations instead of directly operating on nodes in the DOM, the integrity of the DOM is ensured. Otherwise, if operations are performed directly on nodes, several plugins may make changes to the DOM at the same time, causing inconsistent results.

虽然W3C构建的DOM标准定义了用于对节点进行操作的标准接口,实际上,由于对每个词汇或每个节点有特定的操作,优选将这些操作作为API来准备。文档处理系统以“方面”的形式向各节点提供了特有的API,并附加到各节点上。据此,可以提供符合DOM标准的有用的API。此外,通过在标准DOM上后来增加特定的API而不是为每个词汇实现特定的DOM,可对多种词汇进行统一处理,并且可以适当地处理由多种词汇任意组合的混合文档。Although the DOM standard constructed by W3C defines a standard interface for operating nodes, in fact, since there are specific operations for each vocabulary or each node, it is preferable to prepare these operations as APIs. The document processing system provides specific APIs to each node in the form of "aspects", and is attached to each node. Accordingly, a useful API conforming to the DOM standard can be provided. Furthermore, by adding a specific API later on the standard DOM instead of implementing a specific DOM for each vocabulary, various vocabularies can be uniformly processed, and a mixed document composed of various vocabularies in any combination can be properly processed.

词汇是属于命名空间的标签(例如XML标签)的集合。如上所述,命名空间具有唯一的名称(在此为标签)集。词汇表现为表述XML文档的DOM树的子树。这种子树包括区(Zone)。在特定实施例中,标签集的边界由区来限定。区209是利用被称为“区工厂”205的服务创建的。如上所述,区209是对表述文档的DOM树的一部分的内部表述。为了提供对该文档的上述部分的访问,需要逻辑表述。这种逻辑表述通知计算机如何在屏幕上对文档进行逻辑显示。画布(Canvas)210是一种可操作为提供与区相对应的逻辑布局的服务。A vocabulary is a collection of tags (eg XML tags) belonging to a namespace. As mentioned above, a namespace has a unique set of names (in this case labels). Vocabularies represent subtrees of the DOM tree that represent XML documents. This subtree includes Zones. In a particular embodiment, the boundaries of a tag set are defined by regions. Zones 209 are created using a service called "Zone Factory" 205 . As mentioned above, region 209 is an internal representation of a portion of the DOM tree representing the document. In order to provide access to the aforementioned parts of the document, a logical representation is required. This logical representation tells the computer how to logically display the document on the screen. Canvas (Canvas) 210 is a service operable to provide a logical layout corresponding to a zone.

另一方面,窗格211是与由画布210提供的与逻辑布局相对应的物理屏幕布局。实际上,用户只是看以字符和图片形式呈现在显示屏上的文档。因此,文档必须通过用于在屏幕上描绘字符和图片的处理来呈现在屏幕上。根据由窗格211提供的物理布局,文档由画布210呈现在屏幕上。On the other hand, the pane 211 is a physical screen layout corresponding to the logical layout provided by the canvas 210 . In fact, the user just looks at the document presented on the display screen in the form of characters and pictures. Therefore, documents must be presented on the screen through processing for drawing characters and pictures on the screen. Documents are rendered on-screen by canvas 210 according to the physical layout provided by pane 211 .

与区209相对应的画布210是利用Editlet 206来创建的。文档的DOM是利用Editlet 206和画布210来编辑的。为了维护原始文档的完整性,Editlet 206和画布服务210使用与区209中的一个或多个节点相对应的“方面”。这些服务并不直接操作区和DOM中的节点。“方面”是利用命令207来操作的。Canvas 210 corresponding to area 209 is created using Editlet 206. The DOM of the document is edited using Editlet 206 and canvas 210. To maintain the integrity of the original document, Editlet 206 and canvas service 210 use "aspects" corresponding to one or more nodes in region 209. These services do not directly manipulate regions and nodes in the DOM. "Aspects" are manipulated using commands 207 .

用户通常通过例如移动屏幕上的光标或键入命令而与屏幕进行交互。提供屏幕的逻辑布局的画布210接收这些光标操作。画布210可使“方面”采取相应的动作。根据这种关系,光标子系统204作为用于文档管理器1081的MVC范例的控制器(C)。画布210也提供处理事件的任务。例如,画布210处理诸如鼠标点击、焦点移动以及由用户发起的类似的操作等事件。Users typically interact with the screen by, for example, moving an on-screen cursor or typing commands. The canvas 210, which provides the logical layout of the screen, receives these cursor operations. The canvas 210 can cause the "aspect" to take the corresponding action. According to this relationship, the cursor subsystem 204 acts as a controller (C) for the MVC paradigm of the document manager 1081 . Canvas 210 also provides tasks for handling events. For example, the canvas 210 handles events such as mouse clicks, focus movements, and similar actions initiated by the user.

3.区、“方面”、画布和窗格之间的关系概述3. Overview of the relationship between Zones, Facets, Canvases, and Panes

文档处理系统内的文档可从至少四个角度来描述。即:1)用来保持文档处理系统中的文档的内容和结构的数据结构;2)在不影响文档完整性的同时编辑文档内容的方式;3)文档在屏幕上的逻辑布局;以及4)文档在屏幕上的物理布局。“区”、“方面”、“画布”和“窗格”分别表述与上述四个方面相对应的文档处理系统的组件。Documents within a document processing system can be described from at least four perspectives. Namely: 1) the data structure used to maintain the content and structure of the document in the document processing system; 2) the means by which the content of the document can be edited without compromising the integrity of the document; 3) the logical layout of the document on the screen; and 4) The physical layout of the document on the screen. "Area", "Aspect", "Canvas" and "Pane" represent components of the document processing system corresponding to the above four aspects, respectively.

4.撤消子系统4. Undo Subsystem

如上所述,人们希望对文档的任何改变(例如,编辑)都可撤消。例如,用户可执行编辑操作,然后决定撤消该改变。参照图12,撤消子系统212是文档管理器的可进行撤消操作的组件。撤消管理器(UndoManager:撤销管理单元)2121保存可被用户撤消的、对文档执行的所有操作。例如,用户可执行命令来将文档中的词语替换成另一个词语。之后,该用户可改变主意并决定保留原来的词语。撤消子系统212协助上述操作。撤消管理器2121保存上述可撤消编辑(UndoableEdit:可撤消编辑)2122的操作。As noted above, it is desirable that any changes (eg, edits) to a document be undoable. For example, a user may perform an edit operation and then decide to undo the change. Referring to FIG. 12, the undo subsystem 212 is a component of the document manager that can perform undo operations. The undo manager (UndoManager: undo management unit) 2121 saves all operations performed on the document that can be undone by the user. For example, a user may execute a command to replace a term in a document with another term. Later, the user may change his mind and decide to keep the original word. Undo subsystem 212 assists in the above operations. The undo manager 2121 saves the operation of the above-mentioned undoable edit (UndoableEdit: undoable edit) 2122 .

5.光标子系统5. Cursor subsystem

如上所述,MVC的控制器部分可包括光标子系统204。该光标子系统204接受来自用户的输入。这些输入通常具有命令和/或编辑操作的性质。因此,光标子系统204可被视作是与文档管理器1081相关的MVC范例的控制器(C)部分。As mentioned above, the controller portion of the MVC may include cursor subsystem 204 . The cursor subsystem 204 accepts input from a user. These inputs are usually in the nature of commands and/or editing operations. Accordingly, the cursor subsystem 204 can be viewed as the controller (C) part of the MVC paradigm associated with the document manager 1081 .

6.视图6. View

如上所述,画布210表述要显现在屏幕上的文档的逻辑布局。对于XHTML文档实施例而言,画布210可包括盒树(box tree)208,该盒树是文档在屏幕上如何被查看的逻辑表述。上述盒树208可包含在与文档管理器1081有关的MVC范例的视图(V)部分中。As mentioned above, the canvas 210 represents the logical layout of the document to be presented on the screen. For the XHTML document embodiment, the canvas 210 may include a box tree 208, which is a logical representation of how the document is viewed on the screen. The box tree 208 described above may be included in the view (V) portion of the MVC paradigm associated with the document manager 1081 .

D.词汇连接D. Lexical Connections

文档处理系统的一个重要特征是提供一种环境,该环境能够把XML文档映射为其他表述来处理,而且对映射后的表述编辑时,将该编辑反映到源XML文档中,同时保持该XML文档的完整性。An important feature of a document processing system is to provide an environment that can map XML documents to other representations for processing, and when editing the mapped representations, the edits are reflected in the source XML document while maintaining the XML document integrity.

由标记语言描述的文档,例如XML文档,基于通过文档类型定义的词汇创建。词汇则是一组标签集。由于词汇可以任意定义,这就使得词汇的数量可能是无限的。但是,为多个可能的词汇中的每一个都提供专用的单独处理和管理环境是不切实际的。词汇连接提供解决这种问题的一种方式。Documents described by a markup language, such as XML documents, are created based on a vocabulary defined by a document type. A vocabulary is a set of tags. Since vocabulary can be defined arbitrarily, this makes the number of vocabulary potentially infinite. However, it is impractical to provide a dedicated separate processing and management environment for each of the many possible vocabularies. Lexical connections provide one way to solve this problem.

例如,文档可以利用两种以上的标记语言来表述。这些文档例如可以是XHTML(可扩展超文本标记语言)、SVG(可缩放矢量图形)、MathML(数学标记语言)或其他的标记语言。换句话说,标记语言可以视为和XML中的词汇和标签集相同。For example, a document can be expressed using two or more markup languages. These documents can be, for example, XHTML (Extensible Hypertext Markup Language), SVG (Scalable Vector Graphics), MathML (Mathematical Markup Language) or other markup languages. In other words, a markup language can be considered the same as the vocabulary and tag set in XML.

词汇使用词汇插件来实现。在文档处理系统中,通过将以插件不可用的词汇所描述的文档映射为插件可用的另一词汇来显示。因此,对于以未准备有插件的词汇描述的文档仍然是可以正确显示。Vocabulary is implemented using the Vocabulary plugin. In the document processing system, it is displayed by mapping a document described in a vocabulary not available to the plug-in to another vocabulary available to the plug-in. Therefore, documents described in terms for which no plug-in is prepared can still be displayed correctly.

词汇连接包括获取定义文件、和根据获取的定义文件在两个不同的词汇之间进行映射的能力。用某种词汇描述的文档能够映射为另外的词汇。因此,词汇连接提供通过与文档已被映射成的词汇相对应的显示和编辑插件来显示或编辑文档的能力。Vocabulary linking includes the ability to take a definition file, and map between two different vocabularies based on the taken definition file. Documents described by a certain vocabulary can be mapped to another vocabulary. Thus, vocabulary links provide the ability to display or edit documents through display and editing plug-ins corresponding to the vocabulary into which the document has been mapped.

如上所述,各个文档在文档处理系统中被描述为通常具有多个节点的DOM树。“定义文件”为各个节点描述了该节点与其他节点之间的连接。规定了是否可以对各个节点的元素值和属性值进行编辑。还可以描述使用节点的元素值和属性值的运算表达式。As mentioned above, individual documents are described in a document processing system as a DOM tree usually having a plurality of nodes. A "definition file" describes for each node the connections between that node and other nodes. Specifies whether the element value and attribute value of each node can be edited. Operational expressions using element values and attribute values of nodes can also be described.

利用映射特征,可以创建采用定义文件的目的DOM树。由此建立并维护源DOM树和目的DOM树之间的关系。词汇连接监视源DOM树和目的DOM树之间的连接。在从用户接收到编辑指令后,词汇连接修改源DOM树中的相关节点。发出表示已经修改了源DOM树的“变化事件”,并且相应地修改目的DOM树。Using the mapping feature, an object DOM tree using a definition file can be created. In this way, the relationship between the source DOM tree and the target DOM tree is established and maintained. Lexical links monitor the links between the source DOM tree and the destination DOM tree. Upon receiving an editing instruction from the user, the lexical link modifies the relevant node in the source DOM tree. A "change event" is emitted indicating that the source DOM tree has been modified, and the destination DOM tree is modified accordingly.

通过使用词汇连接,使得仅有少量用户知道的相对次要的词汇可以被转换为其他主要的词汇。因此,即便是对于那些仅有少量用户使用的次要词汇,也可以准确地显示文档,并提供理想的编辑环境。By using lexical concatenation, relatively minor vocabularies known to only a small number of users can be transformed into other major vocabularies. As a result, documents can be accurately displayed and an ideal editing environment is provided even for secondary vocabulary that is used by only a few users.

因此,作为文档处理系统一部分的词汇连接子系统提供能够对文档进行多种表述的功能。Thus, the Lexical Connection Subsystem, which is part of a document processing system, provides functionality that enables multiple representations of documents.

图13显示了词汇连接(VC:Vocabulary Connection)子系统300。VC子系统300提供了一种维护同一文档的两种可替换表述之间的一致性的方式。例如,两种表述可以是同一文档以两种不同词汇来表现的。如上所述,其中一种可以是源DOM树,而另一种可以是目的DOM树。FIG. 13 shows a vocabulary connection (VC: Vocabulary Connection) subsystem 300 . The VC subsystem 300 provides a way to maintain consistency between two alternative representations of the same document. For example, two representations may be the same document represented by two different vocabularies. As mentioned above, one of them can be the source DOM tree, and the other can be the destination DOM tree.

1.词汇连接子系统1. Lexical Connection Subsystem

利用被称为词汇连接(VocabularyConnection)301的插件在文档处理系统中实现词汇连接子系统300的功能。表述文档的各词汇305都需要相应的插件。例如,如果文档的一部分以HTML表述,而其他部分以SVG表述,则需要与HTML和SVG分别对应的词汇插件。The function of the vocabulary connection subsystem 300 is implemented in the document processing system by using a plug-in called a vocabulary connection (VocabularyConnection) 301 . Each vocabulary 305 representing a document requires a corresponding plug-in. For example, if part of the document is expressed in HTML and other parts in SVG, separate vocabulary plugins are required for HTML and SVG.

词汇连接插件301为区209或窗格211创建与适当词汇305的文档相对应的适当的词汇连接画布(VCCanvas)310。使用词汇连接301,根据转换规则,对源DOM树的区209的改变被传递到另一DOM树306的相应区。转换规则以词汇连接描述符(Vocabulary Connection Descriptor:VCD)的形式给出。对于与源DOM和目的DOM之间的这种转换相对应的各个VCD文件,创建相应的词汇连接管理器(VCManager)302。The vocabulary connection plugin 301 creates the appropriate vocabulary connection canvas (VCCanvas) 310 for the field 209 or pane 211 corresponding to the documents of the appropriate vocabulary 305 . Using lexical connections 301, changes to regions 209 of the source DOM tree are propagated to corresponding regions of the other DOM tree 306 according to transformation rules. The conversion rules are given in the form of Vocabulary Connection Descriptor (VCD). For each VCD file corresponding to this transition between source DOM and destination DOM, a corresponding Vocabulary Connection Manager (VCManager) 302 is created.

2.连接器(Connector)2. Connector

连接器304连接源DOM树中的源节点和目的DOM树中的目的节点。连接器304的作用是观察源DOM树中的源节点,和对与源节点相对应的源文档进行的修改(变化)。接着,修改相应的目的DOM树中的节点。连接器304是能够对目的DOM树进行修改的唯一对象。例如,用户可以只对源文档和相应的源DOM树进行修改。之后,连接器304对目的DOM树进行相应的修改。The connector 304 connects the source node in the source DOM tree and the destination node in the destination DOM tree. The role of the connector 304 is to observe the source node in the source DOM tree, and the modification (change) made to the source document corresponding to the source node. Next, modify the node in the corresponding target DOM tree. Connector 304 is the only object capable of making modifications to the destination DOM tree. For example, a user may only make modifications to the source document and the corresponding source DOM tree. Afterwards, the connector 304 makes corresponding modifications to the target DOM tree.

连接器304被逻辑地链接在一起以形成树结构。连接器304形成的树被称为连接器树(ConnectorTree)。连接器304通过一种服务(Service)而创建,该服务被称为连接器工厂(ConnectorFactory:连接器生成单元)303的服务。连接器工厂303从源文档创建连接器304,并将其链接起来以形成连接器树。词汇连接管理器302维护连接器工厂303。Connectors 304 are logically linked together to form a tree structure. The tree formed by the connectors 304 is called a connector tree (ConnectorTree). The connector 304 is created by a service (Service) called a service of a connector factory (ConnectorFactory: connector generating unit) 303 . A connector factory 303 creates connectors 304 from source documents and links them together to form a connector tree. The vocabulary connection manager 302 maintains a connector factory 303 .

如上所述,词汇是命名空间中的标签集。如图所示,通过词汇连接301为文档创建词汇305。这通过分析文档文件以及为源DOM和目的DOM之间的映射创建适当的词汇连接管理器302来实现。此外,在创建连接器的连接器工厂303、创建区209的区工厂(ZoneFactory)205和创建与区内节点相对应的画布的Editlet 206之间建立适当的关联。当用户从系统中丢弃或删除文档时,对应的词汇连接管理器302将被删除。As mentioned above, a vocabulary is a set of tags in a namespace. As shown, a vocabulary 305 is created for a document through vocabulary connections 301 . This is accomplished by analyzing the document file and creating an appropriate lexical connection manager 302 for the mapping between the source and destination DOMs. In addition, an appropriate association is established between a connector factory 303 that creates a connector, a zone factory (ZoneFactory) 205 that creates a zone 209, and an Editlet 206 that creates a canvas corresponding to a node in a zone. When a user discards or deletes a document from the system, the corresponding vocabulary connection manager 302 will be deleted.

词汇305创建词汇连接画布310。此外,连接器304和目的DOM树306被相应地创建。Vocabulary 305 creates Vocabulary Connection Canvas 310 . Furthermore, a connector 304 and a destination DOM tree 306 are created accordingly.

源DOM和画布分别对应于模型(M)和视图(V)。然而,仅当目标词汇能够在屏幕上呈现时,这种表现才有意义。这种呈现通过词汇插件来进行。针对主要的词汇(例如XHTML、SVG和MathML)提供词汇插件。词汇插件与目标词汇关联使用。它们提供了一种使用词汇连接描述符在词汇之间进行映射的方式。The source DOM and canvas correspond to the model (M) and view (V) respectively. However, this representation is only meaningful if the target vocabulary can be represented on the screen. This rendering takes place via a vocabulary plugin. Vocabulary plugins are provided for major vocabularies such as XHTML, SVG, and MathML. Vocabulary plugins are used in association with the target vocabulary. They provide a way to map between vocabularies using lexical join descriptors.

仅在目标词汇可被映射并具有预先定义的屏幕呈现方式时,这种映射才有意义。这种呈现方式例如是由诸如W3C组织定义的XHTML等之类的标准规格。This mapping only makes sense if the target vocabulary can be mapped and has a predefined screen representation. Such a presentation method is, for example, a standard specification such as XHTML defined by the W3C organization.

在需要词汇连接时,使用词汇连接画布(VCCanvas)。在这种情况下,由于不能够为源直接创建视图,因此,不创建源的画布。在这种情况下,使用连接器树来创建词汇连接画布。这种词汇连接画布仅仅处理事件转换,而并不会有助于将文档呈现在屏幕上。Use the Vocabulary Connection Canvas (VCCanvas) when lexical connections are required. In this case, since a view cannot be created directly for the source, no canvas for the source is created. In this case, a Connector Tree is used to create a Vocabulary Connection Canvas. This Lexicon Connection Canvas only handles event transitions and does not contribute to rendering the document on the screen.

3.目的区(DestinationZone)、窗格(Pane)以及画布(Canvas)3. DestinationZone, Pane and Canvas

如上所述,词汇连接子系统的目的在于同时创建并维护对同一文档的两种表述。第二表述也是DOM树形式,先前作为目的DOM树已被说明。为了浏览第二种表述的文档,需要目的区、画布和窗格。As mentioned above, the purpose of the Lexical Connection subsystem is to simultaneously create and maintain two representations of the same document. The second representation is also in the form of a DOM tree, which was previously described as the destination DOM tree. In order to browse documents in the second representation, destinations, canvases, and panes are required.

在创建词汇连接画布后,将创建相应的目的窗格(DestinationPane)307。此外,相关的目的画布(DestinationCanvas)308和相应的盒树(BoxTree)309被创建。同样,词汇连接画布310还与源文档的窗格211和区209关联。After creating the Vocabulary Connection Canvas, a corresponding DestinationPane (DestinationPane) 307 will be created. Furthermore, an associated DestinationCanvas (DestinationCanvas) 308 and a corresponding BoxTree (BoxTree) 309 are created. Likewise, the Lexical Connections Canvas 310 is also associated with the pane 211 and section 209 of the source document.

目的画布308提供了文档的第二种表述方式的逻辑布局。具体地,目的画布308提供了用户界面功能,例如光标和选择,用于以目的表述的方式呈现文档。在目的画布308中发生的事件被提供到连接器。目的画布308向连接器304通知鼠标事件、键盘事件、拖动和放置事件、以及通知文档的目的(第二种)表述的词汇的特有事件。The destination canvas 308 provides the logical layout of the second representation of the document. In particular, the intent canvas 308 provides user interface functionality, such as cursor and selection, for presenting documents in an intent representation. Events that occur in the destination canvas 308 are provided to the connector. The destination canvas 308 notifies the connector 304 of a mouse event, a keyboard event, a drag and drop event, and an event specific to the vocabulary of the destination (second type) expression of the document.

4.词汇连接命令子系统4. Lexical Connection Command Subsystem

作为词汇连接(VC)子系统300的一部分是词汇连接(VC)命令子系统313。词汇连接命令子系统313创建词汇连接命令(VCCommand)315,词汇连接命令315用来执行与词汇连接子系统300相关的指令。可通过内建的命令模板(CommandTemplate)318来创建词汇连接命令,和/或可通过在脚本子系统314中使用脚本语言从无到有地创建命令而创建词汇连接命令。As part of the vocabulary connection (VC) subsystem 300 is the vocabulary connection (VC) command subsystem 313 . The vocabulary connection command subsystem 313 creates a vocabulary connection command (VCCommand) 315 , which is used to execute instructions related to the vocabulary connection subsystem 300 . Lexical connection commands may be created through built-in CommandTemplate 318 and/or may be created from scratch using a scripting language in scripting subsystem 314 .

命令模板中包括,例如“If”命令模板、“When”命令模板、“Insertfragment”命令模板等。这些模板被用来创建词汇连接命令。Command templates include, for example, an "If" command template, a "When" command template, an "Insertfragment" command template, and the like. These templates are used to create lexical join commands.

5.XPath子系统5. XPath subsystem

XPath子系统316是文档处理系统的一个重要组件,它有助于实现词汇连接。连接器304通常包括XPath信息。如上所述,词汇连接的任务之一是将源DOM树的变化反映到目的DOM树中。XPath信息包括一个或多个XPath表述,用来确定对改变/修改加以监视的源DOM树的子集。The XPath subsystem 316 is an important component of the document processing system that facilitates lexical connections. Connector 304 typically includes XPath information. As mentioned above, one of the tasks of lexical linking is to reflect changes in the source DOM tree to the destination DOM tree. The XPath information includes one or more XPath expressions used to identify the subset of the source DOM tree to monitor for changes/modifications.

6.源DOM树、目的DOM树和连接器树(ConnectorTree)的概述6. Overview of source DOM tree, destination DOM tree and connector tree (ConnectorTree)

源DOM树是对转换为另一种词汇之前的词汇表述的文档进行表述的DOM树或区。在源DOM树中的节点被称为源节点。A source DOM tree is a DOM tree or region that represents a document of a vocabulary before conversion to another vocabulary. Nodes in the source DOM tree are called source nodes.

另一方面,如已在前面结合词汇连接描述的,目的DOM树是通过映射转换后以不同词汇表述的文档的DOM树或区。目的DOM树中的节点被称为目的节点。On the other hand, as described above in connection with vocabulary connection, the target DOM tree is the DOM tree or region of the document expressed in different vocabulary after conversion through mapping. A node in the destination DOM tree is called a destination node.

连接器树是基于用来表述源节点和目的节点之间的对应关系的连接器的分级表述。连接器监视源节点和对源文档进行的修改,修改目的DOM树。连接器是被允许修改目的DOM树的唯一对象。A connector tree is a hierarchical representation based on connectors used to express the correspondence between source nodes and destination nodes. The linker monitors the source node and changes made to the source document, modifying the destination DOM tree. Connectors are the only objects that are allowed to modify the destination DOM tree.

E.文档处理系统中的事件流E. Event Flow in a Document Processing System

为了能够使用,程序必需对来自用户的命令进行响应。事件是一种描述和执行用户对程序实施的动作的方法。许多高级语言例如Java(注册商标)依靠描述用户动作的事件。在现有技术中,程序需要主动收集信息以理解用户操作和由程序自己执行用户的操作。这意味着,例如,在对程序自身初始化后,为了在用户对屏幕、键盘和鼠标等执行了任何操作时进行适当的处理,进入反复确认用户操作的循环。然而,这种处理难以操控。此外,这种处理在等候用户作某些事情时,还需要执行循环的程序,从而消耗了CPU周期。To be usable, a program must respond to commands from the user. Events are a way to describe and execute actions performed by the user on a program. Many high-level languages such as Java(registered trademark) rely on events to describe user actions. In the prior art, the program needs to actively collect information to understand the user's operation and the program itself executes the user's operation. This means, for example, that after initializing the program itself, in order to perform appropriate processing when the user performs any operation on the screen, keyboard, mouse, etc., entering a loop repeatedly confirms the user's operation. However, this process is difficult to manipulate. Additionally, this processing consumes CPU cycles by executing a looping program while waiting for the user to do something.

许多语言通过包含不同的范例来解决这些问题。其中的一个范例即事件驱动程序构成了所有现代的视图系统的基础。在这种范例中,所有的用户动作属于被称为“事件”的抽象现象的集合。事件足够详细地描述了特定的用户动作。程序不是主动地收集用户创建的事件,而是在要监视的事件发生时,由系统通知程序。以这种方式处理用户交互的程序被称为“事件驱动”。Many languages address these issues by including different paradigms. One such paradigm, event-driven, forms the basis of all modern view systems. In this paradigm, all user actions belong to a collection of abstract phenomena called "events". Events describe specific user actions in sufficient detail. The program does not actively collect user-created events, but the system notifies the program when the event to be monitored occurs. Programs that handle user interaction in this way are said to be "event-driven".

在多数场合,使用“事件(Event)”类来进行处理,其中事件类获取所有用户创建事件的基本特性。In most cases, the "event (Event)" class is used for processing, where the event class obtains the basic characteristics of all user-created events.

文档处理系统定义和使用其自身的事件以及处理这些事件的方式。有几种类型的事件被使用。例如,鼠标事件是由用户的鼠标操作引起的事件。与鼠标有关的用户操作由画布210传递到鼠标事件。因此,画布可以被认为是用户与系统交互的最前沿。如果需要,作为最前沿的画布将把其与事件有关的内容传递到其下(子)级。The document processing system defines and uses its own events and how to handle them. Several types of events are used. For example, a mouse event is an event caused by a user's mouse operation. User operations related to the mouse are passed by the canvas 210 to mouse events. As such, the canvas can be considered the forefront of user interaction with the system. A canvas that is the forefront will pass its event-related content down to its lower (child) levels if necessary.

另一方面,按键事件从画布210产生。按键事件具有瞬时的焦点。即,按键事件总是涉及操作。输入到画布210的按键事件接着被传递到其上级(父)。键盘输入通过能够处理字符串插入的不同事件而被处理。处理字符串插入的事件将在使用键盘插入字符时发生。其他的“事件”例如包括以与拖动事件、放置事件和鼠标事件相似的方式处理的其他事件。On the other hand, a key event is generated from the canvas 210 . Keypress events have instant focus. That is, a key event always involves an action. A key event input to the canvas 210 is then passed to its superior (parent). Keyboard input is handled through different events that can handle string insertion. Events that handle string insertion will occur when characters are inserted using the keyboard. Other "events" include, for example, other events handled in a similar manner to drag events, drop events, and mouse events.

1.在词汇连接之外的事件处理1. Event handling outside of lexical connections

使用事件线程对事件进行传递。在接收到事件后,画布210改变其状态。如果需要,画布210将命令(Command)1052记入到命令队列(CommandQueue)1053。Events are delivered using the event thread. Upon receiving an event, the canvas 210 changes its state. The canvas 210 posts the command (Command) 1052 to the command queue (CommandQueue) 1053 if necessary.

2.在词汇连接之内的事件处理2. Event handling within lexical connections

通过使用词汇连接插件301,作为目的画布一例的XHTML画布(XHTMLCanvas)1106接收现有的事件,例如鼠标事件、键盘事件、拖动和放置事件、以及词汇中的特有事件。这些事件接着被通知到连接器304。更具体地说,如图21(b)所示,词汇连接插件301内的事件流经过源窗格(SourcePane)1103、词汇画布1104、目的窗格1105、作为目的画布的实施例的目的画布1106、目的DOM树和连接器树。By using the vocabulary connection plug-in 301, the XHTML Canvas (XHTMLCanvas) 1106 as an example of the destination canvas receives existing events such as mouse events, keyboard events, drag and drop events, and unique events in the vocabulary. These events are then notified to connector 304 . More specifically, as shown in Figure 21 (b), the event flow in the vocabulary connection plug-in 301 passes through the source pane (SourcePane) 1103, the vocabulary canvas 1104, the destination pane 1105, and the destination canvas 1106 as an embodiment of the destination canvas , the destination DOM tree and the connector tree.

F.程序调用器(ProgramInvoker)及其与其他组件之间的关系F. Program Invoker (ProgramInvoker) and its relationship with other components

在图14(a)中更加详细地显示了程序调用器103及其与其他组件之间的关系。程序调用器103是在执行环境中被执行以启动文档处理系统的基本程序。如图11(b)及图11(c)所示,用户应用程序(UserApplication)106、服务代理(ServiceBroker)1041、命令调用器(CommandInvoker)1051和资源(Resource)109都被联接到程序调用器103。如前所述,应用程序102是在执行环境中运行的组件。同样,服务代理1041管理向系统增加各种功能的插件。另一方面,命令调用器1051执行用户提供的指令,维护用来执行命令的类和函数。The procedure invoker 103 and its relationship to other components are shown in more detail in Fig. 14(a). The program invoker 103 is a basic program executed in the execution environment to start the document processing system. As shown in Figure 11(b) and Figure 11(c), user application program (UserApplication) 106, service agent (ServiceBroker) 1041, command invoker (CommandInvoker) 1051 and resource (Resource) 109 are all connected to the program invoker 103. As previously mentioned, applications 102 are components that run within an execution environment. Likewise, the Service Broker 1041 manages plug-ins that add various functions to the system. On the other hand, the command invoker 1051 executes instructions provided by the user and maintains classes and functions for executing commands.

1.插件和服务1. Plugins and Services

下面将参照图14(b)详细描述服务代理1041。如上所述,服务代理1041管理向系统增加各种功能的插件(及相关服务)。服务1042在最底层,其能够将特征增加到文档处理系统中或者改变文档处理系统的特征。“服务”由两部分构成:服务种类(ServiceCategory)401和服务提供器(ServiceProvider)402。如图14(c)所示,单个服务种类401可具有多个相关的服务提供器402。每个服务提供器都可操作以执行所有或部分的特定服务种类。另一方面,服务种类401则定义了服务的类型。The service agent 1041 will be described in detail below with reference to FIG. 14(b). As noted above, the Service Broker 1041 manages plugins (and associated services) that add various functionality to the system. Services 1042 are at the lowest level and can add features to or change features of the document processing system. "Service" consists of two parts: service category (ServiceCategory) 401 and service provider (ServiceProvider) 402 . As shown in FIG. 14( c ), a single service category 401 may have multiple associated service providers 402 . Each service provider is operable to perform all or part of a particular service category. On the other hand, service category 401 defines the type of service.

服务可分为三种类型:1)“特征服务”,向文档处理系统提供特定特征;2)“应用程序服务”,是由文档处理系统运行的应用程序;3)“环境服务”,提供在整个文档处理系统中需要的特征。Services can be divided into three types: 1) "feature services", which provide specific features to document processing systems; 2) "application services", which are applications run by document processing systems; 3) "environment services", which provide Features needed in the overall document processing system.

图14(d)中示出了服务的例子。根据应用程序服务的种类(Category),系统实用程序是相应服务提供器的示例。同样,Editlet206是一个种类,HTML Editlet和SVG Editlet是相应的服务提供器。区工厂205是服务的另一种,并具有相应的服务提供器(未示出)。An example of the service is shown in Fig. 14(d). According to the category of application service (Category), the system utility is an example of the corresponding service provider. Likewise, Editlet 206 is a category, and HTML Editlet and SVG Editlet are corresponding service providers. The zone factory 205 is another type of service and has a corresponding service provider (not shown).

已经描述的向文档处理系统增加功能的插件,可以看作是由几个服务提供器402和与其相关的类构成的单元。各个插件都具有在定义文件中记载的从属关系和服务种类401。The plug-ins that have been described to add functionality to the document processing system can be viewed as a unit composed of several service providers 402 and their associated classes. Each plug-in has an affiliation and a service type 401 described in a definition file.

2.程序调用器(ProgramInvoker)和应用程序之间的关系2. The relationship between the program invoker (ProgramInvoker) and the application

图14(e)详细显示了程序调用器103和用户应用程序106之间的关系。所需的文档、数据等从存储器中载入。所有需要的插件载入到服务代理1041。服务代理1041维护并管理所有的插件。可将插件物理地增加到系统,或者可从存储器中载入其功能。在载入插件的内容后,服务代理1041定义相应的插件。接着,相应的用户应用程序106被创建,并被载入执行环境101并联接到程序调用器103。FIG. 14(e) shows the relationship between the program invoker 103 and the user application 106 in detail. Required documents, data, etc. are loaded from memory. All required plugins are loaded into the service agent 1041 . Service Broker 1041 maintains and manages all plug-ins. Plug-ins can be physically added to the system, or their functionality can be loaded from memory. After loading the content of the plug-in, the service proxy 1041 defines the corresponding plug-in. Next, a corresponding user application 106 is created, loaded into the execution environment 101 and linked to the program invoker 103 .

G.应用程序服务和环境之间的关系G. Relationship between application services and environments

图15(a)更详细地示出了载入程序调用器103中的应用程序服务的结构。作为命令子系统105组件的命令调用器1051调用或执行程序调用器103内的命令1052。命令1052则是用来在文档处理系统中处理XML等文档和编辑相应的XML DOM树的指令。命令调用器1051维护执行命令1052所需的类和功能。FIG. 15(a) shows the structure of the application service loaded in the program invoker 103 in more detail. A command invoker 1051 , which is a component of the command subsystem 105 , invokes or executes a command 1052 within the program invoker 103 . Command 1052 is an instruction for processing documents such as XML and editing corresponding XML DOM trees in the document processing system. Command invoker 1051 maintains the classes and functions needed to execute commands 1052 .

服务调用器1041也在程序调用器103中执行。用户应用程序106连接到用户界面107和核心组件110。核心组件110提供了一种在所有的窗格中共享文档的方式。核心组件110还提供字体并作为用于窗格的工具包。The service invoker 1041 is also executed in the program invoker 103 . User applications 106 are connected to user interface 107 and core components 110 . Core component 110 provides a way to share documents across all panes. The core component 110 also provides fonts and acts as a toolkit for panes.

图15(b)显示了框架(frame)1071、菜单栏(MenuBar)1072和状态栏(StatusBar)1073之间的关系。FIG. 15( b ) shows the relationship among frame (frame) 1071 , menu bar (MenuBar) 1072 and status bar (StatusBar) 1073 .

H.应用程序核心H. Application Core

图16(a)进一步解释了应用程序核心108,其保持所有文档以及作为文档一部分及属于文档的数据。核心组件110联接到管理文档1082的文档管理器(DocumentManager)1081。文档管理器1081是存储到与文档处理系统关联的存储器中的所有文档1082的所有者。Figure 16(a) further explains the application core 108, which maintains all documents and the data that is part of and belonging to the documents. The core component 110 is coupled to a document manager (DocumentManager) 1081 that manages documents 1082 . The document manager 1081 is the owner of all documents 1082 stored into memory associated with the document processing system.

为了便于在屏幕上显示文档,文档管理器1081还连接到根窗格(RootPane)1084。剪贴板(ClipBoard)1087、快照(SnapShot)1088、拖拉和放置(Drag&Drop)601以及重叠(Overlay)602的功能也被联接到核心组件110。The document manager 1081 is also connected to a root pane (RootPane) 1084 in order to display documents on the screen. Functions of ClipBoard 1087 , SnapShot 1088 , Drag & Drop 601 , and Overlay 602 are also coupled to the core component 110 .

快照1088用来撤消应用程序状态。在用户启动快照1088的功能时,应用程序的当前状态被检测并存储。之后,在应用程序的状态变为另一状态时,所存储的状态的内容被保存下来。在图16(b)中示出了快照1088。在操作中,当应用程序从一个URL移动到另一个时,快照1088记住先前的状态,从而能够无缝地执行后退和前进操作。Snapshot 1088 is used to undo application state. When the user initiates the functionality of snapshot 1088, the current state of the application is detected and stored. Later, when the state of the application changes to another state, the contents of the stored state are preserved. A snapshot 1088 is shown in Figure 16(b). In operation, as the application moves from one URL to another, snapshot 1088 remembers the previous state, enabling back and forward operations to be performed seamlessly.

I.在文档管理器中组织文档I. Organizing Documents in Document Manager

图17(a)更加详细地描述了文档管理器1081以及如何在文档管理器中组织并保存文档。如图11(b)所示,文档管理器1081管理文档1082。在图17(a)显示的实施例中,多个文档中的一个为根文档(RootDocument)701,其他的文档为子文档(SubDocument)702。文档管理器1081连接到根文档701,根文档701则连接到所有的子文档702。Figure 17(a) describes the document manager 1081 in more detail and how documents are organized and saved in the document manager. As shown in FIG. 11( b ), a document manager 1081 manages documents 1082 . In the embodiment shown in FIG. 17( a ), one of the multiple documents is a root document (RootDocument) 701 , and the other documents are subdocuments (SubDocument) 702 . The document manager 1081 is connected to the root document 701 , and the root document 701 is connected to all subdocuments 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管理。As shown in FIGS. 12 and 17( a ), the document manager 1081 is coupled to a document container 203 which is an object for managing all documents 1082 . Tools forming part of the toolkit 201 (eg XML Toolkit) including a DOM Service (DOMService) 703 and an IO Manager (IOManager) 704 are also provided to the Document Manager 1081 . Referring again to FIG. 17( a ), the DOM service 703 creates a DOM tree based on the document managed by the document manager 1081 . Each document 705, whether it is the root document 701 or the sub-document 702, is managed by the corresponding document container 203.

图17(b)显示了一组文档A-E是如何以分级结构排列的实施例。文档A为根文档。文档B-D是文档A的子文档。文档E则是文档D的子文档。图17(b)的左侧显示了与此相同文档的分级结构显示在屏幕上的实施例。作为根文档的文档A显示为基础框架。文档A的子文档B-D显示为在基础框架A内的子框架。文档D的子文档E在屏幕上显示为子框架D的子框架。Figure 17(b) shows an example of how a set of documents A-E are arranged in a hierarchical structure. Document A is the root document. Documents B-D are subdocuments of Document A. Document E is a subdocument of Document D. The left side of Fig. 17(b) shows an example in which the hierarchical structure of the same document is displayed on the screen. Document A, which is the root document, is displayed as the base frame. Document A's subdocuments B-D appear as subframes within base frame A. Subdocument E of document D is displayed on the screen as a subframe of subframe D.

再参照图17(a),为各个文档容器203创建撤消管理器706(UndoManager:撤消管理单元)和撤消封装器(Undo Wrapper)707。撤消管理器706和撤消封装器707用来执行可撤消的命令。使用该特征,可以撤消使用编辑操作对文档所作的改变。子文档中的改变也会涉及到根文档。撤消操作考虑到对分级结构内其他文档产生影响的改变,例如,如图7(c)所示,确保维护在分级结构链中的所有文档之间的一致性。Referring again to FIG. 17( a ), an undo manager 706 (UndoManager: undo management unit) and an undo wrapper (Undo Wrapper) 707 are created for each document container 203 . Undo manager 706 and undo wrapper 707 are used to execute undoable commands. Using this feature, changes made to a document using editing operations can be undone. Changes in subdocuments also affect the root document. The undo operation takes into account changes affecting other documents within the hierarchy, eg, as shown in Figure 7(c), ensuring that consistency between all documents in the hierarchy chain is maintained.

撤消封装器707将与容器203中的子文档相关的撤消对象进行封装,并将它们和与根文档相关的撤消对象耦合。撤消封装器707收集可撤消编辑接受器(UndoableEditAcceptor:可撤消编辑接受单元)709可利用的撤消对象。The undo wrapper 707 encapsulates the undo objects related to the sub-documents in the container 203 and couples them with the undo objects related to the root document. The undo wrapper 707 collects the undo objects available to the undoable edit acceptor (UndoableEditAcceptor: undoable edit accepting unit) 709 .

撤消管理器706和撤消封装器707连接到可撤消编辑接收器709和可撤消编辑源(UndoableEditResource)708。本领域技术人员应该理解,文档705可以是可撤消编辑源708,也可以是可撤消编辑对象的源。Undo manager 706 and undo wrapper 707 are connected to undoable edit sink 709 and undoable edit source (UndoableEditResource) 708 . It should be understood by those skilled in the art that the document 705 can be the source of undo editable edits 708, and can also be the source of undo editable objects.

J.撤消命令和撤消框架J. Undo commands and undo frames

图18(a)和18(b)进一步详细地显示了撤消框架和撤消命令。如图18(a)所示,撤消命令(UndoCommand)801、重做命令(RedoCommand)802和可撤消编辑命令(UndoableEditCommand)803是能够排列在如图11(b)所示的命令调用器1051中的命令,并且被顺序执行。可撤消编辑命令803还进一步联接到可撤消编辑源708和可撤消编辑接受器709。“foo”编辑命令804和“bar”编辑命令805就是可撤消编辑命令的例子。Figures 18(a) and 18(b) show the undo frame and undo command in further detail. As shown in Figure 18 (a), undo command (UndoCommand) 801, redo command (RedoCommand) 802 and undoable editing command (UndoableEditCommand) 803 can be arranged in the command invoker 1051 as shown in Figure 11 (b) commands and are executed sequentially. The undoable edit command 803 is also further coupled to the undoable edit source 708 and the undoable edit acceptor 709 . The "foo" edit command 804 and the "bar" edit command 805 are examples of undoable edit commands.

1.可撤消编辑命令的执行1. Execution of undoable editing commands

图18(b)显示了可撤消编辑命令的执行。首先,假设用户使用编辑命令来编辑文档705。在第一步骤S1,可撤消编辑接受器709被联接到可撤消编辑源708,而可撤消编辑源708为文档705的DOM树。在第二步骤S2,基于由用户发出的命令,使用DOM API对文档705进行编辑。在第三步骤S3,向变化事件监听器通知已经发生了改变。即,在该步骤,监视DOM树中所有改变的监听器检测编辑操作。在第四步骤S4,可撤消的编辑作为撤消管理器706的对象被存储。在第五步骤S5,可撤消编辑接受器709与可撤销编辑源708分开。可撤消编辑源708也可以是文档705本身。Figure 18(b) shows the execution of the undoable edit command. First, assume that a user edits a document 705 using an edit command. In a first step S1 , the undoable edit acceptor 709 is coupled to the undoable edit source 708 , which is the DOM tree of the document 705 . In a second step S2, the document 705 is edited using the DOM API based on commands issued by the user. In a third step S3, the change event listener is notified that a change has occurred. That is, at this step, edit operations are detected by a listener monitoring all changes in the DOM tree. In a fourth step S4, undoable edits are stored as objects of the undo manager 706 . In a fifth step S5, the undoable edit acceptor 709 is separated from the undoable edit source 708 . Source of undoable edits 708 may also be document 705 itself.

K.与向系统载入文档有关的步骤K. Steps Related to Loading Documents into the System

上述子部分描述了系统的各个组件和子组件。下面将描述在使用这些组件时用到的方法。图19(a)显示了如何将文档载入到文档处理系统中的总体图。在图24-28中,结合特定的例子详细地描述各个步骤。The preceding subsections describe the individual components and subcomponents of the system. The methods used when using these components are described below. Figure 19(a) shows an overview of how documents are loaded into the document processing system. In FIGS. 24-28, each step is described in detail with specific examples.

简言之,文档处理系统从文档中包含的数据构成的二进制数据流创建DOM。为文档中的感兴趣的并属于“区”中的一部分创建顶节点(ApexNode:顶点节点)。接着确定相应的“窗格”。所确定的窗格从顶节点和物理屏幕表面创建“区”和“画布”。接着,“区”为各个节点创建“方面”,并为它们提供所需信息。画布创建用于呈现DOM树的节点的数据结构。In short, a document processing system creates a DOM from a binary stream of data contained in a document. An apex node (ApexNode: apex node) is created for a part of the document that is of interest and belongs to the "region". Then identify the appropriate "pane". The determined pane creates a "zone" and "canvas" from the top node and the physical screen surface. Next, "districts" create "aspects" for each node and provide them with the required information. The canvas creates the data structure used to render the nodes of the DOM tree.

具体地,文档从存储器901载入。创建文档的DOM树902。创建保持文档的相应文档容器903。接着将文档容器903联接到文档管理器904。DOM树包括根节点,在一些情况下可包括多个次级节点。Specifically, the document is loaded from the memory 901 . A DOM tree 902 of the document is created. A corresponding document container 903 is created to hold the documents. The document container 903 is then coupled to the document manager 904 . A DOM tree includes a root node, and in some cases may include multiple secondary nodes.

这种文档一般既包含文本也包含图形。因此,DOM树例如不仅具有XHTML子树也可以具有SVG子树。XHTML子树具有XHTML顶节点(ApexNode)905。同样,SVG子树具有SVG顶节点906。Such documents typically contain both text and graphics. Thus, for example, a DOM tree can have not only an XHTML subtree but also an SVG subtree. The XHTML subtree has an XHTML apex node (ApexNode) 905 . Likewise, the SVG subtree has an SVG top node 906 .

在步骤1,将顶节点906联接到窗格907,窗格907是屏幕的逻辑布局。在步骤2,窗格907向作为窗口拥有者(PaneOwner)908的核心组件请求用于顶节点的906区工厂。在步骤3,窗口拥有者908返回区工厂以及用于顶节点906的Editlet。In step 1, a top node 906 is joined to a pane 907, which is the logical layout of the screen. In step 2, pane 907 requests 906 area factory for top node from core component as window owner (PaneOwner) 908 . In step 3, the window owner 908 returns the zone factory and the Editlet for the top node 906.

在步骤4,窗格907创建区909,区909联接至窗格907。在步骤5,区909为各个节点创建“方面”,并联接到相应的节点。在步骤6,窗格907创建画布910。画布910联接到窗格907。在画布910中包括各种命令。在步骤7,画布910则构建用于将文档呈现在屏幕上的数据结构。在XHTML的情况下,这包括盒树结构。In step 4, pane 907 creates region 909 , which is joined to pane 907 . In step 5, the zone 909 creates "aspects" for each node and links to the corresponding nodes. At step 6, pane 907 creates canvas 910. Canvas 910 is coupled to pane 907 . Various commands are included in the canvas 910 . In step 7, the canvas 910 builds a data structure for presenting the document on the screen. In the case of XHTML, this includes the box tree structure.

1.用于区的MVC1. MVC for Zone

图19(b)使用MVC范例显示了区的结构概要。在这种情况下,由于区和“方面”是与文档相关的输入,模型(M)包括区和“方面”。由于画布和将文档呈现在屏幕上的数据结构是用户在屏幕上看到的输出,所以视图(V)对应于画布以及数据结构体。由于命令对文档及其各种关系执行控制操作,所以控制(C)包括画布中所包含的命令。Fig. 19(b) shows an outline of the structure of an area using the MVC paradigm. In this case, since regions and "facets" are document-related inputs, the model (M) includes regions and "facets". Since the canvas and the data structure that renders the document on the screen are the output that the user sees on the screen, the view (V) corresponds to the canvas and the data structure. Control (C) includes the commands contained in the canvas, since the commands perform control operations on the document and its various relationships.

L.文档的表述L. Document representation

下面将使用图20来描述文档及其各种表述的实施例。在该实施例中使用的文档既包含文本也包含图片。文本使用XHTML表述,而图片用SVG表述。图20详细显示了文档组件以及相应对象的关系的MVC表述。在该示例中,文档1001联接到保持文档1001的文档容器1002。文档通过DOM树1003表述。DOM树包括顶节点1004。Examples of documents and various expressions thereof will be described below using FIG. 20 . The documents used in this embodiment contain both text and pictures. Text is represented using XHTML, while images are represented using SVG. Figure 20 shows in detail the MVC representation of document components and the relationship of the corresponding objects. In this example, document 1001 is coupled to document container 1002 that holds document 1001 . A document is represented by a DOM tree 1003 . The DOM tree includes a top node 1004 .

顶节点用阴影圆圈表示。非顶节点用非阴影圆圈表示。用来编辑节点的“方面”用三角形表示,并被联接到相应的节点。由于文档具有文本和图片,所以该文档的DOM树包括XHTML部分和SVG部分。顶节点1004是XHTML子树的最顶部的节点。该节点被联接到XHTML窗格1005,XHTML窗格(XHTMLPane)1005是文档XHTML部分的物理表述的最顶部窗格。顶节点1004还联接到XHTML区(XHTMLZone)1006,其中XHTML区1006是文档的DOM树的一部分。Top nodes are indicated by shaded circles. Non-top nodes are indicated by unshaded circles. "Aspects" for editing nodes are represented by triangles and are linked to the corresponding nodes. Since the document has text and pictures, the DOM tree of the document includes an XHTML part and an SVG part. Top node 1004 is the topmost node of the XHTML subtree. This node is linked to the XHTML Pane 1005, which is the topmost pane of the physical representation of the XHTML portion of the document. Top node 1004 is also linked to XHTML zone (XHTMLZone) 1006, where XHTML zone 1006 is part of the document's DOM tree.

与节点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。The "facet" corresponding to node 1004 is also linked to XHTML zone 1006 . The XHTML area 1006 is then linked to the XHTML pane 1005 . The XHTML Editlet creates an XHTML Canvas 1007, which is a logical representation of a document. The XHTML canvas 1007 is linked to the XHTML pane 1005 . The XHTML canvas 1007 creates a Box Tree (BoxTree) 1009 for the XHTML components of the document 1001 . Various commands 1008 required to maintain and render the XHTML portion of the document are also added to the XHTML canvas 1007 .

同样,文档的SVG子树的顶节点1010被联接到SVG区(SVGZone)1011,SVG区1011是用于表述文档的SVG组件的文档1001的DOM树的部分。顶节点1010被联接到SVG窗格(SVGPane)1013,SVG窗格1013是文档的SVG部分的物理表述的最顶部窗格。表述文档的SVG部分的逻辑表述的SVG画布(SVGCanvas)1012通过SVGEditlet创建,并被联接到SVG窗格1013。用于将文档的SVG部分呈现在屏幕上的数据结构和命令被联接到SVG画布。例如,如图所示,这种数据结构可包括圆圈、线、矩形等。Likewise, the top node 1010 of the document's SVG subtree is linked to an SVG zone (SVGZone) 1011, which is the portion of the document's 1001 DOM tree for expressing the document's SVG components. Top node 1010 is linked to SVG pane (SVGPane) 1013, which is the topmost pane of the physical representation of the SVG portion of the document. An SVG Canvas (SVGCanvas) 1012 representing a logical representation of the SVG portion of the document is created by the SVGEditlet and linked to the SVG Pane 1013 . The data structures and commands used to render the SVG portion of the document to the screen are linked to the SVG canvas. For example, as shown, such data structures may include circles, lines, rectangles, and the like.

对于结合图20描述的文档例表述的一部分,参照图21(a)用已经描述的MVC范例来作进一步描述。图21(a)提供了文档1001的XHTML组件中的MV关系的简化图。模型是用于文档1001的XHTML组件的XHTML区(XHTMLZone)1101。在XHTML区的树中包括几个节点及其相应的“方面”。相应的XHTML区和窗格是MVC范例的模型(M)部分的一部分。MVC范例的视图(V)部分是用于文档1001的HTML组件的相应的XHTML画布(XHTMLCanvas)1102和盒树。通过画布以及其中所包含的命令,文档的XHTML部分被呈现在屏幕上。键盘和鼠标输入等事件如图所示,向相反方向进行处理。For a part of the document example expression described in conjunction with FIG. 20 , further description will be made with the already described MVC example with reference to FIG. 21( a ). FIG. 21(a) provides a simplified diagram of the MV relationships in the XHTML components of document 1001. A model is an XHTML zone (XHTMLZone) 1101 for XHTML components of a document 1001 . Several nodes and their corresponding "aspects" are included in the tree of the XHTML zone. The corresponding XHTML fields and panes are part of the model (M) part of the MVC paradigm. The view (V) part of the MVC paradigm is the corresponding XHTML Canvas (XHTMLCanvas) 1102 and box tree for the HTML components of the document 1001 . The XHTML portion of the document is rendered on the screen through the canvas and the commands contained within it. Events such as keyboard and mouse input are processed in the opposite direction as shown in the figure.

源窗格(SourcePane)具有附加功能,也就是说,起到DOM保持器的作用。图21(b)提供了在图21(a)中示出的用于文档1001的组件的词汇连接。作为源DOM保持器的源窗格1103包含文档的源DOM树。连接器树通过连接器工厂创建,创建还起到目的DOM的保持器作用的目的窗格(DestinationPane)1105。目的窗格1105以盒树的形式被布置为XHTML目的画布(XHTMLDestinationCanvas)1106。The source pane (SourcePane) has additional functionality, that is to say, acts as a DOM keeper. Figure 21(b) provides the lexical connections for the components of document 1001 shown in Figure 21(a). Source pane 1103, which is a source DOM holder, contains the document's source DOM tree. The connector tree is created by the connector factory, creating a Destination Pane (DestinationPane) 1105 that also acts as a holder for the Destination DOM. The destination pane 1105 is arranged as an XHTML Destination Canvas (XHTMLDestinationCanvas) 1106 in the form of a box tree.

M.插件子系统、词汇连接和连接器之间的关系M. Relationships between plugin subsystems, lexical connections, and connectors

图22(a)-(c)分别显示了与插件子系统、词汇连接和连接器相关的进一步的细节。插件子系统被用来向文档处理系统增加、或与之交换功能。插件子系统包括服务代理(ServiceBroker)1041。联接到服务代理1041的区工厂服务1201创建用于文档的部分的区。Editlet服务(EditletService)1202也被联接到服务代理1041。Editlet服务1202创建与区中的节点相对应的画布。Figures 22(a)-(c) show further details related to the plug-in subsystem, vocabulary connections, and connectors, respectively. The plug-in subsystem is used to add functionality to, or exchange functionality with, the document processing system. The plug-in subsystem includes a service broker (ServiceBroker) 1041 . The zone factory service 1201 coupled to the service broker 1041 creates zones for parts of the document. Editlet Service (EditletService) 1202 is also coupled to Service Broker 1041 . Editlet service 1202 creates canvases corresponding to the nodes in the region.

区工厂的例子是分别创建XHTML区和SVG区的XHTML区工厂(XHTMLZoneFactory)1211和SVG区工厂(SVGZoneFactory)1212。如上文档示例所述,文档的文本组件可通过创建XHTML区来表述,而图片则可使用SVG区来表述。Editlet服务的示例包括XHTML Editlet 1221和SVGEditlet 1222。Examples of zone factories are an XHTML zone factory (XHTMLZoneFactory) 1211 and an SVG zone factory (SVGZoneFactory) 1212 that create an XHTML zone and an SVG zone, respectively. As mentioned in the document example above, the text component of a document can be represented by creating an XHTML block, while an image can be represented using an SVG block. Examples of Editlet services include XHTML Editlet 1221 and SVGEditlet 1222.

图22(b)进一步详细显示了词汇连接。如上所述,词汇连接是文档处理系统的重要特征,其能够使两种不同方式的文档的表述和显示保持一致。对连接器工厂303加以维护的词汇连接管理器302是词汇连接子系统的一部分。连接器工厂303创建文档的连接器304。如上所述,连接器监视源DOM中的节点,并修改目的DOM中的节点,以维护两种表述之间的一致性。Figure 22(b) shows the lexical connections in further detail. As mentioned above, lexical connection is an important feature of a document processing system, which can make the expression and display of documents in two different ways consistent. The Vocabulary Connection Manager 302, which maintains the Connector Factory 303, is part of the Vocabulary Connection Subsystem. A connector factory 303 creates connectors 304 for documents. As mentioned above, the linker monitors the nodes in the source DOM and modifies the nodes in the destination DOM to maintain consistency between the two representations.

模板(Template)317表述用于一些节点的转换规则。词汇连接描述符(VCD)文件是表示一些规则的模板列表,这些规则用于将满足某种路径或规则的元素或元素集合转换为其他的元素。模板317和命令模板318都联接到词汇连接管理器302。词汇连接管理器是管理VCD文件中所有部分的对象。对一个VCD文件创建一个词汇连接管理器对象。Template (Template) 317 expresses conversion rules for some nodes. A Vocabulary Concatenation Descriptor (VCD) file is a list of templates representing rules for transforming elements or collections of elements satisfying certain paths or rules into other elements. Both template 317 and command template 318 are coupled to vocabulary connection manager 302 . A Lexical Connection Manager is an object that manages all sections in a VCD file. Creates a vocabulary connection manager object for a VCD file.

图22(c)提供了有关连接器的进一步的细节。连接器工厂303从源文档中创建连接器。连接器工厂303与词汇、模板和元素模板联接,并分别创建词汇连接器(VocabularyConnector)、模板连接器(TemplateConnector)和元素连接器(ElementConnector)。Figure 22(c) provides further details about the connector. Connector factory 303 creates connectors from source documents. Connector factory 303 connects with vocabulary, template and element template, and creates vocabulary connector (VocabularyConnector), template connector (TemplateConnector) and element connector (ElementConnector) respectively.

词汇连接管理器302维护连接器工厂303,为了创建词汇,读取相应的VCD文件。接着创建连接器工厂303。该连接器工厂303与创建区的区工厂和创建画布的Editlet相关联。The vocabulary connection manager 302 maintains a connector factory 303, which reads the corresponding VCD file in order to create a vocabulary. Then create a connector factory 303 . The connector factory 303 is associated with the district factory for creating districts and the Editlet for creating canvases.

接着,用于目标词汇的Editlet服务创建词汇连接画布。词汇连接画布也创建源DOM树或区中顶点的连接器。根据需要递归地创建子连接器。通过VCD文件中的一组模板创建连接器树。Next, the Editlet service for the target vocabulary creates a vocabulary connection canvas. The Lexical Connection Canvas also creates connectors for vertices in the source DOM tree or region. Create sub-connectors recursively as needed. Create a connector tree from a set of templates in a VCD file.

模板是用于将标记语言的元素转换为其他元素的规则的集合。例如,各个模板与源DOM树或区相匹配。在正确匹配时,创建顶点连接器。例如,模板“A/*/D”匹配所有从节点A开始、在节点D结束的树分支,而不考虑节点A和节点D之间的节点。同样,“//B”对应于所有来自根节点的“B”节点。A template is a collection of rules for transforming elements of a markup language into other elements. For example, each template matches a source DOM tree or region. When matched correctly, a vertex connector is created. For example, the template "A/*/D" matches all tree branches starting at node A and ending at node D, regardless of nodes between nodes A and D. Likewise, "//B" corresponds to all "B" nodes from the root node.

N.与VCD文件相关的连接器树(ConnectorTree)的示例N. Example of a ConnectorTree associated with a VCD file

下面将解释与特定文档相关的处理。名为“MySampleXML”的文档被载入到文档处理系统。图23显示了用于“MySampleXJML”文件的使用词汇连接管理器及连接器工厂树(ConnectorFactoryTree)的VCD脚本的实施例。Processing related to a specific document will be explained below. A document named "MySampleXML" is loaded into the document processing system. Fig. 23 shows an embodiment of a VCD script using a vocabulary connection manager and a ConnectorFactoryTree for a "MySampleXJML" file.

在图中显示了脚本文件内的词汇部分、模板部分以及在词汇连接管理器中的相应组件。在标签“vcd:vocabulary”下提供了属性“match”为″sample:root″,“label”为″MySampleXML″,以及“call-template”为″sampleTemplate″。The figure shows the vocabulary section within the script file, the template section and the corresponding components in the vocabulary connection manager. The attributes "match" as "sample:root", "label" as "MySampleXML", and "call-template" as "sampleTemplate" are provided under the tag "vcd:vocabulary".

在该实施例中,在″MySampleXML″的词汇连接管理器中,词汇包括顶点元素“sample:root”。相应的UI标注为“MySampleXML”。在模板部分,标签为“vcd:template”,名称为“sample template”。In this embodiment, in the vocabulary connection manager of "MySampleXML", the vocabulary includes the vertex element "sample:root". The corresponding UI is labeled "MySampleXML". In the template section, the label is "vcd:template" and the name is "sample template".

O.将文件载入系统的方法的详细实施例O. Detailed Embodiments of Methods of Loading Files into a System

图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”的最顶部的节点。Figures 24-28 show the detailed description of the loaded document "MySampleXML". In step 1, a document is loaded from the memory 1405 as shown in FIG. 24( a ). The DOM service (DOMService) creates a DOM tree and a document container 1401 corresponding to the document manager 1406 . Document container 1401 is coupled to document manager 1406 . Documentation includes subtrees for XHTML and MySampleXML. The XHTML top node 1403 is the topmost node of XHTML with the label "xhtml:html". The top node 1404 of "MySampleXML" is the topmost node of "MySampleXML" with the label "sample:root".

在步骤2,如图24(b)所示,根窗格为文档创建XTML区、“方面”和画布。创建与顶节点1403对应的窗格1407、XHTML区1408、XHTML画布1409和盒树1410。In step 2, as shown in Figure 24(b), the root pane creates the XTML area, "facets" and canvas for the document. A pane 1407 corresponding to the top node 1403, an XHTML region 1408, an XHTML canvas 1409 and a box tree 1410 are created.

在步骤3,如图24(c)所示,在发现XHTML区所不理解的标签“sample:root”后,从XHTML画布上的区域创建子窗格。In step 3, as shown in FIG. 24(c), after finding the tag "sample:root" which the XHTML section does not understand, a child pane is created from the area on the XHTML canvas.

图25显示了步骤4,在步骤4中,子窗格获取能够处理“sample:root”标签并可创建适当的区的区工厂。这种区工厂在能够执行区工厂的词汇中。区工厂包括“MySampleXML”中的词汇部分(VocabularySection)的内容。Figure 25 shows step 4, where the child pane gets a zone factory that can handle the "sample:root" tag and create the appropriate zone. This kind of zone factory is in the vocabulary capable of implementing zone factories. The district factory includes the contents of the VocabularySection in "MySampleXML".

图26显示了步骤5,在步骤5中,与“MySampleXML”对应的词汇创建缺省区(DefaultZone)1061。创建相应的Editlet并提供创建相应的画布的子窗格1501。Editlet创建词汇连接画布。接着,词汇连接画布调用包括连接器工厂树的模板部分(TemplateSection)。连接器工厂树创建将构成连接器树的所有的连接器。FIG. 26 shows step 5, in which a default zone (DefaultZone) 1061 is created for the vocabulary corresponding to "MySampleXML". Create a corresponding Editlet and provide a subpane 1501 for creating a corresponding canvas. Editlet to create vocabulary connection canvas. Next, the Vocabulary Connection Canvas invokes the Template Section (TemplateSection) that includes the Connector Factory tree. The connector factory tree creates all the connectors that will make up the connector tree.

图27所示的步骤6中,各个连接器创建目的DOM对象。一些连接器包括XPath信息。XPath信息包括一个以上的XPath表达式,XPath表达式用来确定需要对是否发生了改变/修改加以监测的源DOM树的子集。In step 6 shown in FIG. 27, each connector creates a target DOM object. Some connectors include XPath information. The XPath information includes one or more XPath expressions used to determine the subset of the source DOM tree that needs to be monitored for changes/modifications.

在图28所示的步骤7中,词汇从源DOM的窗格形成目的DOM树的目的窗格。这基于源窗格(SourcePane)来完成。目的树的顶节点联接到目的窗格(DestinationPane)以及相应的区。目的窗格创建目的画布(DestinationCanvas)。而且,为目的窗格提供用于以目的格式呈现文档的数据结构和命令,以及用于目的窗格自身的Editlet。In step 7 shown in FIG. 28, vocabulary forms the destination pane of the destination DOM tree from the panes of the source DOM. This is done based on the SourcePane. The top node of the destination tree is linked to the destination pane (DestinationPane) and the corresponding area. The destination pane creates a destination canvas (DestinationCanvas). Furthermore, the destination pane is provided with data structures and commands for rendering documents in the destination format, as well as Editlets for the destination pane itself.

图29(a)显示了只是存在于目的树上的节点上发生时的事件流,而不具有相应的源节点。如鼠标事件和键盘事件等由画布所获取的事件是通过目的树而被传递到元素模板连接器(ElementTemplateConnector)。元素模板连接器不具有相应的源节点,因此被传送的事件并不是对源节点的编辑操作。如果所传送的事件与命令模板(CommandTemplate)中描述的命令相匹配,则元素模板连接器执行相应的动作。如果没有相匹配的命令,则元素模板连接器忽略所传送的事件。Figure 29(a) shows the flow of events when they occur on nodes that exist only on the destination tree, without corresponding source nodes. Events captured by the canvas, such as mouse events and keyboard events, are delivered to the ElementTemplateConnector through the destination tree. The element template connector does not have a corresponding source node, so the event being delivered is not an edit operation on the source node. If the transmitted event matches the command described in the command template (CommandTemplate), the element template connector performs the corresponding action. If there is no matching command, the element template connector ignores the passed event.

图29(b)显示了在目的树的节点上发生事件的情况下的流(flow),该目的树的节点通过文本连接器(TextOfConnector)与源节点相关联。文本连接器从由源DOM树的XPath规定的节点获取文本节点,并将该文本节点映射为目的DOM树的节点。如鼠标事件和键盘事件等由画布所获取的事件通过目的树而被传送到文本连接器。文本连接器将所传送的事件映射为相应源节点的编辑命令,并将这些命令设置在队列(Queue)1053中。编辑命令是通过“方面”执行的DOM的API调用集合。当执行设置在队列中的命令时,编辑源节点。在编辑源节点时,发出变化事件,并且将对源节点的修改通知到注册为监听器的文本连接器。文本连接器重新建立目的树,从而在相应的目的节点中反映出对源节点的修改。此时,如果包含文本连接器的模板包括控制声明,例如“for each”和“for loop”,则连接器工厂重新评估控制声明。在重建文本连接器后,重建目的树。Fig. 29(b) shows the flow in case an event occurs on a node of a destination tree which is associated with a source node through a text connector (TextOfConnector). The text connector obtains a text node from the node specified by the XPath of the source DOM tree, and maps the text node to a node of the destination DOM tree. Events captured by the canvas, such as mouse events and keyboard events, are passed to the text connector through the destination tree. The text linker maps the transmitted events to editing commands of corresponding source nodes, and sets these commands in a queue (Queue) 1053 . Editing commands are collections of DOM API calls executed through "aspects". When executing a command set in the queue, edit the source node. When the source node is edited, a change event is emitted and the modification to the source node is notified to the text connector registered as a listener. The text linker rebuilds the destination tree so that modifications to the source nodes are reflected in the corresponding destination nodes. At this point, if the template containing the text connector includes control declarations such as "for each" and "for loop", the connector factory re-evaluates the control declarations. After rebuilding the text connector, rebuild the destination tree.

(第一实施方式)(first embodiment)

第一实施方式提出新的利用XML的技术方案,而且提出新的编程范例。The first embodiment proposes a new technical solution using XML, and also proposes a new programming paradigm.

如上所述,网页开发者通过使用VB脚本语言来控制ActiveX控件,能够开发出具有各种功能的网页。但是,由于ActiveX控件本身在内部被黑盒子化了,无法实现对ActiveX控件的功能进行自由定制以及多个ActiveX控件之间相互直接关联地操作。As mentioned above, web page developers can develop web pages with various functions by using the VB scripting language to control ActiveX controls. However, since the ActiveX control itself is black-boxed internally, it is impossible to realize the free customization of the functions of the ActiveX control and the direct correlation between multiple ActiveX controls.

本发明人注意到了在前提技术中说明的XML处理技术,是适于解决上述课题的技术。对于现有的一般应用程序,由于其自身操作所需的数据是以特定的二进制格式保存的,如果不特地准备可由外部参考的API,就无法从外部参考和使用内部数据。但是,如果将应用程序使用的数据以XML形式保存,则通过使用前提技术所描述的技术,其他应用程序也能简单地参考数据。就是说,由于前提技术的文档处理装置20将XML文档保存为DOM形式,使用DOM的标准API,就可以从外部自由访问数据。通过使用这种可称为“白盒子”的技术,能够建成具有高度灵活性的编程范例。本发明人想到了比前提技术中说明的XML处理技术更先进、在下面记述的新的使用XML的技术思想。The present inventors noticed that the XML processing technology described in the premise technology is a technology suitable for solving the above-mentioned problems. For existing general applications, since the data required for its own operation is stored in a specific binary format, it is impossible to reference and use internal data from the outside without preparing an API that can be referenced externally. However, if the data used by the application is stored in XML, other applications can easily refer to the data by using the technology described in the prerequisite technology. That is, since the document processing device 20 of the premise technology stores the XML document in the DOM format, the data can be freely accessed from the outside by using the standard API of the DOM. By using this so-called "white box" technique, a highly flexible programming paradigm can be built. The present inventors conceived of a new technical idea using XML described below that is more advanced than the XML processing technology described in the premise technology.

在此,对有关XML文档的数据结构与XML文档的处理技术的关系进行说明。图30(a)、(b)和(c)示出了作为处理对象的XML文档的数据结构的例子。作为最简单的例子,如图30(a)所示的是由单个词汇描述的XML文档。该XML文档处理系统,如以XHTML描述的显示网页的浏览器那样,能够处理特定的词汇所描述的XML文档。Here, the relationship between the data structure of the XML document and the XML document processing technology will be described. Fig. 30(a), (b) and (c) show examples of data structures of XML documents as processing objects. As the simplest example, an XML document described by a single vocabulary is shown in FIG. 30(a). This XML document processing system can process an XML document described in a specific vocabulary, like a browser displaying a web page described in XHTML.

与此对照,本申请人开发了一种文档处理装置,其可以对某种词汇的构成元素(图中的白圆)与其他词汇的构成元素(图中的黑圆)混合的XML文档进行适当的处理,如图30(b)所示。在根据前提技术的文档处理装置20中,对于将各种XML词汇组合的XML复合文档,通过作为启动单元的实施例的主控制单元22调出适于各个片段的处理系统,分配处理并构建视图,按照用户的编辑操作编辑XML复合文档。这些系统可以是由Java(注册商标)语言等开发的硬编码插件(例如,HTML单元50或SVG单元60),也可以是基于由定义文件所描述的VC单元80执行的脚本。在多种情况下,用于主流词汇(例如XHTML)的处理系统以硬编码插件的形式提供。另一方面,用于用户专用词汇的处理系统以定义文件的形式提供。根据这样的技术,例如在图30(b)的示例中,可以在XHTML(白圆的构成元素)描述的文档中插入用于显示图形的词汇(黑圆的构成元素)所描述的部分文档,从而在XHTML文档的屏幕上配置图形。In contrast, the present applicant has developed a document processing device that can properly process XML documents in which constituent elements of a certain vocabulary (white circles in the figure) are mixed with constituent elements of other vocabulary (black circles in the figure). processing, as shown in Figure 30(b). In the document processing device 20 according to the premise technology, for an XML compound document combining various XML vocabularies, the main control unit 22 which is an example of a startup unit calls up a processing system suitable for each fragment, assigns processing and constructs a view , edit the XML compound document according to the editing operation of the user. These systems may be hard-coded plug-ins (for example, HTML unit 50 or SVG unit 60 ) developed by Java (registered trademark) language or the like, or scripts executed based on VC unit 80 described by definition files. In many cases, processing systems for mainstream vocabularies such as XHTML are provided as hard-coded plugins. On the other hand, processing systems for user-specific vocabularies are provided in the form of definition files. According to such a technique, for example, in the example of FIG. 30( b ), it is possible to insert a part of the document described by vocabulary (constituent elements of black circles) for displaying graphics into a document described in XHTML (constituent elements of white circles), Graphics are thus arranged on the screen of the XHTML document.

在此,看一下XML片段和处理系统之间的关系。为每个XML片段调用处理系统,以基于XML的内容构建视图。然后,获取用户发起的UI事件,编辑XML。如果从另一个角度看,在调出担任显示和编辑特定词汇的处理系统时,将该词汇描述的XML片段作为调出时的参数。Here, look at the relationship between XML fragments and processing systems. The processing system is invoked for each XML fragment to build a view based on the XML content. Then, get the UI event initiated by the user and edit the XML. From another point of view, when calling out the processing system responsible for displaying and editing a specific vocabulary, the XML fragment described by the vocabulary is used as a parameter when calling out.

本发明人注意到,使用这样的架构,能够为更自由灵活的处理系统提供执行环境。就是说,处理系统不局限于对某XML进行显示和编辑,也可以更自由地进行各种处理。例如,根据XML片段中的数据,可通过Web Service API访问服务器,也可以进行概括和翻译等自然语言处理。XML片段用作启动相应处理系统的参数,同时也起到操作中所用的堆存储器(heap memory)的作用。如此来看,前提技术的文档处理装置20为独特的程序提供了一种执行环境,例如在XML文档中设置标签,从而允许启动处理(处理系统)。这样,在执行上述处理时,参数可作为属性、或者由标签围成的文本部分可作为操作对象。The inventor noticed that using such an architecture can provide an execution environment for a more free and flexible processing system. In other words, the processing system is not limited to displaying and editing a certain XML, and can perform various processing more freely. For example, based on the data in the XML fragment, the server can be accessed through the Web Service API, and natural language processing such as summarization and translation can also be performed. The XML fragment is used as a parameter to start the corresponding processing system, and also serves as the heap memory used in the operation. Viewed in this way, the document processing apparatus 20 of the premise technology provides an execution environment for a unique program, such as setting a tag in an XML document, thereby allowing processing (processing system) to be started. In this way, when performing the above processing, parameters can be used as attributes, or text parts surrounded by tags can be used as operation objects.

本实施方式中,作为新的XML文档的数据结构,提出了图30(c)所示的数据结构方案。在图30(c)中,带有斜线的构成元素25包括指向文档中的其他数据26的指针信息。负责该构成元素25所属词汇的处理系统参照由指针信息所指示的数据26来操作。例如,如上所述,当在XHTML文档中插入图形时,不是描述如图30(b)所示的图形显示词汇中的图形数据实体,而是参照XHTML文档中描述的其他数据来创建图形。通过这样的数据结构可以构建参照文档中的其他数据或者其他文档的数据来运行的应用程序。In this embodiment, the data structure shown in FIG. 30(c) is proposed as the data structure of the new XML document. In FIG. 30( c ), constituent elements 25 with oblique lines include pointer information to other data 26 in the document. The processing system in charge of the vocabulary to which this constituent element 25 belongs operates with reference to the data 26 indicated by the pointer information. For example, as described above, when a graphic is inserted in an XHTML document, instead of describing the graphic data entity in the graphic display vocabulary as shown in FIG. 30(b), the graphic is created with reference to other data described in the XHTML document. Applications that operate with reference to other data in the document or data of other documents can be constructed through such a data structure.

文档处理装置通过参照文档所含的构成元素的命名空间启动适当的处理系统。因此,图30(c)的示例中,斜线所示的构成元素25具有启动用于显示图形的处理系统的功能。此外,启动的处理系统,不处理该构成元素25下级存在的构成元素,而是参照该构成元素25所具有的指针信息所指示的数据26来操作。该构成元素25也具有指示在文档中图形的配置位置的“固定器”功能。构成元素25所具有的指针信息可以指定为构成元素25的属性,也可以指定为构成元素25自身或者其下级构成元素的元素值。也可以在含有构成元素25的XML片段中描述处理系统运行所必需的参数信息等。The document processing apparatus activates an appropriate processing system by referring to the namespace of the constituent elements contained in the document. Therefore, in the example of FIG. 30( c ), the constituent elements 25 indicated by oblique lines have a function of activating a processing system for displaying graphics. In addition, the activated processing system does not process the constituent element existing below the constituent element 25 , but operates referring to the data 26 indicated by the pointer information included in the constituent element 25 . This constituent element 25 also has a "fixer" function that indicates the arrangement position of graphics in the document. The pointer information of the constituent element 25 may be designated as an attribute of the constituent element 25, or may be designated as an element value of the constituent element 25 itself or its subordinate constituent elements. Parameter information and the like necessary for the operation of the processing system may also be described in the XML fragment including the constituent element 25 .

根据这样的技术,处理系统对于自已负责的片段的外部的数据,也可以将其作为调节自身运行的参数或者作为堆区域来使用。也就是说,采用这样的模式:在片段部分以xpath方式等只记入参照位置,该参照位置指向实际值。举例来说,相当于把指针用作函数的参数。According to such a technique, the processing system can also use the external data of the segment it is responsible for as a parameter for adjusting its own operation or as a heap area. That is to say, a mode is adopted in which only a reference position pointing to an actual value is entered in the fragment part by means of xpath or the like. For example, it is equivalent to using a pointer as a parameter of a function.

如果从编程范例的观点来看上述的技术,将能够提供可参照文档中的任意位置的数据运行的应用程序运行时环境。而且,如上所述,由于通过使用DOM的API,文档中的数据可以被任意的应用程序使用,因此,将提供这样一种新的编程环境,即,在该编程环境中可把作为DOM保存在文档中的数据作为共享存储体来使用。在文档中,描述有用于启动应用程序的构成元素25。以构成元素25为契机启动的应用程序参照该构成元素25具有的指针信息,将文档的其他数据26作为共享存储体使用。像这样,将实现文档与应用程序无间隙协同动作的新的编程范例。If the above-mentioned technology is viewed from the viewpoint of programming paradigms, it will be possible to provide an application runtime environment that can operate with reference to data anywhere in a document. Moreover, as described above, since the data in the document can be used by any application program by using the API of DOM, a new programming environment will be provided in which the data stored as DOM in the The data in the document is used as a shared memory. In the document, constituent elements 25 for starting an application are described. The application program activated by the constituent element 25 refers to the pointer information contained in the constituent element 25 and uses other data 26 of the document as a shared memory. In this way, a new programming paradigm in which documents and applications work seamlessly will be realized.

文档处理装置20由于具有当DOM修改时通过变化事件通知修改的发生的功能,所以,即使用于图形显示的处理系统参照的数据26被其他处理系统修改,由于通知了用于图形显示的处理系统,所以能够恰当地反映修改。如上所述,即使是多个应用程序参照相同的数据集操作的场合,由于适当地对数据进行了共享,因此可以简单地使多个应用程序协同动作。可以说,多个处理系统参考相同的指针来操作等同于该多个处理系统将XML文档作为共享存储体而互相协同地操作。Since the document processing device 20 has a function of notifying the occurrence of the modification through a change event when the DOM is modified, even if the data 26 referred to by the processing system for graphic display is modified by another processing system, the processing system for graphic display is notified. , so the modification can be properly reflected. As described above, even when a plurality of applications operate with reference to the same data set, since the data is appropriately shared, the plurality of applications can be easily coordinated. It can be said that multiple processing systems operate with reference to the same pointer, which is equivalent to the multiple processing systems operating in cooperation with each other using the XML document as a shared memory.

在现有的电子数据表格(spreadsheet)应用程序中,由于在单元格中描述了计算公式,所以能够启动计算处理。此外,在填充图形的场合,一般是指定参照单元的范围,然后使用该单元内的数据制作图形。本实施方式的技术把上述模式应用到XML复合文档中,从而包括了只有XML才具有的特征。In an existing spreadsheet application, since a calculation formula is described in a cell, calculation processing can be started. In addition, when filling a graph, generally specify the range of the reference cell, and then use the data in the cell to create the graph. The technology of the present embodiment applies the above-mentioned schema to an XML compound document, thereby including features unique to XML.

如果使用具有合计功能或者图形显示功能的电子表格应用程序制作“功能性的”文档,则在操作过程中,用户可以进行数据输入、再计算、以及参照计算结果进行模拟操作。本实施方式的文档处理装置也同样,能够使用上述技术使各种处理(处理系统)协作,制作各种目的所专用的“功能性的”XML复合文档。而且,与电子表格应用程序不同,本实施方式的文档处理装置基于开放的XML技术,能够提供透明性和可扩展性良好的平台。用户可以使用这类功能性的XML文档来完成各种操作。If a "functional" document is created using a spreadsheet application with an aggregation function or a graph display function, the user can perform data entry, recalculation, and simulate operations with reference to the calculation results during operation. Similarly, the document processing device of this embodiment can create "functional" XML composite documents dedicated to various purposes by cooperating various processes (processing systems) using the above-mentioned technology. Furthermore, unlike spreadsheet applications, the document processing device of this embodiment is based on open XML technology and can provide a platform with good transparency and scalability. Users can use this kind of functional XML document to complete various operations.

图31(a)和(b)示出了指针信息的例子。图31(a)示出的是指针信息以xpath方式描述时的例子。在此例中,表示处理系统要参考的数据26的位置的指针信息是由xpath方式描述的。处理系统可以通过该xpath方式得知自身要参照的数据26的位置。31(a) and (b) show examples of pointer information. Fig. 31(a) shows an example when the pointer information is described in xpath. In this example, pointer information indicating the location of the data 26 to be referred to by the processing system is described by xpath. The processing system can know the location of the data 26 to be referred to by itself through the xpath method.

图31(b)示出了指针信息由概念信息提供时的例子。构成元素25作为元素值或者属性值,概念性地示出了处理系统要参考的数据26的位置的明确地定义的概念信息。“明确地定义的概念信息”例如可以是基于存在论(ontology)技术的概念信息。此时,为了解释该概念信息和确定实际的数据,设置了概念分析引擎27。概念分析引擎27在获取概念信息后,例如将该概念信息变换为标签名。当指定了“重要数据”作为概念信息的场合,概念分析引擎27返回例如<重要>、<important>、<公司机密>等标签名。由此,处理系统能够获知应参照文档中带有<重要>等标签的数据。在向概念分析引擎27提出解决请求时,可以指定需要哪个信息。例如,指定了“重要数据”这一概念后,当要求变换为英文标签时,概念分析引擎27可以返回<important>、<secret>等标签名。Fig. 31(b) shows an example when pointer information is provided by concept information. The constituent element 25 conceptually shows, as an element value or an attribute value, clearly defined concept information of the location of the data 26 to be referenced by the processing system. "Clearly defined conceptual information" may be, for example, conceptual information based on ontology technology. At this time, a concept analysis engine 27 is provided in order to interpret the concept information and determine actual data. After acquiring concept information, the concept analysis engine 27 converts the concept information into tag names, for example. When "important data" is specified as the concept information, the concept analysis engine 27 returns tag names such as <important>, <important>, and <company confidential>, for example. Thus, the processing system can know that it should refer to data with tags such as <important> in the document. Which information is required can be specified when a resolution request is made to the concept analysis engine 27 . For example, after specifying the concept of "important data", when it is required to convert to English tags, the concept analysis engine 27 can return tag names such as <important> and <secret>.

在含有构成元素25的XML片段中预先描述有处理系统动作所必需的参数信息的场合,作为参数信息中的一个,可以参照指针信息所指向的目标数据规定被明确地定义的语义类型的信息。“明确地定义的语义类型的信息”例如可以是基于“存在论”技术的语义类型信息。例如,在将“重要”这一概念指定作为指针信息的场合,可以将“经营性的”、“营业性的”等信息规定为语义类型信息。此外,作为指针信息指定了“金额”这一概念的场合,可以将售额”、“希望零售价”、“借款”等信息规定作为语义类型信息。由此,处理系统可以对语义类型的一致性进行核对。When parameter information necessary for processing system operations is described in advance in the XML fragment including the constituent element 25, as one of the parameter information, clearly defined semantic type information can be specified with reference to the object data pointed to by the pointer information. "Information of a clearly defined semantic type" may be, for example, information of a semantic type based on "ontological" technology. For example, when specifying the concept of "important" as pointer information, information such as "commercial" and "commercial" can be specified as semantic type information. In addition, when the concept of "amount" is specified as pointer information, information such as "sales", "retail price", and "loan" can be specified as semantic type information. Thus, the processing system can match the semantic type sex to check.

现有的编程语言中,类型中不能带有语义性的意思。例如,数值类型为“int”的场合,可以对代入的数值是否为有效的整数值进行核对,但是不能对所代入的数值的语义进行核对。为此,例如对计算每人每月的成本处理中,错误地将人和月相加、或者人和人相乘,作为编程语言不能认出这种语义错误。与此对照,根据本实施方式的技术,即使是相同金额也将能够进行是“销售额”还是“借款”、或者是“1日元单位”还是“一千美元单位”、是“人数”还是“年月”等的语义一致性的确认。当处理系统对语义类型的一致性进行确认时,例如,可以使用概念分析引擎27,对参考的数据的标签名是否与指定的语义类型信息相一致进行核对。In existing programming languages, types cannot have semantic meaning. For example, when the numeric type is "int", you can check whether the substituted numeric value is a valid integer value, but you cannot check the semantics of the substituted numeric value. For this reason, for example, in calculating the cost per person per month, the person and the month are erroneously added, or the person is multiplied by the person, as a programming language, such a semantic error cannot be recognized. In contrast, according to the technology of this embodiment, even if the amount is the same, it will be possible to determine whether it is "sales" or "loan", or whether it is "1 yen unit" or "1,000 dollar unit", whether it is "number of people" or Confirmation of semantic consistency of "year, month", etc. When the processing system confirms the consistency of the semantic type, for example, the concept analysis engine 27 may be used to check whether the tag name of the referenced data is consistent with the specified semantic type information.

使用存在论技术对数据提供语义类型信息的技术,可以作为新的编程技术通用。如此,与现有的编程技术对比,将含有语义性的技术思想的编程技术称作“语义编程”。The technology of using ontology technology to provide semantic type information to data can be generalized as a new programming technology. In this way, compared with the existing programming technology, the programming technology including the technical idea of semantics is called "semantic programming".

在此,作为语义编程技术的一个实施例,对前提技术中所述的来自DOM单元30的变化事件的扩充进行说明。DOM修改后,如果该DOM中包含有“明确地定义的语义类型信息”,则将向参考该类型信息的处理系统发出变化事件。反过来说,处理系统不仅直接指定想监视自身变化的DOM(监视该DOM是否发生了变化),也可以间接地指定“明确地定义的语义类型信息”。Here, as an embodiment of the semantic programming technology, the extension of the change event from the DOM unit 30 described in the premise technology will be described. After the DOM is modified, if the DOM contains "clearly defined semantic type information", a change event will be sent to the processing system that references the type information. Conversely, the processing system not only directly specifies the DOM that it wants to monitor itself for changes (monitors whether the DOM has changed), but also indirectly specifies "clearly defined semantic type information".

图32(a)、(b)示出了用于说明对DOM变化进行通知的结构。具体地,图32(a)显示了在根据前提技术的文档处理装置20中发出变换事件的机制。处理系统29用xpath方式等指定要监视的变化,并作为变化事件的监听器而被注册。DOM单元30在DOM改变后,对注册的监听器发出变化事件。Fig.32 (a), (b) shows the structure for explaining the notification of DOM change. Specifically, FIG. 32(a) shows a mechanism for issuing a transformation event in the document processing apparatus 20 according to the premise technology. The processing system 29 specifies a change to be monitored by an xpath method or the like, and is registered as a listener of a change event. The DOM unit 30 sends a change event to registered listeners after the DOM changes.

图32(b)示出了本实施方式新提出的变化事件的结构的技术方案。在文档处理装置20中,新设置了作为变化事件通知的中介的通知单元28。通知单元28从处理系统29接受要监视节点的指定。DOM单元30在DOM改变时,向通知单元28通知该改变。通知单元28接到从DOM单元30发出的DOM改变通知后,对监视变化节点的处理系统29发出变化事件。Fig. 32(b) shows the technical solution of the structure of the change event newly proposed in this embodiment. In the document processing apparatus 20, a notification unit 28 that mediates change event notification is newly provided. The notification unit 28 accepts designation of a node to be monitored from the processing system 29 . When the DOM changes, the DOM unit 30 notifies the notification unit 28 of the change. After receiving the DOM change notification from the DOM unit 30, the notification unit 28 sends a change event to the processing system 29 monitoring the changed node.

通知单元28可以接收处理系统29通过xpath方式要监视的节点的通知,但是,为提供更柔性和具有高通用性的编程环境,通知单元28还可以接收明确地定义的概念信息。在这种场合,当通知单元28得到由DOM单元30发出的DOM已经改变的通知时,将该节点的标签名等传送给概念分析引擎27,并从概念分析引擎27获取该标签名所对应的概念信息。通知单元28向注册有所获取的概念信息的处理系统29发出变化事件。因此,处理系统29可以指示通知单元28,例如在“重要信息”被修改时向其发出通知。通知单元28从DOM单元30接收了变化事件后,命令概念分析引擎27判定被修改的节点是否为“重要信息”,如果是的话,向处理系统29通知DOM的改变。The notification unit 28 can receive the notification of the nodes to be monitored by the processing system 29 through xpath. However, in order to provide a more flexible and highly versatile programming environment, the notification unit 28 can also receive clearly defined concept information. In this case, when the notification unit 28 receives the notification that the DOM issued by the DOM unit 30 has changed, it transmits the label name of the node to the concept analysis engine 27, and obtains the concept corresponding to the label name from the concept analysis engine 27. information. The notification unit 28 sends a change event to the processing system 29 registered with the acquired concept information. Thus, the processing system 29 may instruct the notification unit 28, eg, to send it a notification when "important information" is modified. After the notification unit 28 receives the change event from the DOM unit 30, the command concept analysis engine 27 determines whether the modified node is "important information", and if so, notifies the processing system 29 of the change of the DOM.

根据这样的语义编程技术,能够容易开发出更灵活和具有高通用性的程序。According to such semantic programming technology, more flexible and highly versatile programs can be easily developed.

接下来,对使用图30(c)示出的数据结构来编辑具有各种功能的文档的技术进行说明。Next, a technique for editing a document having various functions using the data structure shown in FIG. 30(c) will be described.

构成元素25所属命名空间的词汇的处理系统(即通过构成元素25启动的处理系统)能够以可定制的应用程序组件形式被提供。由于该处理系统为用于构成文档视图系统的组件,所以称之为“视图模板”。视图模板可以是基于脚本的定义文件的形式,也可以是硬编码插件的形式。为使用视图模板功能,执行以下操作:在文档中描述作为视图模板固定器的构成元素25;在构成元素25中描述指向处理系统要参考的数据的指针信息;以及在元素25中描述处理系统需要的附加信息。为使视图模板能够通用,优选是提供这样一种环境,其中该环境能够以明确地定义的概念信息的形式规定指针信息。此外,可以使用算术运算、逻辑运算、自然语言处理、其他的任意运算组成的条件式等,来规定要参照的数据。The processing system of the vocabulary of the namespace to which the constituent element 25 belongs (ie the processing system activated by the constituent element 25 ) can be provided in the form of a customizable application component. Since this processing system is a component for constituting the document view system, it is called a "view template". View templates can be in the form of script-based definition files or hard-coded plugins. In order to use the view template function, the following operations are performed: describe the constituent element 25 as a view template fixer in the document; describe the pointer information pointing to the data to be referred to by the processing system in the constituent element 25; and describe the additional information for . In order to make view templates universal, it is preferable to provide an environment in which pointer information can be specified in the form of clearly defined conceptual information. In addition, data to be referred to may be specified using arithmetic operations, logical operations, natural language processing, and conditional expressions composed of other arbitrary operations.

图33示出了该实施方式所涉及的文档处理装置的构成。本实施方式的文档处理装置100,除了图1所示的前提技术的文档处理装置20的构成以外,还包括视图模板控制单元70、获取单元71以及视图模板78。视图模板控制单元70包括提示单元72、接收单元74和编辑单元76。FIG. 33 shows the configuration of the document processing apparatus according to this embodiment. The document processing device 100 of this embodiment includes a view template control unit 70 , an acquisition unit 71 , and a view template 78 in addition to the configuration of the document processing device 20 of the premise technology shown in FIG. 1 . The view template control unit 70 includes a prompt unit 72 , a receiving unit 74 and an editing unit 76 .

获取单元71获取作为处理对象的文档。视图模板78如上所述,是使用文档所含的数据提供预定功能的处理系统,也是文档的编辑屏幕的构成组件。The acquisition unit 71 acquires a document as a processing object. As described above, the view template 78 is a processing system that provides a predetermined function using data contained in a document, and is also a constituent element of an editing screen of a document.

提示单元72向用户提示文档处理装置100中可使用的视图模板78。提示单元72可以将文档处理装置100中安装的视图模板78的清单显示于显示屏中,也可以对应于编辑中的文档内容,选择可使用的视图模板78,从而使得视图模板78被显示。例如,当编辑SVG文档时,可以选择可插入到SVG文档中的视图模板78并将其显示。The prompting unit 72 presents the view template 78 usable in the document processing apparatus 100 to the user. The prompt unit 72 can display the list of view templates 78 installed in the document processing apparatus 100 on the display screen, and can also select an available view template 78 corresponding to the content of the document being edited, so that the view template 78 is displayed. For example, when editing an SVG document, a view template 78 that can be inserted into the SVG document can be selected and displayed.

接收单元74从用户接收在文档中添加视图模板78的指示。用户在编辑模式中在文档显示屏中执行拖放操作,并因此而移动视图模板78(其显示于由提示单元72呈现的清单屏幕中)中之一的图标后,接收单元74接收在规定位置插入被移动的视图模板78的指示。The receiving unit 74 receives an instruction to add the view template 78 in the document from the user. After the user performs a drag-and-drop operation in the document display screen in the editing mode, and thus moves an icon of one of the view templates 78 displayed in the list screen presented by the prompting unit 72, the receiving unit 74 receives the Inserts an indication of the view template 78 that was moved.

编辑单元76在接收单元74接收到视图模板78的插入指示后,在文档中的规定插入位置插入用于启动该视图模板78的构成元素(标签)。此时,编辑单元76可显示用于允许用户规定用来操作视图模板78的数据范围的屏幕。编辑单元76可以自动判断用来操作视图模板78的数据范围。编辑单元76在文档中描述视图模板78的操作所使用数据的指针信息。编辑单元76还可以将从用户接收视图模板78操作所需的参数等在自动判断后,描述在文档中。After the receiving unit 74 receives the insertion instruction of the view template 78, the editing unit 76 inserts a constituent element (tag) for activating the view template 78 at a predetermined insertion position in the document. At this time, the editing unit 76 may display a screen for allowing the user to specify a data range for operating the view template 78 . The editing unit 76 can automatically determine the data range used to operate the view template 78 . The editing unit 76 describes pointer information of data used for the operation of the view template 78 in the document. The editing unit 76 can also describe the parameters required for the operation of the view template 78 received from the user after automatic judgment, and describe in the document.

当编辑单元76在文档中追加用于启动视图模板78的构成元素时,由主控制单元22启动处理该构成元素的处理系统、即视图模板78,视图模板78提供的视图将在文档编辑屏幕上显示。之后,可以在文档编辑屏幕上使用所启动的视图模板78提供的功能。When the editing unit 76 adds a constituent element used to start the view template 78 in the document, the main control unit 22 starts the processing system for processing the constituent element, that is, the view template 78, and the view provided by the view template 78 will be displayed on the document editing screen. show. Afterwards, the functions provided by the launched view template 78 can be used on the document editing screen.

图34示出了文档的编辑屏幕的一个实施例。在文档编辑屏幕97上显示了通过提示单元72显示了视图模板选项板98。处于编辑模式的文档中记录有个人的进度表、ToDo列表、电子邮件等信息。在图34所示的编辑屏幕97中,由于这些信息没有提供给视图,所以没有显示。Figure 34 shows one embodiment of an edit screen for a document. Displayed on the document editing screen 97 is a view template palette 98 displayed through the prompt unit 72 . Documents in edit mode record information such as personal schedules, ToDo lists, and emails. In the editing screen 97 shown in FIG. 34, since these information are not provided to the view, they are not displayed.

在此,用户在视图模板选项板98上选择用于显示进度表的视图模板78后,在编辑屏幕中进行拖放操作时,由接收单元74接收该请求,通过编辑单元76在文档的指定位置插入构成元素,以启动显示进度表的视图模板78。此时,编辑单元76以构成元素的属性的形式,规定文档中存储有进度表(schedule)信息的部分的指针信息。Here, after the user selects the view template 78 for displaying the progress table on the view template option board 98, when performing a drag-and-drop operation on the editing screen, the request is received by the receiving unit 74, and the editing unit 76 places a file in the specified position of the document. The constituent elements are inserted to activate the view template 78 that displays the progress meter. At this time, the editing unit 76 specifies the pointer information of a part in the document in which schedule information is stored in the form of an attribute of a constituent element.

图35示出了用于进度表的视图模板78启动后的编辑屏幕。当通过编辑单元76向文档插入用于启动进度表用的视图模板78的构成元素时,通过作为启动单元的实施例的主控制单元22启动处理该构成元素的视图模板78、即进度表用的视图模板78。在指针信息指向的部分中描述的进度表信息99将以表的形式被显示。Figure 35 shows the edit screen after the view template 78 for the schedule has been activated. When the editing unit 76 inserts into the document a constituent element used to start the view template 78 for the schedule, the main control unit 22, which is an embodiment of the startup unit, starts to process the view template 78 for the constituent element, that is, the view template 78 for the schedule. View Template 78. The schedule information 99 described in the portion pointed to by the pointer information will be displayed in the form of a table.

这样,根据本实施方式的技术,可以在文档中添加拥有各种通用功能的视图模板78,简单地构筑具有功能性的文档。Thus, according to the technique of this embodiment, the view template 78 having various common functions can be added to a document, and a functional document can be constructed easily.

(第二实施方式)(second embodiment)

下面将对第一实施方式中所述的提供具有通用性文档处理功能的技术作进一步说明。在第一实施方式中被称作“视图模板”的功能在下文中被称作AVC(Adaptive Vocabulary Conponent:自适应词汇组件),表示提供通用VC功能的处理系统。The technology for providing general document processing functions described in the first embodiment will be further described below. The function called "view template" in the first embodiment is hereinafter called AVC (Adaptive Vocabulary Component: Adaptive Vocabulary Component), which means a processing system that provides general-purpose VC functions.

图36示出了本实施方式涉及的文档处理装置的构成。本实施方式的文档处理装置100中,由AVC控制单元3000替代了第一实施方式中的文档处理装置100的视图模板控制单元70和视图模板78。AVC控制单元3000包括:用于显示表的AVC组件3010;用于显示图的AVC组件3020;用于显示UI部件的AVC组件3030;用于显示树的AVC组件3040;以及AVC属性设定单元3002,其用于设定这些AVC组件的操作所需的属性信息。组件3010,3020,3030和3040中的每一个是提供AVC功能的处理系统。FIG. 36 shows the configuration of the document processing device according to this embodiment. In the document processing apparatus 100 of this embodiment, the view template control unit 70 and the view template 78 of the document processing apparatus 100 in the first embodiment are replaced by the AVC control unit 3000 . The AVC control unit 3000 includes: an AVC component 3010 for displaying a table; an AVC component 3020 for displaying a graph; an AVC component 3030 for displaying UI parts; an AVC component 3040 for displaying a tree; and an AVC attribute setting unit 3002 , which is used to set attribute information necessary for the operation of these AVC components. Each of components 3010, 3020, 3030, and 3040 is a processing system that provides AVC functionality.

图37显示了在其中插入了AVC组件的属性的XML文档的实施例。该XML文档以用于描述词典数据的“doc”词汇描述。“page”元素为根元素“doc”的子元素,表示词典的页。根据页数来设置多个“page”元素。各个“page”元素包括存储英文单词的“English(英语)”元素,以及存储日文字的“Japanese”元素。Fig. 37 shows an example of an XML document into which attributes of an AVC element are inserted. This XML document is described with a "doc" vocabulary for describing dictionary data. The "page" element is a child element of the root element "doc" and represents a page of the dictionary. Set multiple "page" elements according to the number of pages. Each "page" element includes an "English" element storing English words, and a "Japanese" element storing Japanese characters.

在图37所示出的例子中,为了以表的形式显示上述词典,插入有AVC属性3012,AVC属性3012描述了用于显示表的AVC组件3010的操作所必需的属性信息。AVC属性3012是以用于显示表的词汇“tbl”描述的,该显示表的词汇可由用于显示表的AVC组件3010处理。在AVC属性3012中,“tbl”词汇与“doc”词汇的对应性由用于描述AVC属性的词汇“avc”来描述。下面将描述原来XML文档的词汇,即,“doc”词汇,称作“主词汇”;以及将描述插入的AVC属性的词汇,即,“tbl”词汇,称作“客词汇”或者“AVC词汇”。In the example shown in FIG. 37, in order to display the above-mentioned dictionary in the form of a table, an AVC attribute 3012 describing attribute information necessary for the operation of the AVC component 3010 for displaying the table is inserted. The AVC attribute 3012 is described in a vocabulary "tbl" for display tables that can be processed by the AVC component 3010 for display tables. In the AVC attribute 3012, the correspondence of the "tbl" word and the "doc" word is described by the word "avc" for describing the AVC attribute. The following will describe the vocabulary of the original XML document, i.e., the "doc" vocabulary, called the "main vocabulary"; ".

在图37的例子中,记录有表的各列的数据的元素“column”包括两个属性元素“property”作为子元素。第一个元素“property”记录有参数“label-transfer 1”,表示参照主词汇的元素“english”的属性信息。第二个元素“property”记录有参数“label-transfer2”,表示参照主词汇的元素“japanese”的属性信息。用于显示表的AVC组件3010参照属性“property”的信息,在表的各列输入主词汇元素“english”和“japanese”的值并显示。这样,可以把任意期望的文档数据传给具有通用功能部件(如用于显示表的AVC组件3010等)的处理系统来处理。In the example of FIG. 37 , an element "column" in which data of each column of a table is recorded includes two property elements "property" as child elements. The first element "property" records the parameter "label-transfer 1", which refers to the attribute information of the element "english" of the main vocabulary. The second element "property" records a parameter "label-transfer2" indicating attribute information referring to the element "japanese" of the main vocabulary. The AVC component 3010 for displaying the table refers to the information of the attribute "property", and inputs and displays the values of the main vocabulary elements "english" and "japanese" in each column of the table. In this way, any desired document data can be passed to a processing system having common functional components (such as the AVC component 3010 for displaying tables, etc.) for processing.

图38示出了涉及本实施方式的文档处理方法的步骤。在用户发出插入AVC组件提供的视图的指令时(S10),主词汇处理系统根据插入指令,将AVC组件的AVC属性模板插入到源DOM的插入目标位置(S12)。这个功能可以由文档处理装置20的主控制单元22来担任,也可以由AVC控制单元3000来担任。具体地,可以通过选择菜单或者命令等来接收用于插入AVC组件的指令,也可以通过将表示AVC组件的图标等向文档的屏幕显示中的插入位置拖放来接收用于插入AVC组件的指令。通过参照主词汇的模式,可以判断是否能够在指示的位置插入AVC属性。当确定的结果是主词汇与所规定的AVC属性不匹配时,不允许插入AVC属性。FIG. 38 shows steps related to the document processing method of this embodiment. When the user issues an instruction to insert the view provided by the AVC component (S10), the main vocabulary processing system inserts the AVC attribute template of the AVC component into the insertion target position of the source DOM according to the insertion instruction (S12). This function can be performed by the main control unit 22 of the document processing device 20 or by the AVC control unit 3000 . Specifically, the instruction for inserting the AVC component can be received by selecting a menu or command, etc., or by dragging and dropping an icon representing the AVC component to the insertion position in the screen display of the document. . By referring to the pattern of the main vocabulary, it can be judged whether the AVC attribute can be inserted at the indicated position. When it is determined that the main vocabulary does not match the specified AVC attribute, insertion of the AVC attribute is not permitted.

源DOM被修改后,由DOM单元30发出变化事件(S14),接收了变化事件的主词汇处理系统对文档进行再显示(S16)。此时,由于插入的AVC属性是由主词汇处理系统不能处理的词汇描述的,主词汇处理系统请求主控制单元22将处理转移,主控制单元22选择作为可处理AVC属性的处理系统的AVC组件并指示其处理(S18)。图37所示的例子中,由于AVC属性3012是由AVC词汇“tbl”描述的,所以选择了用于显示表的组件3010。被委托进行处理的AVC组件对AVC属性进行处理和显示,但是在此,由于AVC属性仅以插入的模板的形式提供,而没有设定实际的属性值,因此AVC组件调用AVC属性设定单元3002以设定AVC属性(S20)。After the source DOM is modified, the DOM unit 30 sends out a change event (S14), and the main vocabulary processing system that receives the change event displays the document again (S16). At this time, since the inserted AVC attribute is described by a vocabulary that cannot be processed by the main vocabulary processing system, the main vocabulary processing system requests the main control unit 22 to transfer the processing, and the main control unit 22 selects the AVC component as the processing system that can handle the AVC attribute And instructs its processing (S18). In the example shown in FIG. 37, since the AVC attribute 3012 is described by the AVC vocabulary "tbl", the component 3010 for displaying the table is selected. The AVC component entrusted with processing processes and displays the AVC attribute, but here, since the AVC attribute is only provided in the form of an inserted template without setting the actual attribute value, the AVC component calls the AVC attribute setting unit 3002 to set the AVC attribute (S20).

AVC属性设定单元3002向AVC组件发出用于显示对话屏(其用于接收AVC属性设定)的请求(S22)。该对话屏被提供作为AVC组件可共同使用的库。AVC组件创建显示需要设定的属性信息的对话屏,并显示给用户(S24)。在该对话屏中,可以显示文档所含的元素或者属性的列表,例如,要设定的属性信息的列表、显示画面的预览和AVC组件可参照的数据。用户可以从文档所含元素的列表中,例如在表的列、行、标签等处选择设定的元素,并向属性信息列表屏幕中拖放,使得对应关系可被设定。The AVC attribute setting unit 3002 issues a request to the AVC component for displaying a dialog screen for receiving AVC attribute setting (S22). This dialog screen is provided as a library that AVC components can use in common. The AVC component creates a dialog screen displaying attribute information to be set, and displays it to the user (S24). In this dialog screen, a list of elements or attributes contained in a document, for example, a list of attribute information to be set, a preview of a display screen, and data that an AVC component can refer to can be displayed. The user can select a set element from the list of elements contained in the document, such as columns, rows, labels, etc. of the table, and drag and drop it to the attribute information list screen, so that the corresponding relationship can be set.

当用户使用对话屏设定属性信息时(S26),AVC组件接收属性设定信息,并向源DOM中插入的AVC属性所对应的节点写入设定的属性值(S28)。源DOM修改后,由DOM单元30发出变化事件(S30),作为AVC属性的处理系统的AVC组件自身接收AVC属性并处理(S32)。这样,使用设定在AVC属性中的信息,提供AVC组件的功能,实现用户所希望的显示(S34)。图39示出了屏幕显示的例子。When the user uses the dialog screen to set attribute information (S26), the AVC component receives the attribute setting information, and writes the set attribute value to the node corresponding to the AVC attribute inserted in the source DOM (S28). After the source DOM is modified, a change event is sent by the DOM unit 30 (S30), and the AVC component itself as the processing system of the AVC attribute receives and processes the AVC attribute (S32). In this way, using the information set in the AVC attribute, the functions of the AVC component are provided to realize the display desired by the user (S34). Fig. 39 shows an example of screen display.

打开插入有AVC属性的XML文档时,通过下面的步骤将显示图39所示的屏幕。首先,通过主控制单元22向根元素分派处理系统,并处理主词汇。主词汇的处理系统由于不能处理插入的AVC词汇,所以在向以AVC词汇描述的部分分配窗格后,将处理委托给其他处理系统。主控制单元22选择AVC组件作为适合于处理AVC词汇的处理系统,所选择的AVC组件参照AVC属性创建视图。这样,可以获得图39所示的显示屏。When opening the XML document inserted with the AVC attribute, the screen shown in Fig. 39 will be displayed through the following steps. First, the processing system is assigned to the root element by the main control unit 22, and the main vocabulary is processed. Since the main vocabulary processing system cannot process the inserted AVC vocabulary, after assigning a pane to the part described in the AVC vocabulary, the processing is delegated to another processing system. The main control unit 22 selects an AVC component as a processing system suitable for processing the AVC vocabulary, and the selected AVC component creates a view with reference to the AVC attribute. In this way, the display screen shown in Fig. 39 can be obtained.

(第三实施方式)(third embodiment)

在第二实施方式中,通过向XML文档插入AVC属性并启动作为AVC属性的处理系统的AVC组件来体现AVC功能。在本实施方式中,将描述无需在XML文档中插入AVC属性就能提供AVC功能的技术。In the second embodiment, an AVC function is embodied by inserting an AVC attribute into an XML document and activating an AVC component of a processing system as the AVC attribute. In this embodiment mode, a technique for providing an AVC function without inserting an AVC attribute in an XML document will be described.

图40示出了涉及本实施方式的文档处理装置的构成。本实施方式的文档处理装置100除了具有图36所示的第二实施方式的文档处理装置100的构成外,其AVC属性设定单元3002还包括AVC属性生成单元3004以及定义文件生成单元3006。其他构成和动作与第二实施方式相同。FIG. 40 shows the configuration of the document processing apparatus according to this embodiment. The document processing device 100 of this embodiment has the structure of the document processing device 100 of the second embodiment shown in FIG. Other configurations and operations are the same as those of the second embodiment.

当AVC属性设定单元3002从用户接收AVC组件的操作所需的属性信息的设定时,AVC属性生成单元3004不是如图37所示的向源文档插入AVC属性3012,而是创建记录有AVC属性3012的AVC属性文件作为与源文档不同的文件。定义文件生成单元3006创建用于读出AVC属性文件的模块。在此,创建的是使用VC功能的基于脚本的定义文件。When the AVC attribute setting unit 3002 receives from the user the setting of the attribute information necessary for the operation of the AVC component, the AVC attribute generating unit 3004 does not insert the AVC attribute 3012 into the source document as shown in FIG. The AVC property file of property 3012 is regarded as a file different from the source document. A definition file generating unit 3006 creates a module for reading out an AVC property file. Here, what is created is a script-based definition file using VC functions.

图41示出了本实施方式涉及的文档处理方法的步骤。当用户发出指示将用于文档整体或者某个“区(zone)”的处理系统,从处理该区的构成元素所属的标签集的第一处理系统切换为作为第二处理系统实施例的AVC组件时(S50),AVC属性设定单元3002获取在文档处理装置100中注册为用户可用的AVC组件列表,并将其显示,从而使用户对使用的AVC组件进行选择(S52)。当AVC属性设定单元3002接收了用户对使用的AVC组件的选择后(S54),为了允许用户设置AVC组件操作所需参数的设定,AVC属性生成单元3004创建所选择的AVC组件的AVC属性的实例(S56),并请求AVC组件显示设定对话屏(S58)。被请求的AVC组件使用共用库创建设定对话框,并将其向用户显示(S60)。FIG. 41 shows the steps of the document processing method involved in this embodiment. When the user issues an instruction to use the processing system for the entire document or a certain "zone", switch from the first processing system that processes the tag set to which the constituent elements of the zone belong to the AVC component that is an embodiment of the second processing system At this time (S50), the AVC attribute setting unit 3002 obtains a list of AVC components registered as available to the user in the document processing apparatus 100, and displays them so that the user can select an AVC component to use (S52). When the AVC attribute setting unit 3002 receives the user's selection of the AVC component used (S54), in order to allow the user to set the setting of the parameters required for the AVC component operation, the AVC attribute generating unit 3004 creates the AVC attribute of the selected AVC component instance (S56), and requests the AVC component to display a setting dialog screen (S58). The requested AVC component creates a setting dialog using the common library, and displays it to the user (S60).

当用户使用对话屏设定属性信息后(S62),由AVC属性生成单元3004创建AVC属性文件。在此,AVC组件向定义文件生成单元3006发出用于显示注册对话屏的请求,以注册定义文件(S64)。定义文件生成单元3006向用户询问要注册的定义文件的文件名(S66),并从用户接收定义文件的名称(S68),然后创建定义文件。该定义文件将被调用作为对源文档或者指定“区”的顶点(Apex)元素的处理系统。定义文件生成单元3006注册所该定义文件,以使文档处理装置100作为参考数据(reference data)来使用(S70)。该定义文件包含有读出AVC属性文件的命令,同时包含将用于读出的AVC属性的处理委托给其他适当处理系统,即合适的AVC组件。After the user sets attribute information using the dialog screen (S62), the AVC attribute generating unit 3004 creates an AVC attribute file. Here, the AVC component issues a request for displaying a registration dialog screen to the definition file generation unit 3006 to register the definition file (S64). The definition file generating unit 3006 asks the user for the file name of the definition file to be registered (S66), receives the name of the definition file from the user (S68), and then creates the definition file. This definition file will be invoked as the processing system for the source document or apex (Apex) elements of the specified "region". The definition file generation unit 3006 registers the definition file to be used by the document processing apparatus 100 as reference data (S70). The definition file contains commands to read an AVC property file, and at the same time, delegates the processing of the AVC property for reading to another appropriate processing system, that is, an appropriate AVC component.

在AVC属性文件以及定义文件的创建完成后,AVC属性设定单元3002根据创建的定义文件切换处理系统(S72)。具体地,根据该定义文件,AVC属性文件被读出,以此将处理委托给AVC组件。被委托进行处理的AVC组件参照记录有用于识别要使用的数据的信息的AVC属性文件,从包含在文档中的数据中识别所述AVC组件使用的数据。这样,该AVC组件使用所识别出的数据提供预定的功能,以创建并显示视图(S74)。这样,使用AVC属性中设定的信息来提供AVC组件的功能,从而实现用户所希望的显示。After the creation of the AVC property file and the definition file is completed, the AVC property setting unit 3002 switches the processing system according to the created definition file (S72). Specifically, based on this definition file, an AVC property file is read, thereby delegating processing to the AVC component. The AVC component entrusted with processing refers to the AVC property file in which information for identifying the data to be used is recorded, and identifies the data used by the AVC component from the data included in the document. Thus, the AVC component provides a predetermined function using the identified data to create and display a view (S74). In this way, the functions of the AVC component are provided using the information set in the AVC attribute, thereby realizing the display desired by the user.

利用上述技术,在源文档中不插入属性信息等也可实现AVC功能。因此,可以在维持源文档的完整性的同时,通过使用AVC功能增加新的视图,而与描述源文档的词汇无关。此外,由于创建的定义文件保存后也适用于其他文档,所以可以反复利用定义文件,从而为多个文档提供AVC功能。Using the above technology, the AVC function can be realized without inserting attribute information and the like into the source document. Therefore, new views can be added by using the AVC function while maintaining the integrity of the source document, regardless of the vocabulary describing the source document. In addition, since the created definition file is saved and applied to other documents, the definition file can be reused to provide the AVC function for multiple documents.

此外,在源文档中可以将指定应适用的处理系统的命令以PI形式描述。因此,可以指定处理系统,而对文档的完整性不带来任何影响。对于处理系统切换的每个区都可以描述对处理系统进行指定的PI。主控制单元22对Apex元素分配处理系统时,当描述了对处理系统进行指定的PI时,优先分配该系统。使用该功能,通过事先将用于调用AVC功能而创建的定义文件以PI形式指定,来优先分配AVC组件,从而可以使AVC功能得以实现。In addition, a command specifying an applicable processing system may be described in PI form in the source document. Thus, processing systems can be specified without any impact on the integrity of the document. The PI specifying the processing system can be described for each area where the processing system is switched. When assigning a processing system to an Apex element, the main control unit 22 assigns that system preferentially when a PI specifying a processing system is described. Using this function, by specifying in advance a definition file created for invoking the AVC function in PI format, AVC components are allocated preferentially, so that the AVC function can be realized.

以上根据实施方式对本发明进行了说明。前述的实施方式仅是示例性的,这些构成元素或者处理过程的组合可以形成各种变形例,而且这些变形例也落入本发明的保护范围,这对于本领域的技术人员来说都将是可以理解的。The present invention has been described above based on the embodiments. The aforementioned embodiments are only exemplary, and the combination of these constituent elements or processing procedures can form various modified examples, and these modified examples also fall into the protection scope of the present invention, which will be obvious to those skilled in the art. understandable.

在实施方式中,虽然以处理XML文档为例进行了说明,但文档处理装置100对于由其他标记语言如SGML、HTML等描述的文档也同样可以处理。In the embodiment, although the processing of XML documents is described as an example, the document processing apparatus 100 can also process documents described by other markup languages such as SGML and HTML.

产业上利用的可能性Possibility of industrial use

本发明可以用于处理利用标记语言构造的文档的文档处理装置。The present invention can be used in a document processing apparatus that processes documents structured using a markup language.

Claims (18)

1.文档处理装置,包括:1. Document processing device, including: 文档获取单元,获取由预定的标签集描述的文档;a document acquiring unit, configured to acquire documents described by a predetermined tag set; 处理系统,处理所述文档的构成元素所属的标签集,a processing system for processing the set of tags to which the constituent elements of said document belong, 其中,当所述文档中所含的构成元素包含有指针信息时,所述处理系统参照所述指针信息所指向的数据进行操作,所述指针信息指向的是对该构成元素所属标签集进行处理的处理系统在操作时所参照的文档中的其它数据。Wherein, when the constituent elements contained in the document contain pointer information, the processing system operates with reference to the data pointed to by the pointer information, and the pointer information points to processing the tag set to which the constituent elements belong. Other data in the document that the processing system refers to when operating. 2.根据权利要求1所述的文档处理装置,其中,所述指针信息用xpath方式描述。2. The document processing device according to claim 1, wherein the pointer information is described in xpath. 3.根据权利要求1所述的文档处理装置,其中,所述指针信息是明确地定义的概念信息。3. The document processing apparatus according to claim 1, wherein the pointer information is clearly defined concept information. 4.根据权利要求3所述的文档处理装置,还包括分析单元,当所述指针信息以所述概念信息的形式被提供时,根据所述概念信息确定所述指针信息所指向的数据。4. The document processing apparatus according to claim 3, further comprising an analysis unit that, when the pointer information is provided in the form of the concept information, determines data pointed to by the pointer information based on the concept information. 5.根据权利要求1至4的任意一项所述的文档处理装置,其中,当多个构成元素含有指向相同数据的指针信息时,处理各个构成元素所属标签集的多个处理系统将所述相同数据作为共享存储体使用。5. The document processing device according to any one of claims 1 to 4, wherein when multiple constituent elements contain pointer information pointing to the same data, multiple processing systems that process the tag sets to which each constituent element belongs The same data is used as shared memory. 6.根据权利要求1至5的任意一项所述的文档处理装置,还包括管理单元,所述管理单元基于所述文档创建文档对象模型数据,从而对所述文档进行管理,6. The document processing apparatus according to any one of claims 1 to 5, further comprising a management unit that creates document object model data based on the document, thereby managing the document, 其中,所述处理系统通过所述管理单元提供的接口参考所述指针信息所指示的数据。Wherein, the processing system refers to the data indicated by the pointer information through the interface provided by the management unit. 7.根据权利要求6所述的文档处理装置,其中,在所述文档对象模型数据被改变时,所述管理单元将该改变通知所述处理系统,以及7. The document processing apparatus according to claim 6, wherein, when the document object model data is changed, the management unit notifies the processing system of the change, and 当从所述管理单元接收到所述文档对象模型数据被改变的通知后,所述处理系统反映所述改变。Upon receiving a notification from the management unit that the document object model data is changed, the processing system reflects the change. 8.根据权利要求7所述的文档处理装置,其中,从所述管理单元接收所述文档对象模型数据已被改变的通知的目标方是以明确地定义的概念信息的形式规定的;以及8. The document processing apparatus according to claim 7, wherein a target party receiving notification that the document object model data has been changed from the management unit is specified in the form of clearly defined concept information; and 所述文档处理装置还包括分析单元,当所述管理单元向所述概念信息所指定的被通知目标方发出上述对象模型数据的改变通知时,所述分析单元根据所述概念信息确定实际的被通知目标方。The document processing apparatus further includes an analysis unit, and when the management unit sends a change notification of the object model data to the notified target specified by the concept information, the analysis unit determines the actual object model data according to the concept information. Notify the target party. 9.根据权利要求1至8的任意一项所述的文档处理装置,其中,所述构成元素还包括所述处理系统的操作所需的参数信息。9. The document processing apparatus according to any one of claims 1 to 8, wherein the constituent elements further include parameter information required for operation of the processing system. 10.根据权利要求9所述的文档处理装置,其中,所述参数信息包含与所述指针信息所指向的数据有关的明确地定义的语义类型信息。10. The document processing apparatus according to claim 9, wherein said parameter information includes clearly defined semantic type information related to data pointed to by said pointer information. 11.文档处理方法,包括:11. Document processing methods, including: 获取以预定标签集描述的文档;Get documents described with a predetermined set of tags; 启动对所述文档的构成元素的所属标签集进行处理的处理系统;以及initiating a processing system for processing the tag set to which the constituent elements of said document belong; and 通过所述处理系统处理所述文档,processing said document by said processing system, 当所述文档中所含的构成元素具有指向包含于所述文档中的其他数据的指针信息时,所述处理系统参照所述指针信息指向的所述数据进行操作,所述处理系统在处理所述构成元素所属的标签集时,所述其他数据被用作参考数据。When the constituent elements contained in the document have pointer information pointing to other data contained in the document, the processing system operates referring to the data pointed to by the pointer information, and the processing system performs operations while processing the When specifying the tag set to which the above-mentioned constituent elements belong, the other data is used as reference data. 12.程序,使计算机实现如下功能:12. A program that enables the computer to realize the following functions: 获取以预定标签集描述的文档;Get documents described with a predetermined set of tags; 启动对所述文档的构成元素的所属标签集进行处理的处理系统;以及initiating a processing system for processing the tag set to which the constituent elements of said document belong; and 通过所述处理系统处理所述文档,processing said document by said processing system, 当所述文档中所含的构成元素具有指向包含于所述文档中的其他数据的指针信息时,所述处理系统参照所述指针信息指向的所述数据进行操作,所述处理系统在处理所述构成元素所属的标签集时,所述其他数据被用作参考数据。When the constituent elements contained in the document have pointer information pointing to other data contained in the document, the processing system operates referring to the data pointed to by the pointer information, and the processing system performs operations while processing the When specifying the tag set to which the above-mentioned constituent elements belong, the other data is used as reference data. 13.一种以XML描述的数据结构,其中,至少有一个构造元素具有指向其他数据的指针信息,其中,所述其他数据包含于文档中,并且在处理系统处理所述构成元素所属的标签集时,所述其他数据被用作参考数据。13. A data structure described in XML, wherein at least one structural element has pointer information pointing to other data contained in the document, and the processing system processes the tag set to which the constituent element belongs , the other data are used as reference data. 14.一种文档处理装置,包括:14. A document processing device comprising: 接收单元,接收将处理模块附加到文档中的指示,所述处理模块使用文档中的数据来提供预定功能;以及a receiving unit that receives an instruction to attach a processing module to the document, the processing module using data in the document to provide a predetermined function; and 编辑单元,在接收到所述指示时,向所述文档插入包含有指针信息的构成元素,所述指针信息指向所述处理模块使用的数据。The editing unit, when receiving the instruction, inserts into the document a constituent element including pointer information, and the pointer information points to the data used by the processing module. 15.根据权利要求14所述的文档处理装置,还包括启动单元,所述启动单元用于启动对插入到所述文档中的所述构成元素进行处理的处理模块。15. The document processing apparatus according to claim 14, further comprising an activating unit for activating a processing module that processes the constituent elements inserted into the document. 16.根据权利要求14或15所述的文档处理装置,其中,所述编辑单元将所述处理模块的操作所需的参数插入到文档中。16. The document processing apparatus according to claim 14 or 15, wherein the editing unit inserts parameters necessary for the operation of the processing module into the document. 17.文档处理装置,包括:17. Document processing apparatus, comprising: 文档获取单元,获取由预定的标签集描述的文档;a document acquiring unit, configured to acquire documents described by a predetermined tag set; 第一处理系统,处理所述文档的构成元素所属的标签集;A first processing system, processing the tag set to which the constituent elements of the document belong; 第二处理系统,使用文档中的数据提供预定的功能,a second processing system that uses the data in the document to provide a predetermined function, 其中,当接收到将处理所述文档的构成元素的处理系统由所述第一处理系统切换为所述第二处理系统的指示时,所述第二处理系统参照在其中记录有用于识别要使用的数据的信息的文件,来识别所述要使用的数据,并使用所识别的数据提供所述预定的功能。Wherein, when receiving an instruction to switch the processing system for processing the constituent elements of the document from the first processing system to the second processing system, the second processing system refers to the information recorded therein for identifying the A file of information about the data, to identify the data to be used, and to provide the predetermined function using the identified data. 18.根据权利要求17所述的文档处理装置,其中,在所述文件不存在时,所述第二处理系统从用户接收用于识别所述要使用的数据的信息,并创建所述文件。18. The document processing apparatus according to claim 17, wherein, when the file does not exist, the second processing system receives information for identifying the data to be used from a user, and creates the file.
CNA2006800220522A 2005-06-24 2006-06-26 Document processing apparatus and document processing method Withdrawn CN101203848A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP185726/2005 2005-06-24
JP2005185726 2005-06-24
JP100665/2006 2006-03-31

Publications (1)

Publication Number Publication Date
CN101203848A true CN101203848A (en) 2008-06-18

Family

ID=39518092

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2006800220522A Withdrawn CN101203848A (en) 2005-06-24 2006-06-26 Document processing apparatus and document processing method

Country Status (1)

Country Link
CN (1) CN101203848A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109145263A (en) * 2017-06-19 2019-01-04 珠海金山办公软件有限公司 A kind of document processing method and device, computer readable storage medium
CN110704762A (en) * 2019-09-20 2020-01-17 深圳巴斯巴科技发展有限公司 Data presentation method and device, computer equipment and storage medium
CN112368694A (en) * 2018-10-18 2021-02-12 谷歌有限责任公司 Context estimation of link information gain
CN113283216A (en) * 2021-05-31 2021-08-20 平安国际智慧城市科技股份有限公司 Webpage content display method, device, equipment and storage medium
CN116185412A (en) * 2023-04-19 2023-05-30 陕西空天信息技术有限公司 Data management method and device, electronic equipment and storage medium

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109145263A (en) * 2017-06-19 2019-01-04 珠海金山办公软件有限公司 A kind of document processing method and device, computer readable storage medium
CN112368694A (en) * 2018-10-18 2021-02-12 谷歌有限责任公司 Context estimation of link information gain
US12326889B2 (en) 2018-10-18 2025-06-10 Google Llc Contextual estimation of link information gain
CN110704762A (en) * 2019-09-20 2020-01-17 深圳巴斯巴科技发展有限公司 Data presentation method and device, computer equipment and storage medium
CN113283216A (en) * 2021-05-31 2021-08-20 平安国际智慧城市科技股份有限公司 Webpage content display method, device, equipment and storage medium
CN116185412A (en) * 2023-04-19 2023-05-30 陕西空天信息技术有限公司 Data management method and device, electronic equipment and storage medium
CN116185412B (en) * 2023-04-19 2023-07-11 陕西空天信息技术有限公司 Data management method and device, electronic equipment and storage medium

Similar Documents

Publication Publication Date Title
JP5020075B2 (en) Document processing device
WO2006051905A1 (en) Data processing device and data processing method
JP4625464B2 (en) Document processing device
CN101268458A (en) Data management device, data editing device, data browsing device, data management method, data editing method, and data browsing method
JPWO2006051870A1 (en) Data processing apparatus, document processing apparatus, and document processing method
JPWO2006051715A1 (en) Document processing apparatus and document processing method
WO2006137565A1 (en) Document processing device, and document processing method
JPWO2006051975A1 (en) Document processing device
JP4521408B2 (en) Document processing apparatus and document processing method
JPWO2006046666A1 (en) Document processing apparatus and document processing method
JPWO2007105364A1 (en) Document processing apparatus and document processing method
WO2006051960A1 (en) Document processing device and document processing method
JPWO2006051713A1 (en) Document processing apparatus and document processing method
WO2006120926A1 (en) Input form design device and input form design method
JPWO2006046668A1 (en) Document processing apparatus and document processing method
JP2008225932A (en) Data processing apparatus and data processing method
WO2006051959A1 (en) Document processing device and document processing method
WO2006051716A1 (en) Document processing device and document processing method
JPWO2006051712A1 (en) Document processing apparatus and document processing method
CN101203848A (en) Document processing apparatus and document processing method
CN101268438A (en) data processing device
WO2006051717A1 (en) Document processing device and document processing method
JPWO2006051714A1 (en) Document processing apparatus and document processing method
JP2007532987A (en) Data and document processing using markup languages
WO2006051868A1 (en) Document processing device and document processing method

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