JP2007532986A - Document processing in multiple markup expressions - Google Patents

Document processing in multiple markup expressions Download PDF

Info

Publication number
JP2007532986A
JP2007532986A JP2006535891A JP2006535891A JP2007532986A JP 2007532986 A JP2007532986 A JP 2007532986A JP 2006535891 A JP2006535891 A JP 2006535891A JP 2006535891 A JP2006535891 A JP 2006535891A JP 2007532986 A JP2007532986 A JP 2007532986A
Authority
JP
Japan
Prior art keywords
document
object model
node
connector
model data
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.)
Granted
Application number
JP2006535891A
Other languages
Japanese (ja)
Inventor
伸明 和家
教雄 大島
正幸 檜山
祐介 藤巻
Original Assignee
株式会社ジャストシステム
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
Priority to JP2004114524 priority Critical
Priority to US59236904P priority
Priority to JP2005020457 priority
Application filed by 株式会社ジャストシステム filed Critical 株式会社ジャストシステム
Priority to PCT/JP2005/007287 priority patent/WO2005098664A1/en
Publication of JP2007532986A publication Critical patent/JP2007532986A/en
Application status is Granted legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/20Handling natural language data
    • G06F17/21Text processing
    • G06F17/22Manipulating or registering by use of codes, e.g. in sequence of text characters
    • G06F17/2247Tree structured documents; Markup, e.g. Standard Generalized Markup Language [SGML], Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • G06F16/88Mark-up to mark-up conversion

Abstract

A document processing system includes a processing system capable of processing a document described in a first markup language supported by the document processing system. A conversion unit is provided that can map the document to the first markup language when the document is described in a second markup language that the processing system does not support.
[Selection] Figure 1

Description

  The present invention relates to a document processing technique, and more particularly to a technique for processing a document described in a markup language.

  With the advent of the Internet, the number of documents processed and managed by users has increased almost exponentially. The WWW (World Wide Web: also called “Web”) that forms the core of the Internet includes a large data storage area for such documents. The web provides an information retrieval system for documents as well as documents. Many of these documents are formatted in a markup language. One of the simple and popular markup languages is HTML (HyperText Markup Language). Such documents also include links to other documents in other parts of the web. XML (eXtensible Markup Language) is a more advanced and popular markup language. Simple browsers for accessing and browsing documents via the web have been developed in object-oriented programming languages such as Java (registered trademark).

  A document formatted by a markup language is usually expressed in the form of a tree data structure in a browser or other application. This structure corresponds to a document parse tree. The Document Object Model (DOM) is a well-known tree-based data structure model used to represent and manipulate documents. DOM provides a standard set of objects for representing documents, including HTML and XML documents. DOM consists of two basic components: a standard model of how objects that represent elements in a document are combined and a standard interface for accessing and manipulating those objects. Including.

  An application developer can support DOM as an interface to a unique data structure or API (Application Program Interface). On the other hand, an application developer who creates a document can use the DOM standard interface instead of the original interface of his API. Thus, due to its ability to provide standards, DOM is effective in increasing interoperability of documents in various environments, especially the web. Several versions of DOM have been defined and are used by different programming environments and applications.

  A DOM tree is a hierarchical representation of a document based on the contents of the corresponding DOM. A DOM tree includes a “root” and includes one or more “nodes” that originate from the root. The root may represent the entire document. The intermediate node can also represent an element such as a table or a row and a column of the table. A “leaf” in a DOM tree usually represents data that cannot be further decomposed, such as text items and images. Each node of the DOM tree can be associated with attributes describing the parameters of the element represented by the node, such as font, size, color, indent, and the like.

  HTML is a language generally used to create a document, but is a language for formatting and layout, not a language for data description. The node of the DOM tree that represents an HTML document is a pre-defined element as an HTML formatting tag. Normally, HTML does not provide a function for detailing data or tagging / labeling data. It is often difficult to formulate queries for data in HTML documents.

  The goal of network designers is to allow documents on the web to be queried and processed by software applications. Regardless of the display method, any hierarchically structured language can be queried and processed as such. A markup language such as XML (eXtensible Markup Language) can provide these features.

  Contrary to HTML, a well-known advantage of XML is that document designers can label data elements using freely definable “tags”. Such data elements can be organized hierarchically. Furthermore, the XML document can include a document type definition (DTD) that describes “grammar” (tags and mutual relations between tags) used in the document. In order to define the display method of the structured XML document, CSS (Cascading Style Sheets) or XSL (XML Style Language) is used. Further information regarding DOM, HTML, XML, CSS, XSL and related language features is available from the web, eg, “http://www.w3.org/TR/”.

  Xpath is a common syntax and semantics for specifying the position of a part of an XML document. As an Xpath function, for example, there is a DOM tree traversal corresponding to an XML document. This provides basic functionality for manipulating sentences, numbers, and Boolean characters associated with various representations of the XML document. Xpath operates on an abstract, logical structure, such as a DOM tree, rather than the syntax of the appearance of an XML document, for example, the grammar of what line or number of characters when viewed as text. . By using Xpath, a location can be specified through a hierarchical structure in the DOM tree of an XML document, for example. Besides specifying the location, Xpath is designed to be usable to determine whether a node in the DOM tree matches the pattern.

  More details on Xpath are available at “http://www.w3.org/TR/xpath”.

In light of the known advantages and features of XML, there is a need for an effective document processing management system that can handle documents in markup languages such as XML and provides a user-friendly interface for creating and editing documents. It is. XML is attracting attention as a format suitable for sharing data with others via compound documents or networks, and applications for creating, displaying, and editing XML documents have been developed (for example, Patent Document 1). The XML document is created based on a vocabulary (tag set) defined by a document type definition or the like.
JP 2001-290804 A

  The vocabulary is allowed to be arbitrarily defined, and in theory, there can be an unlimited number of vocabularies. It is not realistic to provide a dedicated display / editing environment corresponding to all of these vocabularies. Conventionally, when editing a document described in a vocabulary for which a dedicated editing environment is not prepared, the source of the document composed of text data is directly edited with a text editor or the like.

  Existing applications that can handle XML documents are available on the market, but have significant limitations and barriers that hinder their wide acceptance. The methods and apparatus described herein solve problems that have not been addressed by such existing products and existing underlying technologies.

  For example, in the implementation of an existing XML document processing apparatus, the feature of an XML document, that is, expression of contents not related to a display method, is regarded as an advantage on the surface. However, such a feature causes a disadvantage that the user cannot actually edit directly. In order to solve this problem, existing XML document processing products design unique screens for XML input. However, since existing XML products are hard-coded in advance, the flexibility of screen design is limited.

  Regarding this limitation, XSLT has already been developed as one of the standards for the style sheet language. This is a technique for releasing a user from hard code, and is compatible with a method applicable to display of an XML document. However, XSLT only displays XML documents and does not allow editing.

  In addition, existing XML products rely primarily on the existence of a “schema”. Therefore, once a schema is determined for the first time, only the XML document corresponding to the schema structure can be handled from the top layer. In other words, the system is a fixed system.

  According to the present invention, there are no restrictions as described above. The structure of the entire XML document need not be fixedly determined. Complex XML documents with various structures can be handled safely with the idea of dividing the XML document into several parts and assigning editing modules. In order to realize a flexible system, the editing module is preferably realized by a plug-in. In addition, the user can implement a flexible screen design and edit it with WYSIWYG without hard code restrictions.

  The present invention has been made in view of such circumstances, and an object thereof is to provide an apparatus, a method, and a program product that effectively process a document described in one or more markup languages such as XML. .

  One embodiment of the present invention relates to a document processing apparatus. The document processing apparatus includes a processing system capable of processing a document described in a first markup language supported by the document processing apparatus, and a second markup in which the document is not supported by the processing system. A conversion unit capable of mapping the document to the first markup language when written in a language.

  Another aspect of the present invention relates to a document processing method. In this document processing method, the document to be processed by the document processing apparatus that cannot process the first markup language and can process the second markup language is described in the first markup language. Sometimes, the method includes the step of mapping the document to the second markup language and the step of displaying the mapped document.

  A computer program product including a computer-readable medium having instructions capable of causing a computer to execute the above-described technique is also an aspect of the present invention.

  It should be noted that any combination of the above-described constituent elements and a representation of the present invention converted between a method, an apparatus, a system, etc. are also effective as an aspect of the present invention.

  According to the present invention, it is possible to provide a technique for appropriately processing a document described in one or more markup languages for at least one of generation, editing, display, and storage.

  FIG. 1 shows a configuration of a document processing apparatus 20 according to the embodiment. The document processing apparatus 20 processes a structured document in which data in the document is classified into a plurality of components having a hierarchical structure. In the present embodiment, an example of processing an XML document as an example of a structured document will be described. To do. The document processing apparatus 20 includes a main control unit 22, an editing unit 24, a DOM (Document Object Model) unit 30, a CSS (Cascade Style Sheets) unit 40, an HTML (HyperText Markup Language) unit 50, and an SVG (Scalable Vector Graphics) unit 60. And a VC (Vocabulary Connection) unit 80 which is an example of a conversion unit. In terms of hardware components, these configurations are realized by a CPU of a computer, a memory, a program loaded in the memory, and the like, but here, functional blocks realized by their cooperation are illustrated. Accordingly, those skilled in the art will understand that these functional blocks can be realized in various forms by hardware only, software only, or a combination thereof.

  The main control unit 22 provides a framework for loading plug-ins and executing commands. The editing unit 24 provides a framework for editing the XML document. The document display and editing functions in the document processing apparatus 20 are realized by plug-ins, and necessary plug-ins are loaded by the main control unit 22 or the editing unit 24 according to the type of the document. The main control unit 22 or the editing unit 24 refers to the name space of the XML document to be processed, determines which vocabulary the XML document is described in, and a display or editing plug corresponding to the vocabulary Load the in to display and edit. For example, the document processing apparatus 20 includes an HTML unit 50 that displays and edits an HTML document using the control unit 52, the editing unit 54, and the display unit 56, a control unit 62, an editing unit 64, and a display unit 66. The display system and editing system are implemented as plug-ins for each vocabulary (tag set), such as the SVG unit 60 that uses the SVG document to display and edit, and when editing an HTML document, the HTML unit 50 is replaced with the SVG document. Is edited, the SVG unit 60 is loaded in cooperation with the respective control units. As will be described later, 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.

  According to such a configuration, the user can select and install only necessary functions, and can add or delete functions as appropriate later, so that the storage area of a recording medium such as a hard disk for storing the program is effective. In addition, it is possible to prevent the memory from being wasted when executing the program. In addition, it has excellent function extensibility, and as a development entity, it is possible to handle new vocabularies in the form of plug-ins, making development easier, and as a user, adding plug-ins makes it easy and low-cost. Functions can be added.

  The editing unit 24 receives an editing instruction event (trigger event) including input operations such as mouse clicks and keystrokes from the user via the user interface, notifies the event to an appropriate plug-in, etc. Controls processing such as execution (redo) or cancellation of execution (undo).

  The DOM unit 30 includes a DOM providing unit 32, a DOM generation unit 34, and an output unit 36, and is a document object model (DOM) defined for providing an access method when handling an XML document as data. Realize functions that comply with. The DOM providing unit 32 is an implementation of DOM that satisfies the interface defined in the editing unit 24. The DOM generation unit 34 generates a DOM tree from the XML document. As will be described later, when the XML document to be processed is mapped to another vocabulary by the VC unit 80, the source tree corresponding to the mapping source XML document and the destination tree corresponding to the mapping destination XML document Is generated. The output unit 36 outputs the DOM tree as an XML document at the end of editing, for example.

  The CSS unit 40 includes a CSS analysis unit 42, a CSS providing unit 44, and a rendering unit 46, and provides a display function compliant with CSS. The CSS analysis unit 42 has a parser function of analyzing the CSS syntax. The CSS providing unit 44 is an implementation of a CSS object, and performs a CSS cascade process on the DOM tree. The rendering unit 46 is a CSS rendering engine, and is used to display a document described in a vocabulary such as HTML that is laid out using the CSS.

The HTML unit 50 displays or edits a document described in HTML. The SVG unit 60 displays or edits a document described in SVG. These display / editing systems are realized in the form of plug-ins, and display units (Canvas) 56 and 66 for displaying documents, and control units (Editlet) 52 and 62 for transmitting and receiving events including editing instructions, respectively. Editing units (Zone) 54 and 64 that receive editing commands and edit the DOM. When the control unit 52 or 62 receives a DOM tree editing command from the outside, the editing unit 54 or 64 changes the DOM tree, and the display unit 56 or 66 updates the display. These have a configuration similar to a framework called MVC (Model-View-Controller), which is a well-known graphical user interface (GUI) paradigm. The MVC paradigm proposes a method of dividing an application or part of an application interface into three parts: a model, a view, and a controller. MVC was originally developed to assign traditional input, processing, and output roles to the GUI world.
[Input] → [Process] → [Output]
[Controller] → [Model] → [View]

  According to the MVC paradigm, external modeling, visual feedback to the user, and user input are handled separately by the model (M), view (V), and controller (C) objects. The controller acts to interpret input such as mouse and keyboard input from the user and map these user actions to commands sent to the model and / or view to effect the appropriate changes. The model acts to manage one or more data elements, responds to queries about its state, and responds to instructions to change the state. The view acts to manage a rectangular area of the display and has a function of presenting data to the user by a combination of graphics and text.

  In the embodiment of the present invention disclosed herein, the display units 56 and 66 are generally “View”, the control units 52 and 62 are “Controller”, and the editing units 54 and 64 and the DOM entity are “Model”. Respectively. The document processing apparatus 20 according to the present embodiment shown in FIG. 1-10 not only edits an XML document in a tree display format, but also enables editing according to each vocabulary. For example, the HTML unit 50 provides a user interface for editing an HTML document in a manner similar to a word processor, and the SVG unit 60 provides a user interface for editing an SVG document in a manner similar to an image drawing tool. To do.

  The VC unit 80 includes a mapping unit 82, a definition file acquisition unit 84, and a definition file generation unit 86. By mapping a document described in a certain vocabulary to another vocabulary, a display corresponding to the mapping destination vocabulary Provides a framework for displaying or editing a document with an editing plug-in. In the present embodiment, this function is called a vocabulary connection (VC). The definition file acquisition unit 84 acquires a definition file describing a mapping definition. In the present embodiment, the definition file is a script file.

  The first vocabulary document is expressed as a source tree including nodes. Similarly, the second vocabulary document is represented as a destination tree including nodes. The definition file describes the correspondence (connection) between the nodes of the source tree and the destination tree for each node. As is known in the W3C art, nodes in a DOM tree may be defined by element values and / or attribute values. In the present embodiment, whether or not the element value and attribute value of each node can be edited may be designated.

  Also, an arithmetic expression using the element value or attribute value of the node may be described. These functions will be described in detail later. The mapping unit 82 refers to the definition file (script file) acquired by the definition file acquisition unit 84, causes the DOM generation unit 34 to generate a destination tree, and manages the correspondence between the source tree and the destination tree. The definition file generator 86 provides a graphical user interface for the user to generate a definition file.

  When the VC unit 80 monitors the connection between the source tree and the destination tree and receives an editing instruction from the user via the user interface provided by the plug-in responsible for display, the VC unit 80 first selects the corresponding node of the source tree. change. When the DOM unit 30 issues a mutation event to the effect that the source tree has been changed, the VC unit 80 receives the mutation event, and the node changed to synchronize the destination tree with the change of the source tree. Change the destination tree node corresponding to. A plug-in for displaying / editing the destination tree, for example, the HTML unit 50, receives a mutation event indicating that the destination tree has been changed, and updates the display with reference to the changed destination tree. With such a configuration, even a document described in a local vocabulary used by a small number of users can be displayed by converting it to another major vocabulary, and an editing environment is provided. Is done.

  An operation for displaying or editing a document by the document processing apparatus 20 will be described. When the document processing apparatus 20 reads a document to be processed, the DOM generation unit 34 generates a DOM tree from the XML document. Further, the main control unit 22 or the editing unit 24 determines the vocabulary describing the document with reference to the name space. If a plug-in corresponding to the vocabulary is installed in the document processing apparatus 20, the plug-in is loaded to display / edit the document. If the plug-in is not installed, check whether the mapping definition file exists. When the definition file exists, the definition file acquisition unit 84 acquires the definition file, generates a destination tree according to the definition, and displays / edits the document by the plug-in corresponding to the mapping destination vocabulary. In the case of a compound document including a plurality of vocabularies, corresponding portions of the document are displayed / edited by plug-ins corresponding to the respective vocabularies, as will be described later. If the definition file does not exist, the document source or tree structure is displayed, and editing is performed on the display screen.

  FIG. 2 shows an example of an XML document to be processed. This XML document is used to manage student performance data. The component “score” which is the top node of the XML document has a plurality of component “students” provided for each student under the subordinate. The component “student” has an attribute value “name” and child elements “national language”, “mathematics”, “science”, and “society”. The attribute value “name” stores the name of the student. The constituent elements “National language”, “Mathematics”, “Science”, and “Society” store the results of national language, mathematics, science, and society, respectively. For example, a student whose name is “A” has a national language grade of “90”, a mathematical grade of “50”, a science grade of “75”, and a social grade of “60”. Hereinafter, the vocabulary (tag set) used in this document is referred to as a “results management vocabulary”.

  Since the document processing apparatus 20 of the present embodiment does not have a plug-in that supports display / editing of the grade management vocabulary, in order to display this document by a method other than source display and tree display, the VC function described above is used. Is used. That is, it is necessary to prepare a definition file for mapping the grade management vocabulary to another vocabulary provided with a plug-in, such as HTML or SVG. A user interface for the user himself to create a definition file will be described later, and here, the description will proceed assuming that a definition file has already been prepared.

  FIG. 3 shows an example of mapping the XML document shown in FIG. 2 to a table described in HTML. In the example of FIG. 3, the “student” node of the grade management vocabulary is associated with a row (“TR” node) of a table (“TABLE” node) in HTML, and an attribute value “name” is assigned to the first column of each row. The second column contains the element values of the “National Language” node, the third column the element values of the “Mathematics” node, the fourth column the element values of the “Science” node, and the fifth column “Society”. The node element values are associated with each other. Thereby, the XML document shown in FIG. 2 can be displayed in an HTML table format. These attribute values and element values are specified to be editable, and the user can edit these values using the editing function of the HTML unit 50 on the HTML display screen. In the sixth column, an arithmetic expression for calculating a weighted average of national language, mathematics, science and social results is designated, and the average score of the students' results is displayed. In this way, by making it possible to specify an arithmetic expression in the definition file, more flexible display is possible and user convenience during editing can be improved. Note that the sixth column specifies that editing is not possible, and only the average score cannot be edited individually. As described above, by making it possible to specify whether or not editing can be performed in the mapping definition, it is possible to prevent an erroneous operation by the user.

  FIG. 4 shows an example of a definition file for mapping the XML document shown in FIG. 2 to the table shown in FIG. This definition file is described in a script language defined for the definition file. In the definition file, command definitions and display templates are described. In the example of FIG. 4, “add student” and “delete student” are defined as commands, and an operation of inserting a node “student” into the source tree and a node “student” from the source tree, respectively. Is associated with the operation to be performed. As a template, it is described that headings such as “name” and “national language” are displayed in the first line of the table, and the contents of the node “student” are displayed in the second and subsequent lines. In the template that displays the contents of the node "Student", the term described as "text-of" means "editable" and the term described as "value-of" is "not editable" It means that. In the sixth column of the row displaying the contents of the node “Student”, the formula “(src: Japanese + src: Mathematics + src: Science + src: Society) div 4” is described. , Which means that the average of the student's grades is displayed.

  FIG. 5 shows an example of a screen in which the XML document described in the grade management vocabulary shown in FIG. 2 is mapped and displayed in HTML according to the correspondence shown in FIG. In each row of Table 90, from the left, the name of each student, national language grade, mathematics grade, science grade, social grade, and average score are displayed. The user can edit the XML document on this screen. For example, when the value of the second row and third column is changed to “70”, the element value of the source tree corresponding to this node, that is, the math grade of the student “B” is changed to “70”. At this time, the VC unit 80 changes the corresponding part of the destination tree so that the destination tree follows the source tree, and the HTML unit 50 updates the display based on the changed destination tree. Accordingly, the mathematical score of the student “B” is changed to “70”, and the average score is changed to “55”.

  On the screen shown in FIG. 5, as defined in the definition file shown in FIG. 4, “add student” and “delete student” commands are displayed in the menu. When the user selects these commands, the node “student” is added or deleted in the source tree. As described above, in the document processing apparatus 20 according to the present embodiment, it is possible not only to edit the element value of the component at the end of the hierarchical structure, but also to edit the hierarchical structure. Such a tree structure editing function may be provided to the user in the form of a command. Further, for example, a command for adding or deleting a table row may be associated with an operation for adding or deleting the node “student”. In addition, a command for embedding another vocabulary may be provided to the user. Using this table as an input template, new student grade data can be added in the form of hole filling. As described above, the VC function makes it possible to edit a document described in the grade management vocabulary while using the display / editing function of the HTML unit 50.

  FIG. 6 shows an example of a graphical user interface that the definition file generator 86 presents to the user in order for the user to generate a definition file. In the area 91 on the left side of the screen, the XML document that is the mapping source is displayed as a tree. An area 92 on the right side of the screen shows the screen layout of the XML document to be mapped. This screen layout can be edited by the HTML unit 50, and the user creates a screen layout for displaying a document in the area 92 on the right side of the screen. Then, for example, by using a pointing device such as a mouse, a node of the mapping source XML document displayed in the area 91 on the left side of the screen is dragged and dropped into the screen layout by HTML displayed in the area 92 on the right side of the screen. Thus, the connection between the mapping source node and the mapping destination node is designated. For example, when “mathematics” which is a child element of the element “student” is dropped on the first row and the third column of the table 90 of the HTML screen, the connection is made between the “math” node and the “TD” node in the third column. Is stretched. Each node can be designated for editing. An arithmetic expression can also be embedded in the display screen. When the editing of the screen is finished, the definition file generator 86 generates a definition file describing the screen layout and the connection between the nodes.

  Viewers and editors corresponding to major vocabularies such as XHTML, MathML, and SVG have already been developed, but viewers and editors corresponding to documents described in original vocabulary such as the document shown in FIG. 2 are developed. Is not realistic. However, if a definition file for mapping to other vocabularies is created as described above, the document described in the original vocabulary can be displayed using the VC function without developing a viewer or editor. Can be edited.

  FIG. 7 shows another example of the screen layout generated by the definition file generator 86. In the example of FIG. 7, a table 90 and a pie chart 93 are created on a screen for displaying an XML document described in the grade management vocabulary. This pie chart 93 is described in SVG. As will be described later, the document processing apparatus 20 according to the present embodiment can process a compound document including a plurality of vocabularies in one XML document. Therefore, as shown in this example, the table 90 described in HTML is used. And a pie chart 93 described in SVG can be displayed on one screen.

  FIG. 8 shows an example of an XML document editing screen by the document processing apparatus 20. In the example of FIG. 8, one screen is divided into a plurality of parts, and XML documents to be processed are displayed in a plurality of different display formats in the respective areas. An area 94 displays the source of the document, an area 95 displays the tree structure of the document, and an area 96 displays a table described in HTML shown in FIG. . Documents can be edited on any of these screens. When the user edits on any of these screens, the source tree is changed, and the plug-in responsible for displaying each screen is changed to the source tree. Update the screen to reflect your changes. Specifically, as a listener for a mutation event that notifies a change in the source tree, a display unit of a plug-in responsible for displaying each editing screen is registered, and the source is generated by any plug-in or VC unit 80. When the tree is changed, all display units displaying the edit screen receive the issued mutation event and update the screen. At this time, if the plug-in is displaying by the VC function, the VC unit 80 changes the destination tree following the change of the source tree, and then refers to the changed destination tree to change the plug-in. The display unit updates the screen.

  For example, when the source display and tree display are realized by a dedicated plug-in, the source display plug-in and the tree display plug-in do not use the destination tree, but directly display the source tree. Do. In this case, when editing is performed on any of the screens, the source display plug-in and the tree display plug-in update the screen with reference to the changed source tree and are in charge of the screen of the region 96. The HTML unit 50 updates the screen by referring to the changed destination tree following the change of the source tree.

  The source display and tree display can also be realized using the VC function. In other words, the source and tree structure may be laid out in HTML, the XML document may be mapped to the HTML, and displayed by the HTML unit 50. In this case, three destination trees of a source format, a tree format, and a table format are generated. When editing is performed on any of the screens, the VC unit 80 changes the source tree, then changes each of the three destination trees in the source format, tree format, and table format, and the HTML unit 50 sets the destination tree. 3 screens are updated with reference to the nation tree.

  As described above, the convenience of the user can be improved by displaying the document in a plurality of display formats on one screen. For example, the user can display and edit the document in a visually easy-to-understand format using the table 90 or the like while grasping the hierarchical structure of the document by the source display or the tree display. In the above example, one screen is divided and screens in a plurality of display formats are simultaneously displayed. However, a screen in one display format may be displayed on one screen, and the display format may be switched according to a user instruction. . In this case, the main control unit 22 receives a display format switching request from the user, and instructs each plug-in to switch the display.

  FIG. 9 shows another example of an XML document edited by the document processing apparatus 20. In the XML document shown in FIG. 9, the XHTML document is embedded in the “foreignObject” tag of the SVG document, and further, the mathematical formula described in MathML is included in the XHTML document. In such a case, the editing unit 24 refers to the name space and distributes the drawing work to an appropriate display system. In the example of FIG. 9, the editing unit 24 first causes the SVG unit 60 to draw a quadrangle, and then causes the HTML unit 50 to draw an XHTML document. Further, a mathematical expression is drawn in a MathML unit (not shown). Thus, a compound document including a plurality of vocabularies is appropriately displayed. The display result is shown in FIG.

  An editing menu may be displayed to the user during document editing. The menu may correspond to the position of the compound document to be edited. As described above, the displayed menu may be switched according to the position of the cursor (carriage) moved on the display screen by the user. That is, when the cursor exists in the area where the SVG document is displayed, the menu defined by the menu provided by the SVG unit 60 or the definition file for mapping the SVG document is displayed, and the cursor is displayed in the XHTML. When the document exists in the displayed area, a menu provided by the HTML unit 50 or a command defined in a definition file for mapping the XHTML document is displayed. Thereby, an appropriate user interface can be provided according to the editing position.

  If there is no appropriate plug-in or mapping definition file corresponding to a certain vocabulary in the compound document, the portion described by the vocabulary may be displayed in the source display or the tree display. Conventionally, when a compound document in which another document is embedded in a document is opened, the contents cannot be displayed unless an application for displaying the embedded document is installed. Even if there is no application for display, the contents can be grasped by displaying the XML document composed of text data as a source or a tree. This is a characteristic unique to text-based documents such as XML.

  Another advantage of the data being described in the text base is that, for example, in a part described by a certain vocabulary in a compound document, data in a part described by another vocabulary in the same document can be referred to. Good. In addition, when a search is executed in a document, a character string embedded in a figure such as SVG can be a search target.

  A tag of another vocabulary may be used in a document described by a certain vocabulary. This XML document is not valid, but can be processed as a valid XML document if it is well-formed. In this case, the tag of another inserted vocabulary may be mapped by the definition file. For example, tags such as “important” and “most important” may be used in an XHTML document, and a portion surrounded by these tags may be highlighted, or may be sorted and displayed in order of importance. Good.

  When the document is edited by the user on the editing screen shown in FIG. 10, the plug-in or VC unit 80 in charge of the edited part changes the source tree. In the source tree, a listener for a mutation event can be registered for each node. Normally, a plug-in display unit or VC unit 80 corresponding to the vocabulary to which each node belongs is registered as a listener. When the source tree is changed, the DOM providing unit 32 traces from the changed node to a higher hierarchy, and if there is a registered listener, issues a mutation event to the listener. For example, in the document shown in FIG. 9, when a node below the <html> node is changed, a mutation event is notified to the HTML unit 50 registered as a listener in the <html> node, and the higher order node is also displayed. The mutation event is also notified to the SVG unit 60 registered as a listener in the <svg> node. At this time, the HTML unit 50 updates the display with reference to the changed source tree. The SVG unit 60 may ignore the mutation event because the node belonging to its own vocabulary has not been changed.

  Depending on the contents of editing, the overall layout may change as the display is updated by the HTML unit 50. In this case, the layout of the display area for each plug-in is updated by a configuration for managing the layout of the screen, for example, a plug-in responsible for displaying the top node. For example, when the display area by the HTML unit 50 becomes larger than before, the HTML unit 50 first draws a part that it is in charge of and determines the size of the display area. Then, the configuration managing the screen layout is notified of the size of the display area after the change, and the layout is requested to be updated. Upon receiving the notification, the configuration for managing the screen layout re-lays out the display area for each plug-in. In this way, the display of the edited part is appropriately updated, and the layout of the entire screen is updated.

  Next, a functional configuration for realizing the document processing apparatus 20 according to the embodiment will be described in more detail.

  An embodiment of a system for processing and managing documents will be described with reference to FIGS. 11-29.

  FIG. 11A shows a conventional arrangement example of a configuration that functions as a basis of a document processing / management system of the type described later. Configuration 10 includes a processor in the form of a CPU or microprocessor 11 connected to memory 12 by communication path 13. The memory 12 may be in the form of any ROM and / or RAM that is available now or in the future. The communication path 13 is typically provided as a bus. A user input device 14 such as a mouse, a keyboard, a voice recognition system, and an input / output interface 16 for the display device 15 (or other user interface) are also connected to a bus for communication between the processor 11 and the memory 12. As is well known, other devices such as printers, communication modems, etc. may be combined. This configuration may be a stand-alone, a networked form in which a plurality of terminals and one or more servers are connected, or may be configured by any known method. The present invention is not limited by the placement of these components, the centralized or distributed architecture, or the communication method of the various components.

  Furthermore, it should be noted that the present system and the embodiments discussed herein are discussed as including several components and subcomponents that provide various functionality. These components and subcomponents can be realized not only by a combination of hardware and software, but also by hardware alone or software alone to provide the noted functionality. Furthermore, the hardware, software, and combinations thereof can be realized by general-purpose computing devices, dedicated hardware, or combinations thereof. Accordingly, the configuration of a component or subcomponent includes a general purpose / dedicated computing device that executes specific software to provide the functionality of the component or subcomponent.

  FIG. 11B shows an overall block diagram of an example of a document processing / management system. A document is generated and edited in such a document processing / management system. These documents may be described in any language having a markup language feature, such as XML. For convenience, specific component and subcomponent terms and titles have been created. However, these should not be construed to limit the scope of the general teachings of this disclosure.

  The document processing / management system can be regarded as having two basic configurations. The first configuration is an “execution environment” 101 that is an environment in which the document processing / management system operates. For example, the execution environment provides basic utilities and functions that support the system as well as the user during document processing and management. The second configuration is an “application” 102 composed of applications running in the execution environment. These applications include the document itself and various representations of the document.

1. Execution Environment A key configuration of the execution environment 101 is a ProgramInvoker (program invoker: program start unit) 103. The ProgramInvoker 103 is a basic program that is accessed to activate the document processing / management system. For example, when the user logs on to the document processing / management system and starts, the ProgramInvoker 103 is executed. For example, the ProgramInvoker 103 can read and execute a function added as a plug-in to the document processing / management system, start and execute an application, or read characteristics related to a document. The function of ProgramInvoker103 is not limited to these. When the user wants to launch an application that is intended to be executed in the execution environment, the ProgramInvoker 103 finds the application, launches it and executes the application. For example, if a user wants to edit a document that is already loaded on the system (which is an application in the execution environment), ProgramInvoker 103 needs to find the document first and then load and edit the document. Perform the function.

  Several configurations such as a plug-in subsystem 104, a command subsystem 105, and a resource module 109 are attached to the ProgramInvoker 103. These configurations will be described in detail below.

1. a. Plug-in Subsystem The plug-in subsystem 104 is used as a highly flexible and efficient configuration for adding functionality to a document processing / management system. The plug-in subsystem 104 can also be used to modify or delete functions that exist in the document processing / management system. In addition, a wide variety of functions can be added or modified using the plug-in subsystem. For example, it may be desired to add an Editlet function that works to support the drawing of a document on the screen described above and described in detail later. The Editlet plug-in also supports editing vocabularies that are added to the system.

  The plug-in subsystem 104 includes a Service Broker (service broker: service mediation unit) 1041. The Service Broker 1041 mediates services added to the document processing / management system by managing plug-ins added to the document processing / management system.

  Individual functions that achieve the desired functionality are added to the system in the form of a Service 1042. Available Service 1042 types are: Application service, ZoneFactory (zone factory: zone generation unit) Service, Editlet (editlet: editing unit) Service, CommandFactory (command factory: command generation unit) Service, ConnectXPath (Connect XPath) : XPath management unit) Service, CSS Computation (CSS computation: CSS calculation unit) Service, etc., but are not limited thereto. These Services and other configurations of the system and their relationship are detailed below for a better understanding of the document processing / management system.

  The relationship between the plug-in and Service is as follows. A plug-in is a unit that can include one or more ServiceProviders (service providers: service providing units). Each ServiceProvider has one or more classes of Service associated with it. For example, by using a single plug-in with the appropriate software application, one or more services can be added to the system, thereby adding corresponding functionality to the system. Even an existing service such as an Editlet service, the ability to process a single or multiple vocabularies may be provided by each plug-in.

1. b. Command Subsystem The command subsystem 105 is used to execute instructions in the form of commands related to document processing. A user can execute an operation on a document by executing a series of instructions. For example, a user edits an XML DOM tree corresponding to an XML document in the document processing / management system by issuing an instruction in the form of a command, and processes the XML document. These commands may be entered using keystrokes, mouse clicks, or other valid user interface actions. One or more instructions may be executed by one command. In this case, these instructions are wrapped (contained) into one command and executed successively. For example, assume that the user wants to replace an incorrect word with a correct word. In this case, the first instruction is to find the wrong word in the document, the second instruction is to delete the wrong word, and the third instruction is to insert the correct word Will. These three instructions may be wrapped in one command.

  In some examples, the command may have an associated function, for example, an “Undo” function that will be described in detail later. These functions may also be assigned to some base classes that are used to create objects.

  A key configuration of the command subsystem 105 is a CommandInvoker (command invoker: command activation unit) 1051 that selectively operates to indicate and execute a command. Although only one CommandInvoker is shown in FIG. 11B, one or more CommandInvokers may be used and one or more commands may be executed simultaneously. The CommandInvoker 1051 holds functions and classes necessary for executing a command. In operation, a Command 1052 to be executed is loaded into a Queue 1053. CommandInvoker creates a command thread that runs continuously. If there is no Command already executed in CommandInvoker, Command1052 intended to be executed by CommandInvoker1051 is executed. If CommandInvoker is already executing a command, the new Command is stacked at the end of Queue 1053. However, each CommandInvoker 1051 executes only one Command at a time. If execution of the specified Command fails, the CommandInvoker 1051 executes exception processing.

  Command types executed by the CommandInvoker 1051 include, but are not limited to, an UndoableCommand (cancelable command) 1054, an AsyncronousCommand (asynchronous command) 1055, and a VCCommand (VC command) 1056. The UndoableCommand 1054 is a command that can cancel the result of the command if the user desires it. Examples of UndoableCommands include cut, copy, and insert text. In operation, when a user selects a part of a document and applies a cut command to that part, use the UndoableCommand to make the cut part "not cut" if necessary. Can do.

  The VCCommand 1056 is stored in a vocabulary connection descriptor (VCD) script file. These are user-specified commands that can be defined by the programmer. The Command may be, for example, a more abstract command combination for adding an XML fragment, deleting an XML fragment, or setting an attribute. These commands are specifically focused on document editing.

  AsyncronousCommand 1055 is a command from the system, such as loading and saving of a document, and is executed asynchronously separately from UndoableCommand and VCCommand. AsyncronousCommand is not an UndoableCommand and cannot be undone.

1. c. resource
Resource 109 is an object that provides several functions to various classes. For example, string resources, icons, and default key bindings are examples of resources used in the system.

2. Application Component The application component 102 which is the second main feature of the document processing / management system is executed in the execution environment 101. Application component 102 includes the actual document and various logical and physical representations of the document in the system. In addition, the application component 102 includes the configuration of the system used to manage documents. The application component 102 further includes a UserApplication (user application) 106, an application core 108, a user interface 107, and a CoreComponent (core component) 110.

2. a. User application
The UserApplication 106 is loaded on the system together with the ProgramInvoker 103. The UserApplication 106 is an adhesive that connects a document, various expressions of the document, and a user interface necessary for interacting with the document. For example, suppose a user wants to generate a set of documents that are part of a project. When these documents are loaded, an appropriate representation of the document is generated. The user interface function is added as part of the UserApplication 106. In other words, UserApplication 106 holds both a representation of the document that allows the user to interact with the document that forms part of the project, and various aspects of the document. Once the UserApplication 106 is created, the user can easily load the UserApplication 106 on the execution environment whenever the user wants to interact with a document that forms part of the project.

2. b. Core component
The CoreComponent 110 provides a method for sharing a document among a plurality of panes (panes). As detailed later, Pane displays the DOM tree and handles the physical layout of the screen. For example, a physical screen consists of a plurality of panes in the screen that depict individual pieces of information. Documents that are visible to the user from the screen can appear in one or more panes. Also, two different documents may appear on two different panes on the screen.

  As shown in FIG. 11C, the physical layout of the screen is also in the form of a tree. When the component 1083 exists on the screen as a Pane, the Pane can be realized as a RootPane (Root Pane) 1084 or can be a SubPane (Sub Pane) 1085. The RootPane 1084 is a Pane corresponding to the root of the Pane tree, and the SubPane 1085 is an arbitrary Pane other than the RootPane 1084.

  CoreComponent 110 further provides fonts and serves as a source for multiple functional operations for documents, such as toolkits. An example of a task executed by the CoreComponent 110 is moving the mouse cursor between a plurality of panes. Another example of a task to be performed is to mark a part of a document in one Pane and copy it onto another Pane that contains a different document.

2. c. Application Core As described above, the application component 102 is composed of documents that are processed and managed by the system. This includes various logical and physical representations of documents within the system. The application core 108 is a configuration of the application component 102. Its functionality is to keep the actual document along with all the data it contains. The application core 108 includes DocumentManager (document manager: document management unit) 1081 and Document (document: document) 1082 itself.

  Various aspects of DocumentManager 1081 are described in detail below. The DocumentManager 1081 manages the Document 1082. The DocumentManager 1081 is also connected to a RootPane 1084, a SubPane 1085, a ClipBoard (clipboard) utility 1086, and a SnapShot (snapshot) utility 1087. The ClipBoard utility 1086 provides a way to keep the portion of the document that the user has decided to add to the clipboard. For example, a user may want to cut a portion of a document and save it in a new document for later review. In such a case, the clipped portion is added to the ClipBoard 1086.

  The SnapShot utility 1087 will be described next. The SnapShot utility 1087 can store the current state of the application when the application shifts from one state to another state.

2. d. User Interface Another configuration of the application component 102 is a user interface 107 that provides a means for a user to physically interact with the system. For example, the user interface is used by a user to upload, delete, edit, and manage documents. The user interface includes a frame 1071, a menu bar 1072, a status bar 1073, and a URL bar 1074.

  A Frame is considered to be an active area of a physical screen, as is generally known. MenuBar 1072 is a screen area including a menu indicating selection for the user. The StatusBar 1073 is a screen area that displays the execution state of the application. URLBar 1074 provides an area for entering a URL address for navigating the Internet.

3. Document Management and Related Data Structure FIG. 12 shows details of the DocumentManager 1081. This includes the data structure and organization used to represent the document within the document processing / management system. For clarity, the configuration described in this subsection is described using the MVC paradigm.

  The DocumentManager 1081 includes a DocumentContainer (document container: document container) 203 that holds and hosts all documents in the document processing / management system. A tool kit 201 attached to the DocumentManager 1081 provides various tools used by the DocumentManager 1081. For example, the DomService (DOM service) is a tool provided by the tool kit 201 to provide all functions necessary for generating, maintaining, and managing a DOM corresponding to a document. IOManager (input / output management unit), which is another tool provided by the tool kit 201, manages input to the system and output from the system. Similarly, a StreamHandler (stream handler) is a tool that handles document upload using a bitstream. These tools are not specifically shown in the figure and are not assigned a reference number, but form a component of the tool kit 201.

  According to the MVC paradigm representation, the model (M) includes a DOM tree model 202 of the document. As described above, all documents are represented as DOM trees in the document processing / management system. The document also forms part of the DocumentContainer 203.

3. a. DOM Model and Zone A DOM tree representing a document is a tree having a node 2021. A Zone (zone) 209, which is a subset of the DOM tree, includes a related area of one or more nodes in the DOM tree. For example, only a part of the document can be displayed on the screen, but this part of the visualized document is displayed using the Zone 209. The Zone is generated, handled, and processed using a plug-in called ZoneFactory (zone factory: zone generation unit) 205. Zone represents a part of DOM, but one or more “name spaces” may be used. As is well known, a namespace is a collection of names that are unique within a namespace. In other words, the same name does not exist in the namespace.

3. b. Relationship between Facet, Facet and Zone
Facet 2022 is another configuration within the model (M) portion of the MVC paradigm. Facet is used to edit Nodes in Zone. Facet 2022 organizes access to the DOM using procedures that can be performed without affecting the contents of the Zone itself. As described below, these procedures perform important and useful operations related to Node.

  Each Node 2021 has a corresponding Facet 2022. Instead of directly manipulating the nodes in the DOM, the integrity of the DOM is protected by using Facet to perform the operations. Otherwise, if the operation is performed directly on Node, several plug-ins can change the DOM at the same time, resulting in inconsistencies.

  The DOM standard established by the W3C defines a standard interface for operating Nodes, but in reality there are operations specific to each vocabulary or Node, so these operations are prepared as APIs. It is convenient to keep it. In the document processing / management system, an API specific to each node is prepared as a facet and attached to each node. This makes it possible to add a useful API while complying with the DOM standard. Also, instead of implementing a specific DOM for each vocabulary, by adding a specific API to the standard DOM implementation later, various vocabularies can be processed uniformly. A document in which a plurality of vocabularies are mixed in an arbitrary combination can be appropriately processed.

  As already defined, a vocabulary is a set of tags (for example, XML tags) belonging to a namespace. As described above, the namespace has a set of unique names (here, tags). A vocabulary appears as a subtree of a DOM tree that represents an XML document. This subtree contains Zone. In a particular example, tag set boundaries are defined by Zone. The Zone 209 is generated using a service called ZoneFactory 205. As described above, Zone 209 is an internal representation of a part of a DOM tree that represents a document. In order to provide access to a portion of such a document, a logical representation is required. This logical representation informs the computer how the document is logically represented on the screen. As already defined, the “canvas”, for example, Canvas 210, is a Service that acts to provide a logical layout corresponding to Zone.

  On the other hand, the “pane”, for example, Pane 211 is a physical screen layout corresponding to the logical layout provided by the Canvas 210. In fact, the user sees only the rendering of the document with characters and images on the display screen. Therefore, the document must be drawn on the screen by the process of drawing characters and images on the screen. Based on the physical layout provided by Pane 211, the document is rendered on the screen by Canvas 210.

  The Canvas 210 corresponding to the Zone 209 is generated using the Editlet 206. The DOM of the document is edited using Editlet 206 and Canvas 210. In order to maintain the integrity of the original document, Editlet 206 and Canvas 210 use Facet 2022 corresponding to one or more Nodes in Zone 209. These services do not directly operate Zone and Node in DOM. Facet is operated using Command 207 from the “C” component of the MVC paradigm, that is, the controller.

  A user generally interacts with the screen by moving a cursor on the screen or typing a command. The Canvas 2010 that provides a logical layout on the screen accepts this cursor operation. Canvas 2010 can cause Facet to execute the corresponding action. With this relationship, the cursor subsystem 204 functions as a controller (C) of the MVC paradigm with respect to the DocumentManager 1081.

  The Canvas 210 also has a task for handling events. For example, Canvas 210 handles events such as mouse clicks, focus moves, and similar actions triggered by the user.

3. c. Overview of the relationship between Zone, Facet, Canvas and Pane Documents in a document processing / management system can be viewed from at least four perspectives. That is, 1) a data structure used to hold the document content and structure in the document processing / management system, 2) means for editing the document content without affecting the document integrity, and 3) the document screen. 4) physical layout on the screen of the document. Zone, Facet, Canvas, and Pane respectively represent components of the document processing / management system corresponding to the above-described four viewpoints.

3. d. Undo Subsystem As noted above, it is desirable to be able to undo any changes (eg, edits) to a document. For example, assume that the user performs an editing operation and then decides to cancel the change. With reference to FIG. 12, the undo subsystem 212 implements a revocable component of the document manager. The UndoManager (Undo Manager: Undo Manager) 2121 holds operations for all documents that may be canceled by the user.

  For example, assume that a user executes a command that replaces a word in a document with another word. After that, the user thinks again and decides to return to the original word. The undo subsystem 212 uses the UndoableEdit 2122 to support such operations. The UndoManager 2121 holds the operation of such an UndoableEdit (Undoable Edit) 2122. The operation may include not only a single XML operation type, but also continuous changes of documents in various languages such as XHTML, SVG, and MathML, and the change in each language may be reversible. A first-in, last-out operation undoes the last change first and the second-to-last change next, regardless of the vocabulary used. As described above, even when two or more editing units are edited, the integrated undo is executed in the correct order, and a natural and logical operation feeling can be given.

3. e. Cursor Subsystem As described above, the controller portion of the MVC may include a cursor subsystem 204. The cursor subsystem 204 receives input from the user. These inputs generally have the character of commands and / or editing operations. Thus, the cursor subsystem 204 can be thought of as the controller (C) portion of the MVC paradigm associated with DocumentManager 1081.

3. f. View As described above, the Canvas 210 represents a logical layout of a document to be presented on the screen. In the example of an XHTML document, Canvas 210 may include a box tree 208 that logically represents how the document looks on the screen. This box tree 208 will be included in the view (V) portion of the MVC paradigm associated with the document manager 1081.

4). Vocabulary Connection An important feature of document processing / management systems is that XML documents can be expressed and displayed in two different ways (eg, two markup languages), and the two different representations are automatically consistent. Is to be maintained.

  A document described in a markup language, such as an XML document, is created based on a vocabulary defined by a document type definition. A vocabulary is a set of tags. Since a vocabulary may be arbitrarily defined, there can be an unlimited number of vocabularies. However, providing a dedicated processing / management environment for each of the many possible vocabularies is not practical. Vocabulary connection provides a way to solve this problem.

  For example, the document may be described in two or more markup languages. The document may be described in, for example, XHTML (eXtensible HyperText Markup Language), SVG (Scalable Vector Graphics), MathML (Mathematical Markup Language), or other markup languages. In other words, the markup language may be regarded in the same way as a vocabulary or tag set in XML.

  The vocabulary is processed using a vocabulary plug-in. A document described by a vocabulary in which a plug-in cannot be used in the document processing / management system is displayed by mapping to a document of another vocabulary in which the plug-in can be used. With this feature, it is possible to appropriately display a vocabulary document for which no plug-in is prepared.

  A vocabulary connection includes the ability to obtain definition files, map between definition files, and generate definition files. A document described in one vocabulary can be mapped to another vocabulary. In this way, the vocabulary connection enables a document to be displayed and edited by a display / edit plug-in corresponding to the vocabulary to which the document is mapped.

  As described above, each document is generally described in the document processing / management system as a DOM tree having a plurality of nodes. The “definition file” describes the correspondence between each node and other nodes. It is specified whether the element value and attribute value of each node can be edited. An arithmetic expression using the element value or attribute value of the node may be described.

  A destination DOM tree to which the definition file is applied is generated using the feature of mapping. In this way, the relationship between the source DOM tree and the destination DOM tree is constructed and maintained. The vocabulary connection monitors the correspondence between the source DOM tree and the destination DOM tree. When receiving an editing instruction from the user, the vocabulary connection changes the associated node of the source DOM tree. A “mutation event” is issued indicating that the source DOM tree has changed, and the destination DOM tree is changed accordingly.

  By using a vocabulary connection, a relatively minor vocabulary known only to a few users can be converted into another major vocabulary. Therefore, even a minor vocabulary used by a small number of users can appropriately display a document and provide a desirable editing environment.

  As described above, the vocabulary connection subsystem that is a part of the document processing / management system provides a function that enables a plurality of expressions of a document.

  FIG. 13 shows a vocabulary connection (VC) subsystem 300. The VC subsystem 300 provides a way to maintain the consistency of two alternative representations of the same document. In the figure, the same configurations as those already shown and identified are provided and connected to each other to achieve that purpose. For example, the two representations may be representations of the same document in two different vocabularies. As described above, one may be a source DOM tree and the other may be a destination DOM tree.

4). a. Vocabulary Connection Subsystem The functions of the vocabulary connection subsystem 300 are realized in a document processing / management system using a plug-in called VocabularyConnection301. For each Vocabulary 305 in which a document is represented, a corresponding plug-in is required. For example, when a part of a document is described in HTML and the rest is described in SVG, a vocabulary plug-in corresponding to HTML and SVG is required.

  The VocabularyConnection plug-in 301 generates an appropriate VCCanvas (vocabulary connection canvas) 310 for the Zone 209 or the Pane 211 corresponding to an appropriate Vocabulary 305 document. Using VocabularyConnection 301, changes to Zone 209 in the source DOM tree are communicated to the corresponding Zone in another DOM tree 306 by the conversion rule. The conversion rule is described in the form of a vocabulary connection descriptor (VCD). A corresponding VCManager (vocabulary connection manager) 302 is generated for each VCD file corresponding to the conversion between the source DOM and the destination DOM.

4). b. Connector
The connector 304 connects the source node of the source DOM tree and the destination node of the destination DOM tree. Connector 304 acts to see the modifications (changes) to the source node in the source DOM tree and the source document corresponding to the source node. Then, the node of the corresponding destination DOM tree is corrected. Connector 304 is the only object that can modify the destination DOM tree. For example, the user can make modifications only to the source document and the corresponding source DOM tree. Thereafter, the Connector 304 makes corresponding corrections to the destination DOM tree.

  Connector 304 is logically linked to form a tree structure as shown in FIG. The tree formed by the connector 304 is called ConnectorTree (connector tree). The Connector 304 is generated by using a service called ConnectorFactory (connector factory: connector generation unit) 303. The ConnectorFactory 303 generates a Connector304 from the source document and links them to form a ConnectorTree. The VocabularyConnectionManager 302 holds a ConnectorFactory 303.

  As mentioned above, a vocabulary is a set of tags in a namespace. As shown in FIG. 13, Vocabulary 305 is generated for a document by VocabularyConnection 301. This is done by parsing the document file and generating an appropriate VocabularyConnectionManager 302 for mapping between the source DOM and the destination DOM. Furthermore, an appropriate relationship is created between the ConnectorFactory 303 that generates the Connector, the ZoneFactory 205 that generates the Zone 209, and the Editlet 206 that generates the Canvas corresponding to the node in the Zone. When a user disposes or deletes a document from the system, the corresponding VocabularyConnectionManager 302 is deleted.

  The Vocabulary 305 generates a VCCanvas 310. Further, the Connector 304 and the destination DOM tree 306 are generated correspondingly.

  Source DOM and Canvas correspond to model (M) and view (V), respectively. However, such an expression is meaningful only when the target vocabulary can be drawn on the screen. The rendering is performed by a vocabulary plug-in. Vocabulary plug-ins are provided for major vocabularies, eg, XHTML, SVG, MathML. A vocabulary plug-in is used for the target vocabulary. These provide a way to map between vocabularies using vocabulary connection descriptors.

  Such mapping is only meaningful if the target vocabulary is mappable and the method depicted on the screen is predefined. Such a rendering method is a standard defined by an organization such as W3C, such as XHTML.

  VCCanvas is used when a vocabulary connection is required. In this case, since the source view cannot be directly generated, the source Canvas is not generated. In this case, VCCanvas is generated using ConnectorTree. This VCCanvas only handles event conversion and does not assist in rendering the document on the screen.

4). c. DestinationZone, Pane, and Canvas
As described above, the purpose of the vocabulary connection subsystem is to simultaneously generate and maintain two representations of the same document. The second representation is also in the form of a DOM tree, which has already been described as a destination DOM tree. To see the document in the second representation, DestinationZone, Canvas and Pane are needed.

  When VCCanvas is created, a corresponding DestinationPane 307 is generated as shown in FIG. Further, a related DestinationCanvas 308 and a corresponding BoxTree 309 are generated. Similarly, VCCanvas 310 is also associated with Pane 211 and Zone 209 for the source document.

  DestinationCanvas 308 provides a logical layout of the document in the second representation. In particular, DestinationCanvas 308 provides user interface functions such as cursors and selections to depict a document in the destination representation. Events that occur in the DestinationCanvas 308 are supplied to the Connector. The DestinationCanvas 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) representation of the document.

4). d. Vocabulary Connection Command Subsystem There is a vocabulary connection (VC) command subsystem 313 as an element of the vocabulary connection (VC) subsystem 300 shown in FIG. The vocabulary connection command subsystem 313 generates a VCCommand (vocabulary connection command) 315 that is used to execute an instruction related to the vocabulary connection subsystem 300. The VCCommand can be generated by using the built-in CommandTemplate 3131 and / or by generating a command from scratch using the script language in the script subsystem 314.

  Command templates include, for example, an “If” command template, a “When” command template, an “Insert” command template, and the like. These templates are used to create VCCommands.

4). e. Xpath Subsystem The Xpath subsystem 316 is an important component of the document processing / management system and supports the implementation of vocabulary connection. The Connector 304 generally includes xpath information. As described above, one of the tasks of vocabulary connection is to reflect a change in the source DOM tree in the destination DOM tree. The xpath information includes one or more xpath expressions that are used to determine a subset of the source DOM tree to be monitored for changes / modifications.

4). f. Overview of Source DOM Tree, Destination DOM Tree, and ConnectorTree The source DOM tree is a DOM tree or Zone that represents a document in a vocabulary before being converted to another vocabulary. A node in the source DOM tree is called a source node.

  On the other hand, the destination DOM tree is a DOM tree or Zone that represents the same document with different vocabularies after being converted by mapping, as described above in connection with the vocabulary connection. A node in the destination DOM tree is called a destination node.

  ConnectorTree is a hierarchical expression based on a Connector that represents a correspondence between a source node and a destination node. The Connector monitors the source node and modifications made to the source document and modifies the destination DOM tree. The Connector is the only object that is allowed to modify the destination DOM tree.

5). Event flow in document processing / management systems For practical purposes, the program must respond to commands from the user. An event is a method for describing and executing a user action executed on a program. Many high-level languages, such as Java, rely on events that describe user actions. Traditionally, programs have had to actively gather information in order to understand user actions and execute them themselves. This means, for example, that after the program initializes itself, it enters a loop that repeatedly checks the user's actions to take appropriate action when the user takes action on the screen, keyboard, mouse, etc. To do. However, this process is cumbersome. In addition, it requires a program that consumes CPU cycles and loops while waiting for the user to do something.

  Many languages solve these problems by adopting different paradigms. One of them is event-driven programming, which is the basis of all modern window systems. In this paradigm, all user actions belong to a set of abstract events called “events”. Events describe specific user actions in sufficient detail. Rather than actively collecting events generated by the user, the system notifies the program when events to be monitored occur. Programs that handle user interaction in this way are said to be "event driven".

  This is often handled using an “Event” class that captures the basic characteristics of all events generated by the user.

  The document processing / management system defines and uses its own events and how to handle these events. Several types of events are used. For example, a mouse event is an event that occurs from a user's mouse action. User actions including the mouse are passed to the mouse event by the Canvas 210. Thus, Canvas is at the forefront of interaction by system users. If necessary, the frontmost Canvas passes the content related to the event to the child.

  In contrast, a keystroke event flows from Canvas 210. Keystroke events have an immediate focus. That is, it relates to work at any moment. The keystroke event input on the Canvas 210 is passed to its parent. Keystrokes are handled by different events that can handle string insertion. The event that handles the insertion of a character string occurs when a character is inserted using the keyboard. Other “events” include, for example, other events handled in the same manner as drag events, drop events, and mouse events.

5). a. Handling events outside the vocabulary connection Events are passed using the event thread. When Canvas 210 receives an event, it changes its state. If necessary, Command 1052 is posted to CommandQueue 1053 by Canvas 210.

5). b. Handling events in vocabulary connections
Using the VocabularyConnection plug-in 301, the DestinationCanvas 1106 receives events that occur, such as mouse events, keyboard events, drag and drop events, and vocabulary specific events. These events are notified to the connector 1104. More specifically, as illustrated in FIG. 21, the event flow in the VocabularyConnection plug-in 301 passes through the SourcePane 1103, VCCanvas 1104, DestinationPane 1105, DestinationCanvas 1106, destination DOM tree, and ConnectorTree.

6). Relationship between ProgramInvoker and ProgramInvoker and other components
The relationship between the ProgramInvoker 103 and other configurations is shown in more detail in FIG. The ProgramInvoker 103 is a basic program in the execution environment that is executed to start the document processing / management system. As illustrated in FIG. 14B, the UserApplication 106, ServiceBroker 1041, CommandInvoker 1051, and Resource 109 are all connected to the ProgramInvoker 103. As described above, the application 102 is a component that is executed in the execution environment. Similarly, the Service Broker 1041 manages plug-ins that add various functions to the system. On the other hand, CommandInvoker 1051 executes instructions provided by the user and holds classes and functions used to execute commands.

6). a. Plug-ins and services
The ServiceBroker 1041 will be described in more detail with reference to FIG. As described above, the CommandInvoker 1041 manages plug-ins (and related services) that add various functions to the system. The Service 1042 is the lowest layer that can add or change features to the document processing / management system. “Service” consists of two parts, ServiceCategory 401 and ServiceProvider 402. As illustrated in FIG. 14C, one ServiceCategory 401 can have a plurality of related ServiceProviders 402. Each ServiceProvider acts to execute part or all of a specific ServiceCategory. On the other hand, ServiceCategory 401 defines the type of Service.

  Service is 1) “spot color service” that provides a specific color to the document processing / management system, 2) “application service” that is an application executed by the document processing / management system, and 3) the entire document processing / management system. It can be classified into three types: “environmental services” that provide the necessary traits.

  An example of Service is shown in FIG. The Application Service Category is an example of a ServiceProvider supported by a system utility. Similarly, Editlet 206 is a Category, and HTMLEditlet and SVGEditlet are corresponding ServiceProviders. The ZoneFactory 205 is another Category of Service, and has a corresponding ServiceProvider (not shown).

  The plug-in has already been described as adding functionality to the document processing / management system, but is considered to be a unit consisting of several ServiceProviders 402 and their associated classes, as shown in FIGS. May be. Each plug-in will have the dependencies and ServiceCategory 401 described in the declaration file.

6). b. Relationship between Program Invoker and Application FIG. 14E shows further details regarding the relationship between ProgramInvoker 103 and UserApplication 106. Necessary documents and data are loaded from the storage. All necessary plug-ins are loaded on the Service Broker 1041. The Service Broker 1041 holds and manages all plug-ins. Plug-ins can be physically added to the system and their functionality can be loaded from storage. When the content of the plug-in is loaded, the Service Broker 1041 defines the corresponding plug-in. Subsequently, the corresponding UserApplication 106 is generated, loaded into the execution environment 101, and attached to the ProgramInvoker 103.

7). Relationship between Application Service and Environment FIG. 15A shows further details about the configuration of the application service loaded on the ProgramInvoker 103. A CommandInvoker 1051 that is a component of the command subsystem 105 activates or executes the Command 1052 in the ProgramInvoker 103. Command 1052 is a command used to process a document such as XML and edit a corresponding XML LDOM tree in the document processing / management system. The CommandInvoker 1051 holds classes and functions necessary for executing the Command 1052.

  ServiceBroker1041 is also executed in ProgramInvoker103. The UserApplication 106 is connected to the user interface 107 and the CoreComponent 110. CoreComponent 110 provides a method for sharing documents among all panes. CoreComponent 110 also provides fonts and serves as a toolkit for Pane.

  15A and 15B show the relationship among Frame 1071, MenuBar 1072, and StatusBar 1073.

8). Application Core FIG. 16 (a) provides further explanation of the application core 108 that holds all documents and parts of documents and data belonging to the documents. The CoreComponent 110 is attached to the DocumentManager 1081 that manages the document 1082. DocumentManager 1081 is the owner of all documents 1082 stored in memory associated with the document processing / management system.

  DocumentManager 1081 is also connected to RootPane 1084 to facilitate the display of the document on the screen. The functions of ClipBoard 1085, SnapShot 1087, Drag & Drop 601 and Overlay 602 are also attached to CoreComponent 110.

  The SnapShot 1087 is used to restore the application state as shown in FIG. When the user activates SnapShot 1087, the current state of the application is detected and stored. Thereafter, when the state of the application changes to another state, the contents of the stored state are saved. The SnapShot 1087 is illustrated in FIG. In operation, when an application moves from one URL to another, the SnapShot 1087 stores the previous state in order to be able to seamlessly execute a backward operation and a forward operation.

9. Document Configuration in DocumentManager FIG. 17A shows further explanation of DocumentManager1081 and how a document is configured and held in DocumentManager. As shown in FIG. 17B, the DocumentManager 1081 manages the document 1082. In the example shown in FIG. 17A, one of the plurality of documents is a RootDocument (root document) 701, and the remaining document is a SubDocument (subdocument) 702. The DocumentManager 1081 is connected to the RootDocument 701, and the RootDocument 701 is connected to all the SubDocuments 702.

  As shown in FIGS. 12 and 17A, the DocumentManager 1081 is coupled to a DocumentContainer 203 that is an object that manages all the documents 1082. Tools that form part of a tool kit 201 (eg, XML tool kit) including the DOMService 703 and the IOManager 704 are also supplied to the DocumentManager 1081. Referring to FIG. 17A again, the DOM Service 703 generates a DOM tree based on a document managed by the DocumentManager 1081. Each Document 705 is managed by the corresponding DocumentContainer 203 regardless of whether it is a RootDocument 701 or a SubDocument 702.

  FIG. 17B shows a state in which the documents AE are arranged hierarchically. Document A is a RootDocument. Document BD is a SubDocument of document A. Document E is a SubDocument of Document D. FIG. 17B also shows an example in which the same document hierarchy is displayed on the screen. Document A, which is a RootDocument, is displayed as a basic frame. Document BD, which is a SubDocument of document A, is displayed as a subframe in basic frame A. Document E, which is a SubDocument of document D, is displayed on the screen as a subframe of subframe D.

  Referring to FIG. 17A again, an UndoManager (undo manager: undo manager) 706 and an UndoWrapper (undo wrapper) 707 are generated for each DocumentContainer 203. UndoManager 706 and UndoWrapper 707 are used to execute a cancelable command. By using this feature, changes made to the document using the editing operation can be undone. SubDocument changes have implications for RootDocument as well. The undo operation takes into account changes that affect other documents in the hierarchy, and for example, consistency is maintained between all documents in a chained hierarchy as shown in FIG. 17 (b). Guarantee.

  The UndoWrapper 707 wraps the undo objects related to the SubDocument in the DocumentContainer 203 and combines them with the undo object related to the RootDocument. The UndoWrapper 707 executes collection of undo objects that can be used by the UndoableEditAcceptor (Undoable Edit Acceptor: Undoable Edit Accepting Unit) 709.

  UndoManager 706 and UndoWrapper 707 are connected to UndoableEditAcceptor 708 and UndoableEditSource (Undoable Edit Source) 708. As will be appreciated by those skilled in the art, Document 705 may be UndoableEditSource 708 or the source of an editable edit object.

10. Undo Command and Undo Framework FIGS. 18 (a) and 18 (b) provide further details about the undo framework and undo commands. As shown in FIG. 18A, the UndoCommand 801, RedoCommand 802, and UndoableEditCommand 803 are commands that can be loaded on the CommandInvoker 1051 as shown in FIG. 11B, and are executed in order. UndoableEditCommand 803 is further attached to UndoableEditSource 708 and UndoableEditAcceptor 709. “Foo” EditCommand 803 and “bar” EditCommand 804 are examples of UndoableEditCommand.

  FIG. 18B shows execution of UndoableEditCommand. First, assume that the user edits Document 705 using an edit command. In the first step S 1, an UndoableEditAcceptor 709 is attached to the UndoableEditSource 708 that is a DOM tree of Document 705. In the second step S2, Document 705 is edited using the DOM API based on the command issued by the user. In a third step S3, the mutation event listener is notified that a change has been made. That is, in this step, a listener that monitors all changes in the DOM tree detects an editing operation. In the fourth step S4, UndoableEdit is stored as an object of UndoManager 706. In the fifth step S5, the UndoableEditAcceptor 709 is detached from the UndoableEditSource 708. The UndoableEditSource 708 may be the Document 705 itself.

11. Procedures for loading documents into the system The above subsections have described the various components and subcomponents of the system. The following describes the methodology for using these components. FIG. 19 shows an overview of how a document is loaded into the document processing / management system. Each step is detailed in connection with a particular example in FIGS.

  Briefly, a document processing / management system generates a DOM from a binary data stream consisting of data contained in a document. ApexNode (apex node: vertex node) is generated for a target of attention of a part of a document belonging to Zone. Subsequently, the corresponding Pane is identified. The identified Pane generates a Zone and a Canvas from the ApexNode and the physical screen surface. The Zone then creates Facets for each node and provides the information needed for them. Canvas generates a data structure for rendering a node from a DOM tree.

  More specifically, referring to FIG. 19A, in step 0, a compound document expressing the contents of both XHTML and SVG is loaded from the storage 901. A DOM tree 902 of the document is generated. The DOM tree has ApexNode 905 (XHTML), and as it descends to the other branch, it encounters the boundary indicated by the double line and follows the ApexNode 906 of SVG, which is a different vocabulary. Such a representation of a compound document is useful for understanding how the document is represented and ultimately rendered for display.

  Next, a corresponding DocumentContainer 903 that holds the document is generated. DocumentContainer 903 is attached to DocumentManager 904. The DOM tree includes a root node and optionally a plurality of secondary nodes.

  In general, such documents include both text and graphics. Thus, a DOM tree may have, for example, an SVG subtree as well as an XHTML subtree. The XHTML subtree has an XHTML ApexNode 905. Similarly, the SVG subtree has an ApexNode 906 of SVG.

  Referring to FIG. 19A again, in step 1, ApexNode is attached to Pane 907 which is a logical layout of the screen. In step 2, Pane 907 requests ApplicationCore 908 for a ZoneFactory for ApexNode. In step 3, ApplicationCore 908 returns a ZoneFactory and an Editlet that is a CanvasFactory for ApexNode 906.

  In step 4, Pane 907 generates Zone 909. Zone 909 is attached to Pane 907. In Step 5, Zone909 generates Facet for each node and attaches to the corresponding node. In step 6, Pane 907 generates Canvas 910. Canvas 910 is attached to Pane 907. The Canvas 910 includes various commands. In step 7, the canvas 910 builds a data structure for rendering the document on the screen. For XHTML, this includes a box tree structure.

  FIG. 19B shows an outline of the configuration of the Zone using the MVC paradigm. In this case, since Zone and Facet generated by ZoneFactory are inputs related to the document, the model (M) includes Zone and Facet. Since the data structure for rendering a document on the screen using Canvas and Editlet is an output that the user sees on the screen, the view (V) corresponds to the Canvas and the data structure. Since Command executes control operations on the document and its various relationships, the control (C) includes the Command included in the Canvas.

12 Document Representation An example of a compound document and various representations thereof will be described below with reference to FIG. The document used in this example includes both text and images. Text is represented using XHTML and images are represented using SVG. FIG. 20 shows in detail the MVC representation of the relationship between document components and corresponding objects. In this example, Document 1001 is attached to DocumentContainer 1002 that holds Document 1001. A document is represented by a DOM tree 1003. The DOM tree includes the ApexNode 1004 having the corresponding Facet described above with reference to FIG. 19A and other nodes of the descendants.

  ApexNode is represented by a black circle. Nodes that are not vertices are represented by white circles. A Facet used to edit a node is represented by a triangle and is attached to the corresponding node. Since the document has text and images, the DOM tree of this document includes an XHTML portion and an SVG portion. ApexNode 1004 is the top node of the XHTML subtree. This is attached to the XHTMLPane 1005, which is the top pane for physical representation of the XHTML portion of the document. ApexNode is also attached to XHTMLZone 1006 which is a part of the DOM tree of document 1001.

  Facet 1041 corresponding to Node 1004 is also attached to XHTMLZone 1006. XHTMLZone1006 is attached to XHTMLPane1005. XHTMLEditlet generates XHTMLCanvas1007 which is a logical expression of a document. XHTMLCanvas1007 is attached to XHTMLPane1005. The XHTMLCanvas 1007 generates a BoxTree 1009 for the XHTML element of the Document 1001. The box tree is represented by an appropriate combination of “html” box, “body” box, “head” box, and / or “table” box, as shown. Various commands 1008 necessary to hold and draw the XHTML portion of the document are also added to the XHTMLCanvas 1005.

  Similarly, ApexNode 1010 of the SVG subtree of the document is attached to SVGZone 1011 that is a part of the DOM tree of Document 1001 that represents the SVG element of the document. ApexNode 1010 is attached to SVGPane 1013 which is the uppermost Pane in the physical representation of the SVG portion of the document. An SVGCanvas 1012 representing a logical representation of the SVG portion of the document is generated by SVGEditlet and attached to SVGPane 1013. A data structure and command 1014 for rendering the SVG portion of the document on the screen is attached to the SVGCanvas. For example, the data structure may include circles, lines, rectangles, etc. as shown.

  A part of the expression of the example document described in relation to FIG. 20 will be further described using the above-described MVC paradigm in relation to FIGS. FIG. 21A shows a simplified MV relationship in the XHTML element of the document 1001. The model is XHTMLZone 1103 for the XHTML element of Document1001. The XHTMLZone tree contains several Nodes and their corresponding Facets. The corresponding XHTMLZone and Pane are part of the model (M) part of the MVC paradigm. The view (V) portion of the MVC paradigm is the corresponding XHTML Canvas 1102 and BoxTree of the XHTML component of Document 1001. The XHTML portion of the document is rendered on the screen using Canvas and the command contained in it. Events such as keyboard and mouse input proceed in the reverse direction as shown.

  SourcePane has a further function, namely the role as a holder of DOM. FIG. 21B provides a vocabulary connection for the element of Document 1001 shown in FIG. A SourcePane 1103 that functions as a DOM holder includes a source DOM tree of a document. The ConnectorTree 1104 is generated by the ConnectorFactory and generates a DestinationPane 1105 that also functions as a destination DOM holder. The DestinationPane 1105 is laid out as an XHTMLDestinationCanvas 1106 in the form of a box tree.

13. Relationship between Plug-in Subsystem, Vocabulary Connection, and Connector FIGS. 22 (a)-(c) show further details related to the plug-in subsystem, vocabulary connection, and Connector, respectively. The plug-in subsystem is used to add or exchange functionality to the document processing / management system. The plug-in subsystem includes a Service Broker 1041. As shown in FIG. 22A, the VCD file of “My own XML vocabulary” is combined with the VC plug-in. This plug-in includes “MyOwnXML” ConnectorFactoryTree and Vocabulary (ZoneFactory, Editlet). A ZoneFactoryService 1201 attached to the ServiceBroker 1041 generates a Zone of a document part. EditletService 1202 is also attached to ServiceBroker. EditletService 1202 generates a Canvas corresponding to the Node in the Zone.

  Examples of ZoneFactory are XHTMLZoneFactory 1211 and SVGZoneFactory 1212 that generate XHTMLZone and SVGZone, respectively. As described above in connection with the example document, the text element of the document may be expressed by generating XHTMLZone, and the image may be expressed using SVGZone. Examples of EditletService include XHTMLEditlet 1221 and SVGEditlet 1222.

  FIG. 22 (b) shows further details related to the vocabulary connection. As described above, vocabulary connection is an important feature of a document processing / management system, and enables consistent representation and display of documents in two different ways. The VCManager 302 that holds the ConnectorFactory 303 is a part of the vocabulary connection subsystem and is coupled to the VCD to receive the vocabulary connection descriptor and generates a VCCommand 301. As shown in FIG. 22C, the ConnectorFactory 303 generates a connector 304 for the document. As described above, the Connector monitors the nodes in the source DOM and modifies the nodes in the destination DOM in order to maintain consistency between the two representations.

  Template represents the conversion rules of several nodes. A vocabulary connection descriptor (VCD) file is a list of Templates that represent a number of rules that transform an element or set of elements that satisfy a particular path or rule into another element. The VocabularyTemplate 305 and CommandTemplate 3131 are all attached to the VCManager 302. VCManager is an object that manages all sections in a VCD file. One VCManager object is generated for one VCD file.

  FIG. 22 (c) provides further details related to the Connector. The ConnectorFactory 303 generates a Connector from the source document. ConnectorFactory303 is attached to Vocabulary, Template, and ElementTemplate, and generates VocabularyConnector, TemplateConnector, and ElementConnector, respectively.

  The VCManager 302 holds a ConnectorFactory 303. To generate a Vocabulary, the corresponding VCD file is read. Thus, ConnectorFactory 303 is generated. The ConnectorFactory 303 is related to a ZoneFactory 205 that generates a Zone and an EditletService 206 that generates a Canvas.

  Next, EditletService of the target vocabulary generates VCCanvas. VCCanvas creates a node of the destination DOM tree. VCCanvas also creates an ApexNode Connector in the source DOM tree or Zone. Child connectors are recursively created as needed. ConnectorTree is generated by a set of templates in the VCD file.

  A template is a set of rules for converting a markup language element into another element. For example, each template is matched to a source DOM tree or Zone. If it matches properly, a vertex connector is created. For example, the template “A / * / D” matches all branches that start at node A and end at node D, regardless of what nodes are in between. Similarly, “// B” matches all “B” nodes from the root.

14 Example of VCD file related to ConnectorTree An example that explains processing related to a specific document will be continued. A document titled “MySampleXML” is loaded into the document processing / management system. FIG. 23 shows an example of a VCD script using VCManager and ConnectorFactoryTree for the “MySampleXML” file. The vocabulary section and template section in the script file and the corresponding components in VCManager are shown. In the tag “vcd: vocabulary”, the attribute “match” is “sample: root”, “label” is “MySampleXML”, and “call-template” is “sample template”.

  In this example, Vocabulary includes a vertex element as “sample: root” in the VCManager of “MySampleXML”. The corresponding UI label is “MySampleXML”. In the template section, the tag is “vcd: template” and the name is “sample: template”.

15. Detailed Example of How Files are Loaded into the System FIGS. 24-28 show a detailed description of loading the document “MySampleXML”. In step 1 shown in FIG. 24A, a document is loaded from the storage 1405. The DOMService generates a DocumentContainer 1401 corresponding to the DOM tree and DocumentManager 1406. DocumentContainer is attached to DocumentManager 1406. The document includes XHTML and MySampleXML subtrees. The XHTML ApexNode 1403 is the top node of the XHTML to which the tag “xhtml: html” is attached. ApexNode 1404 of “MySampleXML” is the top node of “MySampleXML” with the tag “sample: root” attached.

  In Step 2 shown in FIG. 24B, the RootPane generates XHTMLZone, Facet, and Canvas of the document. Pane1407, XHTMLZone1408, XHTMLCanvas1409, and BoxTree1410 are produced | generated corresponding to the other node with which Facet is linked | related in ApexNode1403 and step 1-5 according to the relationship shown in a figure.

  In step 3 shown in FIG. 24C, a tag “sample: root” that XHTMLZone does not know is found, and a SubPane is generated from the region of XHTMLCanvas.

  In Step 4 shown in FIG. 25, the SubPane can handle “sample: root” and obtain a ZoneFactory that can generate an appropriate Zone. This ZoneFactory is in a Vocabulary that can execute ZoneFactory. It contains the contents of the “MySampleXML” VocabularySection.

  In step 5 shown in FIG. 26, Vocabulary associated with VCManager corresponding to “MySampleXML” generates DefaultZone 1601. A corresponding Editlet is generated, and a SubPane 1501 is provided to generate a corresponding Canvas. Editlet generates VCCanvas. And it calls TemplateSection. ConnectorFactoryTree is also included. ConnectorFactoryTree generates all the Connector that becomes the ConnectorTree that forms a part of VCCanvas. The relationship between the root pane and the XHTML zone, and the relationship between the XHTML canvas and the box tree for the vertex nodes associated with the XHTML portion of the document are clear from the above discussion.

  FIG. 27 shows step 6 based on the correspondence already described between the source DOM tree, the VC canvas, and the destination DOM tree. In step 6, each Connector generates a destination DOM object. Some of the connectors contain xpath information. The xpath information includes one or more xpath expressions that are used to determine a subset of the source DOM tree that needs to be monitored for changes / modifications.

  FIG. 28 shows step 7 in accordance with the relationship between the source, VC and destination. In step 7, the vocabulary creates a DestinationPane of the destination DOM tree from the source DOM pane. This is done based on SourcePane. The ApexNode of the destination tree is attached to the DestinationPane and the corresponding Zone. The DestinationPane is provided with its own Editlet that creates a DestinationCanvas and builds a data structure and commands for rendering the document in the destination format.

  FIG. 29A shows a flow when an event occurs on a node that does not have a corresponding source node and exists only in the destination tree. In the first step, events acquired by Canvas, such as mouse events and keyboard events, pass through the destination tree and are transmitted to the ElementTemplateConnector. Since ElementTemplateConnector does not have a corresponding source node, the transmitted event is not an editing operation on the source node. If the transmitted event matches the command described in the CommandTemplate, the ElementTemplateConnector executes the corresponding action in the second and third steps. If there is no matching command, ElementTemplateConnector ignores the transmitted event.

  FIG. 29B shows a flow when an event occurs on the node of the destination tree associated with the source node by TextOfConnector. The TextOfConnector acquires a text node from a node specified by the XPath of the source DOM tree, and maps it to a node of the destination DOM tree. In the first step, events acquired by Canvas, such as mouse events and keyboard events, pass through the destination tree and are transmitted to the TextOfConnector. The TextOfConnector maps the transmitted event to the editing command of the corresponding source node and loads it in the Queue 1053. An edit command is a set of DOM API calls executed via Facet. In the second step, when the command placed in the queue is executed, the source node is edited. When the source node is edited, a mutation event is issued in the third step, and the change of the source node is notified to the TextOfConnector registered as a listener. TextOfConnector reconstructs the destination tree so that the change of the source node is reflected in the corresponding destination node. At this time, if the template containing TextOfConnector contains a control statement such as “for each” or “for loop”, ConnectorFactory will re-evaluate this control statement and rebuild the TextOfConnector. Will be rebuilt.

  The present invention has been described based on the embodiments. This embodiment is an exemplification, and it will be understood by those skilled in the art that various modifications can be made to combinations of the respective constituent elements and processing processes, and such modifications are also within the scope of the present invention. is there.

  Although an example of processing an XML document has been described in the embodiment, the document processing apparatus 100 according to the present embodiment can similarly process a document described in another markup language, for example, SGML, HTML, or the like. is there.

It is a block diagram which shows the structure of the document processing apparatus which concerns on embodiment of this invention. It is a figure which shows the example of an XML document. FIG. 3 is a diagram showing an example in which the XML document shown in FIG. 2 is mapped to a table described in HTML. FIG. 4 is a diagram showing an example of a definition file for mapping the XML document shown in FIG. 2 to the table shown in FIG. 3. FIG. 4 is a diagram showing an example of a definition file for mapping the XML document shown in FIG. 2 to the table shown in FIG. 3. FIG. 4 is a diagram showing an example of a screen on which the XML document shown in FIG. 2 is mapped and displayed in HTML according to the correspondence shown in FIG. 3. FIG. 3 is a diagram illustrating a graphical user interface that can be used with the present invention. It is a figure which shows the other example of the screen layout produced | generated by this invention. It is a figure which shows an example of the edit screen of the XML document by this invention. It is a figure which shows the other example of the XML document edited by this invention. It is a figure which shows the edit screen which can be used by this invention. It is a figure which shows the structure of the element which functions as a basis of embodiment of the disclosed document processing management system. It is a figure which shows the block diagram of the whole document processing management system. It is a figure which shows the block diagram of the whole document processing management system. It is a figure which shows the further detail of embodiment of a document management part. FIG. 6 is a diagram illustrating further details of an embodiment of a vocabulary connection subsystem. FIG. 14A is a diagram showing further details of the embodiment of the relationship between the program startup unit and other configurations, and FIG. 14B is the implementation of the relationship between the service mediation unit and other configurations. FIG. 14C is a diagram showing further details of the embodiment of the service, FIG. 14D is a diagram showing an example of the service, and FIG. 14 (e) is a diagram showing further details of the relationship between the program activation unit and the user application. FIG. 15A is a diagram showing further details of the structure of the application service loaded by the program starter, and FIG. 15B is an example of the relationship between the frame, the menu bar, and the status bar. FIG. FIG. 16A is a diagram showing further details related to the application core embodiment, and FIG. 16B is a diagram showing further details related to the snapshot embodiment. FIG. 17A is a diagram showing further details related to the embodiment of the document management unit, and FIG. 17B shows a state in which a series of documents AE are arranged hierarchically on the right side. FIG. 5 is a diagram showing an example of a state in which the document hierarchy shown on the right side is displayed on the screen on the left side. FIGS. 18A and 18B are diagrams showing further details of the embodiment of the undo framework and the undo command. FIG. 19 (a) is a diagram showing how a document is loaded in the document processing management system shown in FIGS. 11 (b) and 11 (c). FIG. 19 (b) shows a zone using the MVC paradigm. It is a figure which shows the outline of a structure. It is a figure which shows the example of the document by this invention, and its expression. FIG. 21A is a simplified diagram of the MV relationship related to the XHTML element of the document shown in FIG. 20, and FIG. 21B shows the vocabulary connection related to the document shown in FIG. FIG. 22 (a)-(c) are diagrams illustrating further details associated with respective embodiments of the plug-in subsystem, vocabulary connection, and connector. It is a figure which shows the example of the VCD script using the vocabulary connection manager and connector factory tree with respect to a MySampleXML file. FIGS. 24A to 24C are diagrams illustrating a procedure 0-3 for loading an example of a MySampleXML document into the example of the document processing management system of FIG. 11B. 12 is a diagram illustrating a procedure 4 for loading an example of a MySampleXML document into the example of the document processing management system in FIG. It is a figure which shows the procedure 5 which loads the example of a MySampleXML document to the example of the document processing management system of FIG.11 (b). It is a figure which shows the procedure 6 which loads the example of a MySampleXML document to the example of the document processing management system of FIG.11 (b). 12 is a diagram illustrating a procedure 7 for loading an example of a MySampleXML document into the example of the document processing management system in FIG. FIG. 29A is a diagram showing the flow of events that occur in a node that does not have a corresponding source node and depends only on the destination tree, and FIG. 29B is related to the source node by a text of connector. It is a figure which shows the flow of the event which generate | occur | produced in the designated destination node.

Explanation of symbols

  20 document processing apparatus, 22 main control unit, 24 editing unit, 30 DOM unit, 32 DOM providing unit, 34 DOM generating unit, 36 output unit, 40 CSS unit, 42 analyzing unit, 44 CSS providing unit, 46 rendering unit, 50 HTML unit, 52, 62 control unit, 54, 64 editing unit, 56, 66 display unit, 60 SVG unit, 80 VC unit, 82 mapping unit, 84 definition file acquisition unit, 86 definition file generation unit.

Claims (46)

  1. A processing system capable of processing a document described in a first markup language supported by itself;
    A conversion unit capable of mapping the document to the first markup language when the document is described in a second markup language not supported by the processing system;
    A document processing apparatus comprising:
  2. The first markup language is a structured language for classifying and describing data in a document into a plurality of components having a hierarchical structure,
    The document processing apparatus according to claim 1, wherein the conversion unit maps the document to the first markup language in units of the components.
  3. A definition file describing a mapping between the first and second markup languages;
    The document processing apparatus according to claim 1, wherein the conversion unit maps the document between the first and second markup languages with reference to the definition file.
  4.   The document processing apparatus according to claim 3, wherein in the definition file, at least one of the components is defined to be editable.
  5. The definition file includes at least one arithmetic expression,
    The document processing apparatus according to claim 3, wherein the conversion unit substitutes a result obtained by performing the calculation based on the calculation expression into a position corresponding to the calculation expression in the document.
  6. A generator that generates data in a format that conforms to a document object model defined to provide an access method for handling the document as data from the document;
    The generation unit generates conversion source document object model data corresponding to the second markup language and conversion destination document object model data corresponding to the first markup language. The document processing apparatus according to 1.
  7.   The document processing apparatus according to claim 6, wherein the processing apparatus displays the mapped document with reference to the conversion destination document object model data.
  8. When the processing device receives an instruction to edit the document from a user,
    The conversion unit changes the corresponding part of the conversion source document object model data and the conversion destination document object model data,
    The document processing apparatus according to claim 6, wherein the processing apparatus updates a display with reference to the conversion destination document object model data.
  9.   2. The conversion unit according to claim 1, wherein the conversion unit includes a connector unit that holds a correspondence relationship between data included in the conversion source document object model data and data included in the conversion destination document object model data. Document processing device.
  10. When the processing device receives an instruction to edit the document from a user,
    The connector unit acquires the editing instruction, extracts a node of the conversion source document object model data to be edited based on the correspondence relationship, and performs a change operation corresponding to the editing instruction on the node. The document processing apparatus according to claim 9, wherein the document processing apparatus is executed.
  11.   When receiving the notification that the node of the conversion source document object model data has been changed, the connector unit determines the node of the conversion destination document object model data corresponding to the changed node based on the correspondence relationship. The document processing apparatus according to claim 9, wherein the node is extracted and the node is reconstructed.
  12. The connector unit includes a one-to-one connector corresponding to each node of the conversion destination document object model data,
    The connector does not have a first connector that holds a correspondence relationship between a node of the conversion destination document object model data and a node of the conversion source document object model data, and a corresponding node of the conversion source document object model data. The document processing apparatus according to claim 9, further comprising: 2 connectors.
  13. When the processing device receives an instruction to edit the document from a user,
    The editing instruction is notified to the connector corresponding to the node of the conversion destination document object model data to which the editing position belongs,
    When the connector notified of the editing instruction is a first connector, the first connector converts the notified editing instruction into a change operation for a node of the corresponding conversion source document object model data. The document processing apparatus according to claim 11, wherein the document processing apparatus is characterized in that:
  14.   13. The connector unit according to claim 12, wherein when receiving a notification that the node of the conversion source document object model data has been changed, the connector unit reconstructs the corresponding node of the conversion destination document object model data. The document processing apparatus described.
  15.   The document processing apparatus according to claim 12, wherein at least one of the connectors is a text of connector, and a corresponding node generated by the text of connector is editable.
  16.   The document processing apparatus according to claim 12, wherein at least one of the connectors is a value of connector, and a corresponding node generated by the value of connector is not editable.
  17.   The document processing apparatus according to claim 12, wherein at least one of the connectors is a template connector, a corresponding node associated with the template connector is a template, and a value associated with the template can be changed.
  18.   The document processing apparatus according to claim 12, wherein the at least one connector can identify the node even if the text value of the corresponding node of the conversion source document object model data is changed.
  19.   19. The document according to claim 18, wherein the at least one connector is capable of identifying the latest text in the latest structure of the conversion source document object model data and notifying the conversion destination document object model data. Processing equipment.
  20.   19. The document processing apparatus according to claim 18, wherein the corresponding node of the conversion source document object model data is specified by resolving the xpath expression.
  21.   The document processing apparatus according to claim 20, wherein the xpath expression includes a path.
  22.   The document processing apparatus according to claim 20, wherein the xpath expression includes a function.
  23. A method for processing a document, comprising:
    When the document to be processed by a document processing apparatus that cannot process the first markup language and can process the second markup language is described in the first markup language, the document is Mapping to the second markup language;
    Displaying the mapped document; and
    A document processing method comprising:
  24. When the document to be processed by a document processing apparatus that cannot process the first markup language and can process the second markup language is described in the first markup language, the document is Mapping to the second markup language;
    Displaying the mapped document; and
    A computer program product comprising a computer readable medium having instructions capable of causing a computer to perform a document processing operation using a procedure comprising:
  25. A method for editing a document including at least one vocabulary that cannot be processed by a document processing apparatus, comprising:
    The process of loading the document,
    Generating a source document object model tree of the document;
    Generating a destination document object model tree of the document adapted to process the at least one vocabulary by tree transformation;
    A method comprising the steps of:
  26. A process of making a change to the destination document object model tree when an editing operation is accepted;
    Making corresponding changes to the source document object model tree;
    26. The method of claim 25, further comprising:
  27.   27. The method of claim 26, wherein the change to the source document object model tree is made by generating a series of commands for modifying the source document object model tree.
  28.   27. The method of claim 26, wherein a relationship between the source document object model data tree and the destination document object model data tree is maintained using a connector unit.
  29.   30. The method of claim 28, wherein the connector portion includes a tree of connectors, each connector generating a corresponding node in the destination document object model data tree.
  30.   The connector includes a first connector that maintains a correspondence between the destination document object model data node and the source document object model data node; and a second connector that does not include the source document object model data node. 29. The method of claim 28, comprising:
  31.   30. The method of claim 29, wherein at least one of the connectors is a text of connector, and a corresponding node generated by the text of connector is editable.
  32.   30. The method of claim 29, wherein at least one of the connectors is a value of connector, and a corresponding node generated by the value of connector is not editable.
  33.   30. The method of claim 29, wherein at least one of the connectors is a template connector, a corresponding node associated with the template connector is a template, and a value associated with the template is changeable.
  34.   30. The method according to claim 29, wherein at least one of the connectors can identify the node even if the text value of the corresponding node of the source document object model data is changed.
  35.   The method of claim 34, wherein the at least one connector is capable of identifying and notifying the destination document object model data of the latest text in the latest structure of the source document object model data. .
  36.   35. The method of claim 34, wherein the corresponding node of the source document object model data is identified by resolving an xpath expression.
  37.   36. The method of claim 35, wherein the xpath representation includes a path.
  38.   36. The method of claim 35, wherein the xpath representation includes a function.
  39.   28. The method of claim 27, wherein a command queue is created.
  40.   The destination document object model data tree is a second source document object model data tree, and the second destination document object model data tree is generated using tree transformation. The method described.
  41.   The method of claim 26, wherein the editing operation is performed as an event.
  42.   42. The method of claim 41, wherein the event is a mouse event or a keyboard event.
  43.   The method according to claim 25, wherein the tree transformation is described in a definition file.
  44.   44. The method of claim 43, wherein the definition file includes a mapping between events and at least one command.
  45.   44. The method according to claim 43, wherein the definition file includes at least one arithmetic expression, and a calculation result based on the arithmetic expression is substituted into a position corresponding to the arithmetic expression of the document.
  46.   26. The method of claim 25, wherein the document is displayed based on the destination document object model data tree.
JP2006535891A 2004-04-08 2005-04-08 Document processing in multiple markup expressions Granted JP2007532986A (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2004114524 2004-04-08
US59236904P true 2004-08-02 2004-08-02
JP2005020457 2005-01-27
PCT/JP2005/007287 WO2005098664A1 (en) 2004-04-08 2005-04-08 Processing documents in multiple markup representations

Publications (1)

Publication Number Publication Date
JP2007532986A true JP2007532986A (en) 2007-11-15

Family

ID=35125273

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006535891A Granted JP2007532986A (en) 2004-04-08 2005-04-08 Document processing in multiple markup expressions

Country Status (3)

Country Link
EP (1) EP1743256A4 (en)
JP (1) JP2007532986A (en)
WO (1) WO2005098664A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011525272A (en) * 2008-05-21 2011-09-15 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Maschines Corporation Method and system for selectively securing advertisement postings on a web browser

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8965940B2 (en) * 2012-07-20 2015-02-24 Microsoft Technology Licensing, Llc Imitation of file embedding in a document

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004501450A (en) * 2000-06-21 2004-01-15 マイクロソフト コーポレイションMicrosoft Corporation The creation of any of the xml document using Dhtml and xslt
JP2004030582A (en) * 2002-04-30 2004-01-29 Toshiba Corp Structured document compiling apparatus, structured document compiling method and program

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11259460A (en) * 1998-03-10 1999-09-24 Toshiba Corp Document processor
US7080083B2 (en) * 2001-12-21 2006-07-18 Kim Hong J Extensible stylesheet designs in visual graphic environments

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004501450A (en) * 2000-06-21 2004-01-15 マイクロソフト コーポレイションMicrosoft Corporation The creation of any of the xml document using Dhtml and xslt
JP2004030582A (en) * 2002-04-30 2004-01-29 Toshiba Corp Structured document compiling apparatus, structured document compiling method and program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011525272A (en) * 2008-05-21 2011-09-15 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Maschines Corporation Method and system for selectively securing advertisement postings on a web browser

Also Published As

Publication number Publication date
WO2005098664A1 (en) 2005-10-20
EP1743256A1 (en) 2007-01-17
EP1743256A4 (en) 2007-05-16

Similar Documents

Publication Publication Date Title
Pietriga et al. Fresnel: A browser-independent presentation vocabulary for RDF
US7076728B2 (en) Method and apparatus for end-to-end content publishing system using XML with an object dependency graph
EP1920350B1 (en) Markup based extensibility for user interfaces
US8407585B2 (en) Context-aware content conversion and interpretation-specific views
US7287215B2 (en) System and method for facilitating the design of a website
AU2005202293B2 (en) Method and apparatus for viewing and interacting with a spreadsheet from within a Web browser
CA2379855C (en) Spreadsheet cell-data source binding
US7290008B2 (en) Method to extend a uniform resource identifier to encode resource identifiers
US6466240B1 (en) Method for visually writing programs or scripts that transform structured text presented as a tree
US7316003B1 (en) System and method for developing a dynamic web page
US6584480B1 (en) Structured documents in a publishing system
US8918729B2 (en) Designing electronic forms
US20020124115A1 (en) Filter based authoring tool
US7900134B2 (en) Authoring arbitrary XML documents using DHTML and XSLT
US7496837B1 (en) Structural editing with schema awareness
US6978422B1 (en) Methods and apparatus for displaying managed resource information
US8892993B2 (en) Translation file
US7191405B1 (en) System and method for editing information
US7873668B2 (en) Application data binding
JP3857663B2 (en) Structured document editing apparatus, structured document editing method and program
US20040268229A1 (en) Markup language editing with an electronic form
JP4339554B2 (en) System and method for creating and displaying a user interface for displaying hierarchical data
US7200816B2 (en) Method and system for automating creation of multiple stylesheet formats using an integrated visual design environment
JP2006178949A (en) Management and use of data in computer-generated document
US8375293B2 (en) Method and apparatus for defining documents

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070927

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090714

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090914

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100323

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100623

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100701

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20100827