Source: https://patents.google.com/patent/JPWO2006051966A1/en
Timestamp: 2019-12-06 09:10:19
Document Index: 778968133

Matched Legal Cases: ['art. 6', 'art, 34', 'art, 36', 'art, 40', 'art, 30', 'art 93', 'art 93', 'art 93']

JPWO2006051966A1 - Document management apparatus and document management method - Google Patents
Document management apparatus and document management method Download PDF
JPWO2006051966A1
JPWO2006051966A1 JP2006545037A JP2006545037A JPWO2006051966A1 JP WO2006051966 A1 JPWO2006051966 A1 JP WO2006051966A1 JP 2006545037 A JP2006545037 A JP 2006545037A JP 2006545037 A JP2006545037 A JP 2006545037A JP WO2006051966 A1 JPWO2006051966 A1 JP WO2006051966A1
JP2006545037A
植松　直也
直也 植松
俊信 叶
教雄 大島
2004-11-12 Priority to JP2004328419 priority
2005-11-14 Application filed by 株式会社ジャストシステム filed Critical 株式会社ジャストシステム
2005-11-14 Priority to PCT/JP2005/020893 priority patent/WO2006051966A1/en
2008-05-29 Publication of JPWO2006051966A1 publication Critical patent/JPWO2006051966A1/en
Provide technology to ensure confidentiality of proper nouns contained in documents. The document management system 21 includes a document processing apparatus 100 that performs processing such as document editing and display, and a document management server 23 that manages document division and composition. The document processing apparatus 100 transmits the created XML document to the document management server 23 and requests to save the document. The document management server 23 stores the XML document received from the document processing apparatus 100. At this time, if the proper noun is included in the XML document, the proper noun is divided into separate files and stored. When the document management server 23 is requested by the document processing apparatus 100 to obtain an XML document stored in the document management server 23, the document management server 23 authenticates the user of the requesting document processing apparatus 100, and appropriately according to the authentication level. The proper noun is combined with the XML document and transmitted to the document processing apparatus 100.
The present invention relates to a document management technique, and more particularly to a document management apparatus and a document management method for managing a document including proper nouns.
XML is attracting attention as a format suitable for sharing data with others via a network or the like, and an application for creating, displaying, and editing an XML document has been developed (see, 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
XML is expected to be used as a common format when data is shared by a plurality of users. When data such as documents described in XML is shared by many users via a network, the necessity of appropriately managing the confidentiality of data such as proper nouns included in files increases.
The present invention has been made in view of such circumstances, and an object thereof is to provide a technique for ensuring the confidentiality of proper nouns included in a document.
One embodiment of the present invention relates to a document management apparatus. The document management apparatus includes: an acquisition unit that acquires a document; an extraction unit that extracts a proper noun included in the document; an issue unit that issues an identifier for the proper noun extracted by the extraction unit; A replacement unit that replaces the proper noun with the identifier, and a storage unit that stores the proper noun and the identifier in association with each other. According to such a configuration, confidentiality of proper nouns included in the document can be appropriately ensured.
The document management device further includes a synthesis unit that reads the proper noun from the storage unit and synthesizes the proper noun into the document when receiving an acquisition request for the document from a user who has an authority to view the proper noun. May be included. Thereby, a proper noun can be shown with respect to the user who has the authority to browse. The synthesizing unit may select a proper noun that should be permitted to be browsed according to the authority level of the user and synthesize it with the document. As a result, proper nouns are disclosed to users who are permitted to browse, and proper nouns are not disclosed to users who are prohibited from browsing. Therefore, confidentiality of proper nouns can be appropriately managed. The storage unit may be a file different from the document.
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.
ADVANTAGE OF THE INVENTION According to this invention, the technique which ensures the confidentiality of the proper noun contained in a document can be provided.
It is a figure which shows the structure of the document processing apparatus which concerns on a base technology. It is a figure which shows the example of the XML document used as a process target. 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 in which an 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. 3. It is a figure which shows the example of the graphical user interface which a definition file production | generation part presents to a user in order that a user may produce | generate a definition file. It is a figure which shows the other example of the screen layout produced | generated by the definition file production | generation part. 6 is a diagram illustrating an example of an XML document editing screen by the document processing apparatus. It is a figure which shows the other example of the XML document edited by the document processing apparatus. It is a figure which shows the example of the screen which displayed the document shown in FIG. It is a figure which shows the basic composition of a document processing system. It is a figure which shows the block diagram of the whole document processing system. It is a figure which shows the block diagram of the whole document processing system. It is a figure which shows the detail of a document management part. It is a figure which shows the detail of a vocabulary connection subsystem. It is a figure which shows the detail of the relationship between a program starting part and another structure. It is a figure which shows the detail of the structure of the application service loaded by the program starting part. It is a figure which shows the detail of a core component. It is a figure which shows the detail of a document management part. It is a figure which shows the details of an undo framework and an undo command. It is a figure which shows a mode that a document is loaded in a document processing system. It is a figure which shows the example of a document and its expression. It is a figure which shows the relationship between a model and a controller. It is a figure which shows the detail of a plug-in subsystem, a vocabulary connection, and a connector. It is a figure which shows the example of a VCD file. It is a figure which shows the procedure which loads a compound document in a document processing system. It is a figure which shows the procedure which loads a compound document in a document processing system. It is a figure which shows the procedure which loads a compound document in a document processing system. It is a figure which shows the procedure which loads a compound document in a document processing system. It is a figure which shows the procedure which loads a compound document in a document processing system. It is a figure which shows the flow of a command. It is a figure which shows the structure of the document management system which concerns on embodiment. It is a figure which shows the internal structure of the document processing apparatus of this Embodiment. It is a figure which shows the internal structure of a document management server. It is a figure which shows the example of the internal data of a document file management table. It is a figure which shows the example of the internal data of a user database. It is a figure which shows the example of the XML document processed in the document management system of embodiment. FIG. 36 is a diagram showing an example of a definition file for mapping / displaying / editing the XML document shown in FIG. 35 with XHTML. FIG. 36 is a diagram showing an example of a screen displayed by applying the definition file shown in FIG. 36 to the XML document shown in FIG. It is a figure which shows the example of the XML document in which confidential data was marked up. FIG. 39 is a diagram showing an example of a table file generated by dividing the XML document shown in FIG. 38 by a document file dividing unit. It is a figure which shows the example of the back file which the document file division part produced | generated by dividing | segmenting the XML document shown in FIG. It is a figure which shows another example of the back file which the document file division part produced | generated by dividing | segmenting the XML document shown in FIG. FIG. 41 is a diagram showing a definition file in which a definition for synthesizing the back file shown in FIG. 40 is described in the table file shown in FIG. 39. It is a figure which shows the example of a display of the produced | generated synthetic | combination file. It is a figure which shows the example of a display of the produced | generated synthetic | combination file. It is a figure which shows the example of a display of the produced | generated synthetic | combination file. It is a figure which shows the example of a display of the produced | generated synthetic | combination file. FIG. 39 is a diagram showing another example of a table file generated by dividing the XML document shown in FIG. 38 by the document file dividing unit. 48 is a diagram showing an example of a definition file applied to the table file shown in FIG. 47. FIG. 48 is a diagram showing an example of a screen displayed by applying the definition file shown in FIG. 48 to the table file shown in FIG.
DESCRIPTION OF SYMBOLS 20 Document processing apparatus, 21 Document management system, 22 Main control unit, 23 Document management server, 24 Editing unit, 30 DOM unit, 32 DOM provision part, 34 DOM production | generation part, 36 Output part, 40 CSS unit, 42 CSS analysis part , 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, 100 Document processing device, 3020 Document storage request reception unit, 3022 Document file reception unit, 3024 Confidential data extraction unit, 3026 ID issue unit, 3028 Document file division unit, 3030 Document acquisition request reception unit, 3032 User Authentication part, 30 4 document file combining unit, 3036 a document file transmission unit, 3040 a document file management table, 3050 a document file storage unit, 3060 a user database.
FIG. 1 shows a configuration of a document processing apparatus 20 according to the base technology. 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 base technology, an example of processing an XML document as an example of a structured document will be described. . The document processing apparatus 20 includes a main control unit 22, an editing unit 24, a DOM unit 30, a CSS unit 40, an HTML unit 50, an SVG unit 60, and a VC 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 in to display and edit. For example, the document processing apparatus 20 has a display system and an editing system as plug-ins for each vocabulary (tag set) such as an HTML unit 50 that displays and edits HTML documents and an SVG unit 60 that displays and edits SVG documents. The HTML unit 50 is loaded when editing an HTML document, and the SVG unit 60 is loaded when editing an SVG document. 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 from the user via the user interface, notifies the event to an appropriate plug-in, and performs processing such as event re-execution (redo) or execution cancellation (undo). Control.
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). In general, the display units 56 and 66 are “View”, the control units 52 and 62 are “Controller”, and the editing unit. The entities 54 and 64 and DOM correspond to “Model”, respectively. The document processing apparatus 20 of the base technology enables not only editing the XML document in a tree display format but also 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 base technology, this function is called vocabulary connection (VC). The definition file acquisition unit 84 acquires a script file describing a mapping definition. This definition file describes the correspondence (connection) between nodes for each node. At this time, 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 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 “Japanese language”, “Mathematics”, “Science”, and “Society” store the results of Japanese language, mathematics, science, and society, respectively. For example, a student whose name is “A” has a national language grade of “90”, a mathematics 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 base technology 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. 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, for example, 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.
4A and 4B show examples of definition files 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. The definition file describes command definitions and display templates. In the example of FIGS. 4A and 4B, “add student” and “delete student” are defined as commands, respectively, an operation of inserting a node “student” into the source tree, An operation for deleting the node “student” is associated. As a template, it is described that headings such as “name” and “national language” are displayed on the first line of the table, and the contents of the node “student” are displayed on and after the second line. 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. Therefore, also in the table on the screen, the mathematics score of the student “B” is changed to “70”, and the average score is changed to “55”.
On the screen shown in FIG. 5, commands “add student” and “delete student” are displayed in the menu as defined in the definition file shown in FIGS. When the user selects these commands, the node “student” is added or deleted in the source tree. As described above, the document processing apparatus 20 of the base technology can edit not only the element value of the component at the end of the hierarchical structure but also 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, since the document processing apparatus 20 of the base technology can process a compound document including a plurality of vocabularies in one XML document, a table 90 described in HTML as in this example, and , A pie chart 93 written 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 rectangle, 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.
During document editing, the displayed menu may be switched according to the position of the cursor (carriage). 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. Previously, when opening a compound document in which another document was embedded in one document, the contents could not be displayed unless an application that displayed the embedded document was installed. Even if there is no application for the purpose, the content can be grasped by displaying the XML document composed of the 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 of 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. The configuration for managing the screen layout receives the notification and 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 of the base technology will be described in more detail. In the following description, when describing a class name or the like, it will be described using alphabetic characters as they are.
A. Overview With the advent of the Internet, the number of documents processed and managed by users has increased almost exponentially. The web (World Wide Web) that forms the core of the Internet has become a big receiver of such document data. In addition to documents, the web provides information retrieval systems for such documents. These documents are usually written in a markup language. One simple and popular example of a markup language is HTML (HyperText Markup Language). Such documents further include links to other documents stored elsewhere on the web. XML (eXtensible Markup Language) is a more advanced and popular markup language. Simple browsers for accessing and browsing web documents have been developed in object-oriented programming languages such as Java.
Documents written in a markup language are usually expressed in the form of a tree data structure in browsers and other applications. This structure corresponds to a tree resulting from parsing the document. DOM (Document Object Model) 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 includes two basic components: a standard model of how objects representing components in a document are connected, and a standard interface for accessing and manipulating those objects.
An application developer can support DOM as an interface to a unique data structure or API (Application Program Interface). On the other hand, application developers who create documents can use the DOM standard interface rather than the proprietary interface of their API. Thus, due to its ability to provide standards, DOM is effective in facilitating interoperability of documents in various environments, particularly 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 one or more “nodes” that originate from the root. In some cases, the root represents the entire document. Intermediate nodes can represent elements such as a table and rows and columns in the table, for example. A “leaf” in a DOM tree usually represents data such as text or an image that cannot be further decomposed. Each node in the DOM tree may be associated with an attribute that describes the parameters of the element represented by the node, such as font, size, color, indentation, etc.
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 an element that is predefined as an HTML formatting tag. Usually, HTML does not provide functions for data detailing or data tagging / labeling. 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 data designers can label data elements using “tags” that can be freely defined by the document designer. Such data elements can be structured hierarchically. Further, an XML document can include a document type definition that describes the tags used in the document and the “grammar” of their interrelationships. CSS (Cascading Style Sheet) or XSL (XML Style Language) is used to define the display method of the structured XML document. Additional information about DOM, HTML, XML, CSS, XSL and related language features can also be obtained from the web. (For example, http://www.w3.org/TR/)
Xpath provides common syntax and semantics for specifying the location of parts of an XML document. An example of functionality is traversing (moving) a DOM tree corresponding to an XML document. It provides basic functionality for manipulating strings, numbers, and Boolean characters associated with various representations of XML documents. Xpath operates in an abstract / logical structure such as a DOM tree, rather than the syntax of the appearance of an XML document, for example, a grammar such as the number of lines and the 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. In addition to its use for addressing, Xpath is also designed to be used to test whether a node in a DOM tree matches a pattern. More details about XPath can be obtained at http://www.w3.org/TR/xpath.
The known advantages and features of XML can handle documents written in a markup language (eg, XML) and provide an effective user-friendly interface for creating and modifying documents. What is needed is a document processing system.
Some of the system configurations described here are described using a well-known GUI (Graphical User Interface) paradigm called Model-View-Controller (MVC). The MVC paradigm divides 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.
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.
B. Overall Configuration of Document Processing System An embodiment of a document processing system will be clarified with reference to FIGS.
FIG. 11A shows a conventional configuration example of elements that function as a basis of a document processing 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. 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.
Further, the present system and the embodiments discussed herein are discussed as including several components and subcomponents that provide various functionalities. 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 system. A document is generated and edited in such a document processing system. These documents may be described in any language having a markup language feature, such as XML. Also, 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 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 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 component of the execution environment 101 is a ProgramInvoker (program invoker: program activation unit) 103. The ProgramInvoker 103 is a basic program that is accessed to start the document processing system. For example, when the user logs on to the document processing 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 system, start and execute an application, or read a property 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.
Some components 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.
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 system. The plug-in subsystem 104 can also be used to modify or delete functions that exist in the document processing system. In addition, a wide variety of functions can be added or modified using the plug-in subsystem. For example, an Editlet (editlet) function that functions to support drawing of a document on the screen can be added. 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 system by managing plug-ins added to the document processing system.
Individual functions that achieve the desired functionality are added to the system in the form of a Service 1042. The types of Service 1042 that can be used are: Application service, ZoneFactory (zone factory: zone generator) Service, Editlet (editlet: editor) Service, CommandFactory (command factory: command generator) Service, ConnectXPath (Connect XPath) : XPath management unit) Service, CSSComputation (CSS computing: 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 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.
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 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 It may be. These three instructions may be wrapped in one command.
The command may have an associated function, for example, an “Undo” function, which will be described in detail later. These functions may also be assigned to some base classes that are used to create objects.
A key component of the command subsystem 105 is a CommandInvoker (command invoker: command activation unit) 1051 that selectively gives a command and executes it. 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 (undoable command) 1054, an AsynchronousCommand (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.
AsynchronousCommand 1055 is a command from the system, such as loading and saving of a document, and is executed asynchronously separately from UndoableCommand and VCCommand. AsynchronousCommand is not an UndoableCommand and cannot be undone.
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 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.
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.
b) Core components
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. A Pane can be a RootPane (root pane) 1084 or a SubPane (subpane) 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.
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 function is to keep the actual document 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 1087, and a SnapShot (snapshot) utility 1088. The ClipBoard utility 1087 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 part is added to ClipBoard.
Next, the SnapShot utility 1088 will also be described. The SnapShot utility 1088 can store the current state of the application when the application shifts from one state to another state.
d) User Interface Another configuration of the application component 102 is a user interface 107 that provides a means for the 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.
The Frame 1071 is regarded as an active area of a physical screen as is generally known. MenuBar 1072 is a screen area that includes a menu that provides selection to 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.
C. 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 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 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 system. The document also forms part of the DocumentContainer 203.
1. 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.
2. 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 has a corresponding Facet. Instead of directly manipulating the nodes in the DOM, the integrity of the DOM is protected by using Facet to perform the operations. 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 system, such an API peculiar to each Node is prepared as 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.
A vocabulary is a set of tags (for example, XML tags) belonging to a name space. 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. Canvas (canvas) 210 is a service that acts to provide a logical layout corresponding to Zone.
On the other hand, the Pane 211 is a physical screen layout corresponding to the logical layout provided by the Canvas 210. In fact, the user 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. The document is drawn on the screen by the Canvas 210 based on the physical layout provided by the Pane 211.
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 Facets 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.
A user generally interacts with the screen by moving a cursor on the screen or typing a command. The Canvas 210 that provides a logical layout on the screen accepts this cursor operation. The Canvas 210 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. Overview of the relationship between Zone, Facet, Canvas and Pane Documents in a document processing system can be viewed from at least four perspectives. That is, 1) a data structure used to hold the content and structure of the document in the document processing system, 2) means for editing the content of the document without affecting the integrity of the document, and 3) on the screen of the document Logical layout, 4) Physical layout on the document screen. Zone, Facet, Canvas, and Pane respectively represent components of the document processing system corresponding to the above-described four viewpoints.
4). 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 supports such an operation. The UndoManager 2121 holds the operation of such an UndoableEdit (Undoable Edit) 2122.
5. 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.
6). 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 DocumentManager 1081.
D. Vocabulary connection An important feature of a document processing system is that an XML document can be handled by mapping it to another expression. When the mapped expression is edited, the editing is consistent with the original XML document. It is to provide an environment that is reflected while maintaining.
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 system is displayed by mapping to a document of another vocabulary in which the plug-in is available. 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 acquire a definition file and map between two different vocabularies based on the acquired definition file. 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 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.
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. 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.
1. Vocabulary Connection Subsystem The functions of the vocabulary connection subsystem 300 are realized in a document processing 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.
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. 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, 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. The vocabulary plug-in is used in connection with 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.
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 created. 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). Vocabulary Connection Command Subsystem As an element of the vocabulary connection (VC) subsystem 300, there is a vocabulary connection (VC) command subsystem 313. 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. A VCCommand can be generated using the built-in CommandTemplate 318 and / or by generating commands from scratch using a 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.
5. XPath Subsystem The XPath subsystem 316 is an important configuration of the document processing 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.
6). 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 into 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.
E. Event flow in a document processing system In practice, a 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 events generated by all users.
The document processing 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 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.
1. 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.
2. Handling events in vocabulary connections
Using the VocabularyConnection plug-in 301, an XHTMLCanvas 1106, which is an example of DestinationCanvas, 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 304. More specifically, as illustrated in FIG. 21B, the event flow in the VocabularyConnection plug-in 301 passes through the SourcePane 1103, the VCCanvas 1104, the DestinationPane 1105, the DestinationCanvas 1106, which is an example of the DestinationCanvas, the destination DOM tree, and the ConnectorTree.
F. 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 system. As illustrated in FIG. 11B and FIG. 11C, the UserApplication 106, the Service Broker 1041, the Command Invoker 1051, and the Resource 109 are all connected to the Program Invoker 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.
1. Plug-ins and services
The ServiceBroker 1041 will be described in more detail with reference to FIG. As described above, the Service Broker 1041 manages plug-ins (and related services) that add various functions to the system. Service 1042 is the lowest layer to which features can be added or changed in the document processing 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.
The Service 1) “Spot Color Service” that provides a specific spot color to the document processing system, 2) “Application Service” that is an application executed by the document processing system, and 3) Provides necessary spot colors throughout the document processing system. It can be classified into three types of “environmental services”.
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).
A plug-in has already been described as adding functionality to a document processing system, but may be considered a unit of several ServiceProviders 402 and their associated classes. Each plug-in has a dependency and a ServiceCategory 401 described in the declaration file.
2. Relationship between ProgramInvoker 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.
G. 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 the corresponding XML LDO tree in the document processing 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.
FIG. 15B shows the relationship among Frame 1071, MenuBar 1072, and StatusBar 1073.
H. 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. The DocumentManager 1081 is the owner of all documents 1082 stored in the memory associated with the document processing system.
DocumentManager 1081 is also connected to RootPane 1084 to facilitate the display of the document on the screen. The functions of ClipBoard 1087, SnapShot 1088, Drag & Drop 601 and Overlay 602 are also attached to CoreComponent 110.
The SnapShot 1088 is used to restore the application state. When the user activates SnapShot 1088, 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. SnapShot 1088 is illustrated in FIG. In operation, when an application moves from one URL to another, SnapShot 1088 stores the previous state in order to be able to seamlessly execute a previous operation and a subsequent operation.
I. 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. 11B, 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. The left side of FIG. 17B 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. The change of SubDocument has a close relationship with RootDocument. 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 709 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.
J. et al. 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 804 and “bar” EditCommand 805 are examples of UndoableEditCommand.
1. Execution 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.
K. 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. 19A shows an outline of how a document is loaded into the document processing system. Each step is detailed in connection with a particular example in FIGS.
In brief, the document processing system generates a DOM from a binary data stream composed of data included in a document. ApexNode (apex node: vertex node) is generated for a part of the document that is the target of attention and belongs 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, documents are loaded from storage 901. A DOM tree 902 of the document is generated. A corresponding DocumentContainer 903 for holding the document is generated. DocumentContainer 903 is attached to DocumentManager 904. The DOM tree includes a root node and sometimes 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.
In step 1, ApexNode 906 is attached to Pane 907 which is the logical layout of the screen. In step 2, Pane 907 requests a ZoneFactory for ApexNode 906 from CoreComponent which is PaneOwner (pane owner: owner of pane) 908. In step 3, PaneOwner 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.
1. Zone MVC
FIG. 19B shows an outline of the configuration of the Zone using the MVC paradigm. In this case, since Zone and Facet are inputs related to the document, the model (M) includes Zone and Facet. Since the canvas and the data structure for rendering the document on the screen are outputs 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.
L. Document Representation An example of a 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 the document components and the 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 an ApexNode 1004.
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 1004 is also attached to XHTMLZone 1006 that is a part of the DOM tree of the document.
Facet 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. XHTMLCanvas1007 generates BoxTree1009 for the XHTML component of Document1001. Various commands 1008 necessary for holding and rendering the XHTML portion of the document are also added to the XHTMLCanvas 1007.
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 component 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. Data structures and commands for rendering the SVG portion of the document on the screen are attached to the SVGCanvas. For example, the data structure may include circles, lines, rectangles, etc. as shown.
A part of the expression of the document example described with reference to FIG. 20 will be further described with reference to the MVC paradigm described above with reference to FIG. FIG. 21A shows a simplified MV relationship in the XHTML component of the document 1001. The model is XHTMLZone 1101 for the XHTML component 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 drawn on the screen using Canvas and the Command included 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 component of Document 1001 shown in FIG. A SourcePane 1103 that functions as a DOM holder includes a source DOM tree of a document. ConnectorTree is generated by ConnectorFactory and generates 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.
M.M. 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 functions to the document processing system. The plug-in subsystem includes a Service Broker 1041. A ZoneFactoryService 1201 attached to the ServiceBroker 1041 generates a Zone for a part of the document. EditletService 1202 is also attached to ServiceBroker1041. 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 component of the document may be represented by generating XHTMLZone, and the image may be represented 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, the vocabulary connection is an important feature of the document processing 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. ConnectorFactory303 produces | generates Connector304 of a 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 317 represents conversion rules for 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. Template 317 and CommandTemplate 318 are all attached to 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 that generates a Zone and an Editlet that generates a Canvas.
Next, EditletService of the target vocabulary generates VCCanvas. 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.
N. Example of VCD file related to ConnectorTree An example that explains processing related to a specific document will be continued. A document titled “MySampleXML” with a document title is loaded into the document processing 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”.
O. Detailed Example of How Files are Loaded into the System FIGS. 24-28 show a detailed description for 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. The DocumentContainer 1401 is attached to the 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 ApexNode1403.
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, the Vocabulary corresponding to “MySampleXML” generates a 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 connectors that become ConnectorTree.
In Step 6 shown in FIG. 27, 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.
In step 7 shown in FIG. 28, 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. 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 CommandTemplate, ElementTemplateConnector executes the action corresponding to it. 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. Events acquired by Canvas, such as mouse events and keyboard events, pass through the destination tree and are transmitted to 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. When the queued command is executed, the source node is edited. When the source node is edited, a mutation event is issued, 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.
Based on the above prerequisite technology, the details of the embodiment will be described below. In this embodiment, a technique is proposed in which a document is divided into a plurality of files and stored, and when the document processing apparatus opens the document, the divided files are appropriately combined and presented to the user. For example, when creating a document containing data that should be kept secret for some users, the data to be kept secret is divided into separate files and stored, and the secret data is given to users who are permitted to view the secret data. The document is presented after synthesizing, and the document is presented to the user who is not permitted to view the confidential data while keeping the confidential data confidential.
FIG. 30 shows a configuration of the document management system 21 according to the present embodiment. The document management system 21 includes a document processing apparatus 100 that performs processing such as document editing and display, and a document management server 23 that manages document division and composition. The document processing apparatus 100 and the document management server 23 are connected via a LAN 25 which is an example of a network. The document processing apparatus 100 transmits the created XML document to the document management server 23 and requests to save the document. The document management server 23 stores the XML document received from the document processing apparatus 100. At this time, if confidential data is included in the XML document, the confidential data is divided into separate files and stored. When the document processing server 100 requests the acquisition of the XML document stored in the document management server 23 from the document processing apparatus 100, the document management server 23 authenticates the user of the requesting document processing apparatus 100, and appropriately according to the authentication level. The confidential data is combined with the XML document and transmitted to the document processing apparatus 100.
FIG. 31 shows the internal configuration of the document processing apparatus 100 of this embodiment. The document processing apparatus 100 according to the present embodiment includes a communication unit 26 in addition to the configuration of the document processing apparatus 20 of the base technology shown in FIG. The communication unit 26 transmits the document created by the document processing apparatus 100 to the document management server 23 via the LAN 25. Further, the communication unit 26 receives a document stored in the document management server 23 via the LAN 25. Other configurations and operations are the same as those of the base technology.
FIG. 32 shows the internal configuration of the document management server 23. The document management server 23 mainly includes a communication unit 3010, a document storage request receiving unit 3020, a document file receiving unit 3022, a secret data extracting unit 3024, an ID issuing unit 3026, a document file dividing unit 3028, a document acquisition request receiving unit 3030, A user authentication unit 3032, a document file composition unit 3034, a document file transmission unit 3036, a document file management table 3040, a document file storage unit 3050, and a user database 3060 are included. These configurations can also be realized in various forms by hardware only, software only, or a combination thereof.
When the document storage request receiving unit 3020 receives a document file storage request from the document processing device 100, the document file receiving unit 3022 receives the document file from the document processing device 100 via the communication unit 3010. The secret data extraction unit 3024 extracts secret data such as proper nouns included in the document file received by the document file reception unit 3022. The secret data may be marked up with a predetermined tag in the document, as will be described later, or the interface screen for the secret data extraction unit 3024 to accept the designation of the secret data to the user's document processing apparatus 100 Etc., and designation of confidential data may be received from the user. In the former case, the configuration of the editing units 54 and 64 that attach a tag indicating confidential data to the document and the tag attached to the document file serve as a notification unit that notifies the document management server 23 of the confidential data in the document file. In the latter case, the interface screen functions as a notification unit. The secret data extraction unit 3024 may hold a list of data to be kept secret, and the data listed in the list held by the secret data extraction unit 3024 as secret data without receiving a notification from the document processing apparatus 100. It may be extracted. The ID issuing unit 3026 issues an ID for each of the secret data extracted by the secret data extracting unit 3024. This ID only needs to be able to uniquely identify the confidential data in the document, and may overlap with the ID of the confidential data of another document.
The document file dividing unit 3028 functioning as a replacement unit first issues secret data in the document file (hereinafter referred to as “original file”) received by the document file receiving unit 3022 by the ID issuing unit 3026. The ID is replaced with the stored ID and stored in the document file storage unit 3050. The document file generated in this way is hereinafter referred to as a “table file”. The document file dividing unit 3028 further generates a file in which the confidential data and the ID are described in association with each other, and stores the file in the document file storage unit 3050. The document file generated in this way is hereinafter referred to as “back file”. That is, the document file dividing unit 3028 divides the original file into a front file and a back file, and stores them in the document file storage unit 3050. In the document file storage unit 3050, the table file may be stored in an area that accepts direct access from the document processing apparatus 100, but the back file is stored so that it cannot be accessed directly from the document processing apparatus 100. In this way, the document management server 23 saves and stores the confidential data included in the original file requested to be stored by the document processing apparatus 100 in a back file that does not accept direct access from the document processing apparatus 100. The document file dividing unit 3028 registers information necessary for managing the correspondence between the front file and the back file in the document file management table 3040.
When the document management server 23 is requested by the document processing apparatus 100 to acquire a document stored in the document file storage unit 3050, the document management server 23 selects a document according to the authentication level or access authority of the user of the requesting document processing apparatus 100. Deliver the files as appropriate. For example, for a user with low access authority, a table file with confidential data kept secret is provided. For a user with high access authority, a back file is synthesized with the front file, and the ID in the table file is set. Provided by replacing the secret data in the back file. A plurality of back files may be prepared according to the level of access authority of the user who intends to acquire the document. For example, for users with the highest access authority, in order to disclose all confidential data, prepare a back file that describes the correspondence between all confidential data and ID, and for users with medium access authority. In order to disclose only some confidential data, prepare a back file that describes the correspondence between the partial confidential data and the ID, and do not disclose all the confidential data to the user with the lowest access authority. Therefore, the back file may not be combined. In addition, when the access authority is set for each of the secret data described in the back file, and the back file is combined, the cover data is selectively combined with the front file according to the access authority of the user. Good.
When the document acquisition request receiving unit 3030 receives a document file acquisition request from the document processing device 100, the user authentication unit 3032 authenticates the user of the document processing device 100. The user authentication unit 3032 may request the document processing apparatus 100 to input a user ID and password, and authenticate the received user ID and password pair with reference to the user database 3060. When the user authentication unit 3032 successfully authenticates the user, the document file composition unit 3034 appropriately composes the back file into the front file according to the user authentication level. The document file composition unit 3034 refers to the document file management table 3040, obtains the correspondence between the requested front and back files of the document, reads out the necessary files from the document file storage unit 3050, and composes them. The document file transmission unit 3036 transmits the document file combined by the document file combining unit 3034 to the document processing apparatus 100 via the communication unit 3010.
FIG. 33 shows an example of internal data of the document file management table 3040. The document file management table 3040 is provided with a document file name column 3042 and a correspondence information column 3044 for storing information on the back file to be combined with the document file. The name of the original file may be used as the document file name when accepting a document acquisition request from the user, the name of the table file may be used, and the name of the original file and the table file may be different. In the present embodiment, the original file and the table file have the same name. That is, the table file generated from the original file is stored in the document file storage unit 3050 with the same name as the original file, and can be accessed with the same name as the original file. The correspondence information column 3044 is provided for the number of back files prepared for one table file, and includes an authentication level column 3046 and a back file name column 3048, respectively. The document file dividing unit 3028 generates and stores a plurality of back files when the confidential data to be disclosed is to be changed in stages according to the authentication level of the user, and correspondence between each back file and the authentication level Is registered in the correspondence information column 3044. The document file composition unit 3034 acquires the name of the back file to be combined from the document file management table 3040 according to the authentication level of the user authenticated by the user authentication unit 3032, and reads the back file from the document file storage unit 3050. To compose a table file.
FIG. 34 shows an example of internal data of the user database 3060. The user database 3060 includes a user ID column 3062, a password column 3064, and an authentication level column 3066. The user authentication unit 3032 authenticates whether or not the combination of the user ID and password received from the user matches that registered in the user database 3060. If they match, the user authentication unit 3032 is registered in the authentication level column 3066. Get the authentication level.
Hereinafter, the flow of processing will be described in more detail while specifically showing an example of an XML document processed in the document management system 21 of the present embodiment.
FIG. 35 shows an example of an XML document processed in the document management system 21 of this embodiment. The XML document “sample.xml” is described using a vocabulary “xmail” for describing mail. The root node “xmail” has an element “title” and an element “comment” as child elements. The text node of the element “title” stores the title of the mail, and the text node of the element “comment” stores the body of the mail. The element “comment” has, as a child element, an element “list” that stores a name list. The element “list” has an element “lt” and an element “person” as child elements. The text node of the element “lt” stores the title of the list. A plurality of elements “person” are provided, and each stores personal information. The element “person” has, as child elements, an element “name” that stores a name and an element “address” that stores an address.
FIG. 36 shows an example of a definition file “sample.vcd” for mapping / displaying / editing the XML document shown in FIG. 35 to XHTML. The template 4000 corresponding to the root node “xmail” describes XHTML basic elements “html”, “head”, “body”, and the like, and an element “html / head / title” for storing the title of the XHTML document. Is assigned the element value of the element “xmail: title”. In addition, the element value of the element “xmail: title” is displayed as the heading “h1” at the head of the body “body” of the XHTML document. The template 4002 corresponding to the element “comment” describes that the element value of the element “comment” is displayed in the paragraph “p”. In the template 4004 corresponding to the element “list”, the title of the list stored in the element “xmail: lt” is displayed in the first line of the table “table”, and the character string “name” is displayed in the first column of the second line. However, it is described that the character string “address” is displayed in the second column. In the template 4006 corresponding to the element “person”, the template corresponding to the element “xmail: name” is applied to the first column of each row, and the template corresponding to the element “xmail: address” is applied to the second column. It is described that It is described that the element value of the element “name” is displayed in the template 4008 corresponding to the element “name”, and the element value of the element “addresss” is displayed in the template 410 corresponding to the element “address”. It is described that.
FIG. 37 shows an example of a screen displayed by applying the definition file shown in FIG. 36 to the XML document shown in FIG. As described in the base technology, the XML document “sample.xml” is converted into an XHTML document by the mapping unit 82 of the VC unit 80 using the definition file “sample.vcd” and is displayed by the display unit 56 of the HTML unit 50. Is displayed.
On this screen, the user selects the proper noun strings “Taro Tokushima”, “Hanako Awa”, “Saboku Saburo”, “Wakamatsu Hiraishi, Tokushima City, Tokushima City”, and clicks the pull-down menu or right-click Assume that these data are designated as confidential data using a user interface such as a menu. At this time, a user interface such as a pop-up menu for designating an authentication level of a user permitted to disclose confidential data may be presented. Information such as the confidential data and the authentication level may be notified to the document management server 23 separately from the document file, but in the present embodiment, by marking up the confidential data with a specific tag in the XML document, The confidential data is notified to the document management server 23.
FIG. 38 shows an example of an XML document in which confidential data is marked up. In the XML document “sample.xml” shown in FIG. 38, the data designated as the confidential data is marked up with the “secret” tag, and the authentication level of the user permitted to disclose the confidential data is the attribute value. Is specified as
When the document processing apparatus 100 transmits this XML document to the document management server 23 via the communication unit 26 and requests to save the document, in the document management server 23, the document file reception unit 3022 acquires the XML document, The secret data extraction unit 3024 extracts the secret data. In the XML document shown in FIG. 38, since secret data is stored in the component “xmail: secret”, the secret data extraction unit 3024 extracts the component “xmail: secret”. The ID issuing unit 3026 issues IDs by the number of extracted confidential data. In the example of FIG. 38, since there are six constituent elements “xmail: secret”, six IDs may be issued, but the three secret data stored in the constituent element “xmail: address” are the same. Therefore, four IDs are issued here. The document file dividing unit 3028 separates the confidential data into separate files and divides the XML document into a plurality of files.
FIG. 39 shows an example of a table file generated by the document file dividing unit 3028 dividing the XML document shown in FIG. In the table file, the secret data is removed from the original file, the “anonymous” tag of the “xmail” vocabulary is inserted instead, and the ID of the secret data is stored as the attribute value. The user who acquired this table file can only know the ID of the secret data, and cannot know the substance of the secret data.
FIG. 40 shows an example of the back file generated by the document file dividing unit 3028 dividing the XML document shown in FIG. In the back file “anonymous2.xml”, the ID and the substance of the secret data specified in the original file are described in association with each other by the “anonymous” vocabulary. The component “item” of the “anonymous” vocabulary includes one component “serial” that stores the ID of the secret data and one component “name” that stores the substance of the secret data associated with the ID. .
FIG. 41 shows another example of the back file generated by the document file dividing unit 3028 dividing the XML document shown in FIG. The back file shown in FIG. 40 is combined with a front file when a user whose authentication level is “1” requests acquisition of a document. The back file shown in FIG. 41 has an authentication level of “2”. ”Is synthesized when the user requests acquisition of a document. In the back file of FIG. 40, only the secret data in which the authentication level “1” is designated in the XML document shown in FIG. 38 is described. In the back file of FIG. 41, the secret data in which the authentication level “1” is designated and the secret data in which the authentication level “2” is designated in the XML document shown in FIG. 38 are described.
FIG. 42 shows an example of a definition file in which definitions for synthesizing the back file shown in FIG. 40 are described in the table file shown in FIG. In the definition file, information indicating that the portion described in the “anonymous” vocabulary should be resolved using the back file is described. The document file composition unit 3034 refers to the definition file and composes the front file and the back file. Compared to the contents of the definition file shown in FIG. 36, this definition file has a namespace declaration 4012 of an “anomymous” vocabulary, which is a vocabulary for describing the synthesis of secret data, etc. "Is rewritten to 4014, and similarly, the template of the element" address "is rewritten to 4016.
When the document processing apparatus 100 requests the document management server 23 to acquire the XML document via the communication unit 26, the document acquisition request receiving unit 3030 receives the request, and the user authentication unit 3032 refers to the user database 3060. The user is authenticated to determine the user authentication level. The document file combining unit 3034 acquires the file name of the back file to be combined with the table file of this document from the document file management table 3040 according to the user authentication level, and the table file and back file from the document file storage unit 3050. Read the file. Further, the document file composition unit 3034 reads the definition file described in the table file from the document file storage unit 3050. The document file composition unit 3034 refers to the definition file and resolves the content of the “anonymous” tag with the back file and composes it. In this example, secret data stored in the back file is assigned to the “anonymous” tag. At this time, the document file composition unit 3034 modifies the definition file for compositing the back file with the front file, and generates a definition file for processing the composite file. The document file transmission unit 3036 transmits the generated document file to the document processing apparatus 100.
If the user is not authenticated or if the user authentication level is “0”, the back file is not combined with the front file. In this case, the document file composition unit 3034 may use the table file as a composite file as it is, delete the “xmail: anonymous” tag indicating the confidential data in the table file, and use the confidential data ID or the confidential data instead. A tag for displaying an image such as an icon indicating the presence may be inserted into a composite file. The document file composition unit 3034 deletes the namespace declaration 4012 of the “anomymous” vocabulary from the definition file for compositing the back file with the table file shown in FIG. 42, and the template 4014 of the element “name” and the element “address” In the template 4016, a command for displaying the ID and icon of the confidential data is described, and a definition file for processing the composite file is generated. 43 and 44 show display examples of the generated composite file. In FIG. 43, the secret data is displayed as an ID. In FIG. 44, the confidential data is displayed as an icon.
When the user authentication level is “1”, the back file for the user with the authentication level “1” shown in FIG. 40 is combined with the table file shown in FIG. Of the secret data in the front file, the secret data with IDs of 0001, 0002, and 0003 are resolved by the back file and substituted with actual values, but the secret data with ID of 0004 is not resolved. 45 and 46 show display examples of the generated composite file. In FIG. 45, the secret data is displayed as an ID. In FIG. 46, the confidential data is displayed as an icon.
When the user authentication level is “2”, the back file shown in FIG. 41 is combined with the table file shown in FIG. Since all the secret data in the table file is resolved, the composite file is the same as the original file shown in FIG. This composite file is displayed as shown in FIG. 37 by applying the definition file shown in FIG.
FIG. 47 shows another example of a table file generated by the document file dividing unit 3028 dividing the XML document shown in FIG. In the example of FIG. 47, the “xmail: anonymous” tag inserted instead of the element value of the “xmail: name” element, which is the secret data, has a text node, and substitutes for the secret data such as “anonymous A”. A character string is stored.
FIG. 48 shows an example of a definition file applied to the table file shown in FIG. In the template 4018 of the “xmail: name” element, if there is a text node in the “xmail: anonymous” element, the character string is displayed, and if there is no text node, the ID specified as the attribute value of the “xmail: anonymous” element A command to display is described.
FIG. 49 shows an example of a screen displayed by applying the definition file shown in FIG. 48 to the table file shown in FIG. In the “name” field of the “inventor list”, the values of the text nodes of the “xmail: anonymous” element, that is, “anonymous A”, “anonymous B”, “anonymous C” are displayed. In the column, an ID designated as an attribute value of the “xmail: anonymous” element, that is, “0004” is displayed.
As described above, according to the technique of the present embodiment, important information can be appropriately concealed by dividing a document into a plurality of files according to the constituent elements and storing the files. In addition, it is possible to appropriately control whether or not the confidential data is disclosed according to the user's authority.
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.
The present invention can be used in a document management apparatus that handles confidential data such as proper nouns.
An acquisition unit for acquiring a document;
An issuing unit for issuing an identifier for the proper noun extracted by the extraction unit;
A replacement unit for replacing the proper noun in the document with the identifier;
And a storage unit that stores the proper noun and the identifier in association with each other.
When the document acquisition request is received from a user who has authority to view the proper noun, the information processing apparatus further includes a synthesis unit that reads out the proper noun from the storage unit and combines the proper noun with the document. The document management apparatus according to claim 1.
The document management apparatus according to claim 2, wherein the synthesizing unit selects a proper noun that should be permitted to be browsed according to the authority level of the user and synthesizes the proper noun to the document.
4. The document management apparatus according to claim 1, wherein the storage unit is a file different from the document.
Issuing an identifier for the proper noun extracted by the extraction unit;
Replacing the proper noun in the document with the identifier;
The ability to retrieve documents,
A function of issuing an identifier for the proper noun extracted by the extraction unit;
A function for replacing the proper noun in the document with the identifier;
JP2006545037A 2004-11-12 2005-11-14 Document management apparatus and document management method Granted JPWO2006051966A1 (en)
JPWO2006051966A1 true JPWO2006051966A1 (en) 2008-05-29
JP2006545037A Granted JPWO2006051966A1 (en) 2004-11-12 2005-11-14 Document management apparatus and document management method
JP5429282B2 (en) * 2009-03-24 2014-02-26 日本電気株式会社 Information sharing apparatus, information sharing method, program, and information sharing system
CN104094249B (en) 2012-04-25 2018-09-28 企业服务发展公司有限责任合伙企业 It is transmitted using the file of XML
WO2006051966A1 (en) 2006-05-18