WO2005098666A1 - Processing data and documents that use a markup language - Google Patents
Processing data and documents that use a markup language Download PDFInfo
- Publication number
- WO2005098666A1 WO2005098666A1 PCT/JP2005/007291 JP2005007291W WO2005098666A1 WO 2005098666 A1 WO2005098666 A1 WO 2005098666A1 JP 2005007291 W JP2005007291 W JP 2005007291W WO 2005098666 A1 WO2005098666 A1 WO 2005098666A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- document
- processing apparatus
- tree
- operable
- markup language
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/84—Mapping; Conversion
- G06F16/88—Mark-up to mark-up conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
- G06F40/154—Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
Definitions
- the present invention relates to a data processing technology, and it particularly relates to an apparatus and methods for processing data and documents, especially structured data.
- the World Wide Web also known as the Web
- the Web includes a large data repository of such documents.
- the Web provides information retrieval systems for such documents.
- These documents are often formatted in markup languages, a simple and popular one being Hypertext Markup Language (HTML) .
- HTML Hypertext Markup Language
- Such documents also include links to other documents, possibly located in other parts of the Web.
- An Extensible Markup Language (XML) is another more advanced and popular markup language.
- Simple browsers for accessing and viewing the documents via the Web are developed in an object-oriented programming languages, such as Java.
- Documents formatted in markup languages are typically represented in brows ers and other applications in the form of a tree data structure. Such a representation corresponds to a parse tree of the document.
- the Document Object Model is a well-known tree-based data structure mode 1 used for representing and manipulating documents.
- the document object model provides a standard set of obj ects for representing documents, including HTML and XML documents.
- the DOM includes two basic components, a standard model of how the objects that represent components in the documents can be combined, and a standa d interface for accessing and manipulating them.
- Application developers can support the DOM as an interface to their own specifi c data structures and application program interfaces (APIs) .
- APIs application program interfaces
- a DOM tree is a hierarchd-cal representation of a document based on the contents of the corresponding DOM.
- the DOM tree includes a "root," and one or more "nodes" arising from the root.
- t e root represents the entire document.
- Intermediate nodes could represent elements such as a table and th-e rows and columns in that table, for example.
- the "leaves” of the DOM tree usually represent data, such as text items or images that are not further decomposable. Each node in the DOM tree can be associated with attributes that describe parameters of the element represented by the node, such as font, size, color, indentation, etc.
- HTML while being a commonly used language for creating documents, is a formatting and Layout language. HTML is not a data description language .
- the nodes of a DOM tree that represents an HTML document comprise predefined elements that correspond to HTML formatting tags. Since HTML normally does not provide any data description nor any tagging/labeling of ciata, it is often difficult to formulate queries for data i--n an HTML document . A goal of network designers is to allow Web documents to be queried or processed by software applications.
- Hierarchically organized languages that are display-independent can be queried and processed in such a manner.
- Markup languages such as XML (extensible Markup Language)
- HTML extensible Markup Language
- XML extensible Markup Language
- HTML a well known ad-vantage of XML is that it allows a designer of a document to label data elements using freely definable "tags.” Such data elements can be organized hierarchically.
- an XML document can contain a Document Type Definition (DTD), which is a description of the "grammar” (the tags and their interrelationship) used in the document.
- DTD Document Type Definition
- CSS CSS
- XSL XML style Language
- Xpath provides common syntax and semantics for addressing parts of an XML document.
- An example of the functionality of Xpath is the traversing of a- DOM tree corresponding to an XML document. It provides basic facilities for manipulation of strings, numbers and Booleans characters that are associated with the various representations of the XML document.
- Xpath operates on the abstract, logical structure of an XML document, for example the DOM tree, rather than its surface syntax, for example a syntax of which line or which character position in a sequence.
- Xpath Using Xpath one can navigate through the hierarchical structure, for example, in a DOM tree of an XML document. In addition to its use for addressing, Xpath is also designed to be used for testing whether or not a node in a DOM tree matches a pattezt-rn. Additional details regarding Xpath can be found in http: //www. w3. org/TR/ path . Given the advantages and features already for XML, there is a need for an effective document processing and management system that can handle documents in a markup language, for example XML, and provide a user friendly interface for creating and modifying the documents.
- Extensive Markup Language is particularly suited as a format for compound documents or for cases where data related to a document is used in common with data for other documents via a network and the like.
- Many applications for creating, displaying and editing the XML documents have been developed (see, for example, Japanese Patent Application Laid Open No. 2001- 290804) .
- the vocabulary may be defined arbitrarily. In theory, therefore, there may exist an infinite number of vocabularies. However, it does not serve any practical purpose to provide display/edit environments for exclusive-use with these vocabularies individually.
- the existing XML document processing product specifically designs the screen for the XML input.
- the flexibility of the screen design is limited, in that the existing XML product must be hard coded beforehand.
- XSLT previously was developed as one of the standards of the Style Sheet language. It is a technology that can free a user from hard coding, and is compatible with the applicable methods of displaying XML documents.
- XSLT does not make it possible to edit a XML document only by displaying it.
- existing XML products primarily rely on-. the placement of "Schema.” Therefore, once the scheme is decided first, there is a restriction that only the XML document that corresponding to the schema structure from a top level can be handled. In other words, the system is a rigid system.
- the structure of the entire XML document need not be rigidly decided.
- the compound XML document with various structures can be safely treated by the idea of dividing the XML document into some parts, and dispatching it to an edit module, preferably represented by a plug-in, so that a flexible system can be achieved.
- an edit module preferably represented by a plug-in
- a flexible screen design can be implemented by the user without the restriction of hard coding, and can be edited using
- WYSIWYG The present invention has been made in view of the foregoing circumstances and accordingly provides methods and an apparatus for effectively processing structured data and documents are described in one or more markup languages, for example, an XML-type language.
- Some of the exemplary embodiments of the invention relate to a data processing apparatus that comprises a data acquisition unit operable to receive a document in a first markup language.
- a definition file comprising logic for processing data in said document, said logic including logic for converting a complex editing operation on the document in a second markup language to an equivalent operation in the first markup language is provided.
- a processing unit executes the logic.
- Another aspect of the invention is a document processing apparatus comprising a processing unit operable to process a document described in a first markup language.
- a document converter maps a document to the first markup language if the document is described in a second markup language not conforming to said processing unit.
- Logic operable for performing a subset of the mapping, said subset being involved in mapping a complex editing operation on the document in the second markup language to an equivalent operation in the first markup language is provided. According to this invention, it is possible to provide a technology for effectively processing a document described in one or more markup languages for at least one or more of the purposes of generation, editing, display and/or storage.
- Fig. 1 illustrates in block diagram form a document processing apparatus according to an exemplary but non- limiting embodiment of the present invention.
- Fig. 2 illustrates an example of an XML document.
- Fig. 3 illustrates an example in which the XML document of Fig. 2 is mapped to a table described in HTML.
- Fig. 4 illustrates an example of a definition file to map the XML document of Fig. 2 to the table of Fig. 3.
- Fig. 5 illustrates an example of a display screen when the XML document of Fig. 2 is mapped to HML using the correspondence of Fig. 3.
- Fig. 6 illustrates a graphical user interface useable with the present invention.
- Fig. 1 illustrates in block diagram form a document processing apparatus according to an exemplary but non- limiting embodiment of the present invention.
- Fig. 2 illustrates an example of an XML document.
- Fig. 3 illustrates an example in which the XML document of Fig. 2 is mapped to
- FIG. 7 illustrates a further example of a screen layout -generated in accordance with the present invention.
- Fig. 8 illustrates an edit screen for XML documents, in accordance with the present invention.
- Fig. 9 illustrates another example of an XML document ⁇ edited according to the present invention.
- Fig. 10 illustrates an edit screen useable with the present invention.
- Fig. 11(a) illustrates a conventional arrangement of components that can serve as the basis of an exemplary implementation of the disclosed document processing and management system.
- Figs. 11(b) and 11(c) show an overall block diagram of an exemplary document processing and management system.
- Fig. 12 shows further details of an exemplary implementation of the document manager.
- Fig. 13 shows further details of an exemplary implementation of the vocabulary connection subsystem 300.
- FIG. 14(a) shows further details of an exemplary implementations of the program invoker and its relation with other components.
- Fig. 14 (b) shows further details of an exemplary implementation of the service broker and its relation to other components.
- Fig. 14(c) shows further details of an exemplary implementation of services.
- Fig. 14 (d) shows examples of services.
- Fig. 14(e) shows further details on the relationships between the program invoker and the user application.
- Fig. 15(a) provides further details on the structure of an application service loaded onto the program invoker.
- Fig. 15(b) shows an example of the relationships between a frame, a menu bar and a status bar.
- Fig. l ' ⁇ (a) shows further details related to an exemplary implementation of the application core.
- FIG. 16(b) shows further details related to an exemplary implementation of a snap shot.
- Fig. 17(a) shows further details related to an exemplary implementation of the document manager.
- Fig. 17(b) shows, in the right side, an example of how a set of documents A-E are arranged in a hierarchy, and in the left side, an example of how the hierarchy of documents shown in the right side appears on a screen.
- Figs. 18(a) and 18(b) provide further details of an exemplary implementation of the undo framework and undo command.
- Fig. 19(a) shows an overview of how a document is loaded in the document processing and management system shown in Figs. 11(b) -(c).
- Fig. 19(a) shows an overview of how a document is loaded in the document processing and management system shown in Figs. 11(b) -(c).
- Fig. 19(a) shows an overview of how a document is loaded in the document processing and management system shown in Figs. 11(
- FIG. 19(b) shows a summary of the structure for the zone, using the MVC paradigm.
- Fig. 20 shows an example of a document and its various representations in accordance with the present invention.
- Fig. 21(a) shows a simplified view of the MV relationship for the XHTML component of the document shown in Fig. 20.
- Fig. 21(b) shows a vocabulary connection for the document shown in Fig. 21(a).
- Figs. 22 (a) -22(c) show further details related to exemplary implementations of the plug-in sub-system, vocabulary connections and connector, respectively.
- Fig. 23 shows an example of a VCD script using vocabulary connection manager and the connector factory tree for a file MySampleXML.
- FIG. 24 (a) -(c) show steps 0-3 of loading the example document MySampleXML into the exemplary document processing and management system of Fig. 11(b).
- Fig. 25 shows step 4 of loading the example document MySampleXML into the exemplary document processing and management system of Fig. 11(b).
- Fig. 26 shows step 5 of loading the example document MySampleXML into the exemplary document processing and management system of Fig. 11(b).
- Fig. 27 shows step 6 of loading the example document MySampleXML into the exemplary document processing and management: system of Fig. 11 (b) .
- Fig. 28 shows step 7 of loading the example document MySampleXML into the exemplary document processing and management: system of Fig. 11(b).
- Fig. 25 shows step 4 of loading the example document MySampleXML into the exemplary document processing and management system of Fig. 11(b).
- Fig. 26 shows step 5 of loading the example document MySampleXML into
- 29 (a) shows a flow of an event which has taken place on a node having no corresponding source node and dependent on a destination tree alone.
- Fig . 29 (b) shows a flow of an event which has taken place on a node of a destination tree which is associated with a source node by TextOfConnector .
- FIG . 1 illustrates a structure of a document processing apparatus 20 according to an exemplary but non- limiting embodiment of the present invention.
- the document processing apparatus 20 processes a structured document where data in the document are classified into a plurality of components having a hierarchical structure. Represented in the present embodiment is an example in which an XML document, as one type of a structured document, is processed.
- the document processing apparatus 20 is comprised of a main control unit 22, an editing unit 24, a DOM (Document Object Model) unit 30, a CSS (Cascade Style Sheets) unit 40, an HTML (HyperText Markup Language) unit 50, an SVG (Scalable Vector Graphics) .unit 60 and a VC (Vocabulary Connection) unit 80 which serves as an example of a conversion unit.
- a main control unit 22 an editing unit 24
- a DOM Document Object Model
- CSS CSS
- HTML HyperText Markup Language
- SVG Scalable Vector Graphics
- VC Vehicle Graphics
- these unit structures may be realized by any conventional processing system or equipment, including a CPU or memory of an arbitrary computer, a memory-loaded program, a hardwired chip or the like.
- the main control unit 22 provides for the loading of a plug-in or a framework for executing a command.
- the editing unit 24 provides a framework for editing XML documents. Display and editing functions of a document in the document processing apparatus 20 is realized by plug-ins, and the necessary plug-ins are loaded by the main control unit 22 or the editing unit 24 according to the type of document under consideration.
- the main control unit 22 or the editing unit 24 determines which one or more vocabulary describes the content of an XML document to be processed, by referring to a name space of the document to be processed, and loads a plug-in for display or editing corresponding to the thus determined vocabulary so as to execute the display or the editing.
- an HTML unit 50 which displays and edits HTML documents using a control unit 52, an edit unit 54 and a display unit 56
- an SVG unit 60 which displays and edits SVG documents using a control unit 62, an edit unit 64 and a display unit 66, are implemented as processing units in the 'document processing apparatus 20.
- a display system and an editing system are implemented as plug-ins for each vocabulary (tag set) , so that the HTML unit 50 and the SVG unit 60 are loaded in cooperation with their respective control unit, when an HTML document and a SVG document are edited, respectively.
- compound documents which contain both the HTML and SVG components, are to be processed, both the HTML unit 50 and the SVG unit 60 are loaded.
- the editing unit 24 receives, via an interface, including but not limited to input actions such as a mouse click or key stoke, an event (a triggering event) of an editing instruction from a user, conveys an event to an appropriate plug-in and controls the processings, which may include a redo processing .to re-execute the event and an undo processing to cancel the event.
- the DOM unit 30 includes a DOM provider 32, a DOM builder 34 and a DOM writer 36.
- the DOM unit 30 realizes functions in compliance with a document object model (DOM) , which is defined to provide an access method when XML documents are handled as data.
- the DOM provider 32 is an implementation of a DOM that satisfies an interface defined by the editing unit 24.
- the DOM builder 34 generates DOM trees from XML documents. As will be described later, when an XML document to be processed is mapped to other vocabulary by the VC unit 80, a source tree, which corresponds to the XML document in a mapping source, and a destination tree, which corresponds to the XML document in a mapping destination, are generated.
- the DOM writer 36 outputs a DOM tree as an XML document .
- the CSS unit 40 which provides a display function conforming to CSS, includes a CSS parser 42, a CSS provider 44 and a rendering unit 46.
- the CSS parser 42 has a parsing function for analyzing the CSS syntax.
- the CSS provider 44 is an implementation of a CSS object and performs a CSS cascade processing on the DOM tree.
- the rendering unit 46 is a rendering engine of CSS and is used to display documents ' , described in a vocabulary such as HTML, which are laid out using CSS.
- the HTML unit 50 displays or edits documents described in HTML.
- the SVG unit 60 displays or edits documents described in SVG.
- each system is comprised of a display unit (also designated herein as “canvas”) , which displays documents, a control unit (also designated herein as an “editlet”) , which transmits and receives events containing editing commands, and an edit unit (also designated herein as a "zone”) , which edits the DOM upon receipt of the editing commands.
- a display unit also designated herein as “canvas”
- an edit unit also designated herein as a "zone”
- the control unit receives from an external source an editing command for the DOM tree
- the edit unit modifies the DOM tree and the display unit updates the display.
- MVC Model-View- Controller
- GUI graphical user interface
- the MVC paradigm offers a way of breaking an application, or even just a piece of an application's interface, into three parts; the model, the view, and the controller.
- MVC was originally developed to map the traditional input, processing and output roles into the GUI realm.
- Input > Processing —>
- Output Controller >
- Model > View
- the controller is operative to interpret inputs, such as mouse and keyboard inputs from the user, and map these user actions into commands that are sent to the model and/or viewport to effect an appropriate change.
- the model is operative to manage one or more data elements, respond to queries about its state, and respond to instructions to change state.
- the viewport is operative to manage a rectangular area of a display, and is responsible for present ing data to the user through a combination of graphics and text.
- the display unit (V) corresponds to "View”
- the control unit (C) corresponds to "Controller”
- the edit unit and DOM entity (M) correspond to "Model”.
- the document processing apparatus 20 not only is the XML document edited in the tree-view display format , but also the editing can be done according to the respective vocabularies.
- the HTML unit 50 provides a user interface by which to edit the HTML documents by a method similar to that of a word processor
- the SVG unit 60 provides a user interface by which to edit the SVG documents by a method similar to that of an image drawing tool.
- the VC unit 80 includes a mapping unit 82, a definition file acquiring unit 84 and a definition file generator 86.
- mapping a document described in a certain vocabulary to another vocabulary the VC unit 80 provides a framework to- display or edit the document by a display and editing plug-in corresponding to the vocabulary that is mapped. In the present embodiment, this function is called a vocabulary connection (VC) .
- VC vocabulary connection
- the definition file acquiring unit 84 acquires a definition file in which the definition of a mapping is described.
- the definition file is a script file.
- the document in the first vocabulary is represented as a source tree with nodes.
- the second vocabulary it is represented as a destination tree with nodes.
- the definition file describes connection between nodes in the source tree and the destination tree, for each node.
- nodes in a DOM tree may be defined according to element values and/or attribute values. In this embodiment, it may be specified whether element values or attribute values of the respective nodes are editable or not. Further, in this embodiment, operation expressions using the element values or attribute values of nodes may also be described. These functions will be described later.
- the mapping unit 82 causes the DOM builder 34 to generate the destination, tree by re-ferring to the definition file (script file) that the definition file acquiring unit 84 has acquired, so that the mapping unit 82 manages the correspondence relationships between source trees and destination trees.
- the definition file generator 86 provides a graphical user interface for the user to generate a definition file.
- the VC unit 80 monitors the connection between the source tree and the destination tree. When the VC unit 80 receives an editing instruction from a user via a user interface provided by a plug-in that is in charge of displaying, it first modifies a relevant node of the source tree. As a result, the DOM unit 30 will issue a mutation event indicating that the source tree has been modified.
- the VC unit 80 receives the mutation event and modifies a node of the des ination tree corresponding to the modified node in order to synchronize the destination tree with the modification of the source tree.
- a plug-in for providing the processing necessary to displaying/editing the destination tree such as an HTML unit 50
- the plug-in updates a display by referring to the modified destination tree.
- the DOM builder 34 When the document processing apparatus 20 loads a document to be processed, the DOM builder 34 generates a DOM tree from the XML document.
- the main control unit 22 or the editing unit 24 determines which vocabulary describes the XML document by referring to a name space of the XML document to be processed. If the plug-in corresponding to the vocabulary' is installed in the document processing apparatus 20, the piug-in is loaded so as to display/edit the document. If, on the other hand, the plug- in is not installed therein, a check shall be made to see whether a definition file exists or not.
- the definition file acquiring unit 84 acquires the definition file and generates a destination tree according to the definition, so that the document is displayed/edited by the plug-in corresponding to the vocabulary mapped. If the document is a compound document containing a plurality of vocabularies,- relevant 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, a source or tree structure of a document is displayed and the editing is carried out in the display screen.
- FIG. 2 shows an example of an XML document to be processed. According to this exemplary illustration, the XML document is used to manage data concerning grades or marks that students have earned.
- the component “student” has an attribute "name” and contains, as child elements, the subjects that a-tre “Japanese”, “Math” (mathematics), “Science”, and “Social” (social studies).
- the attribute "name” stores the name of a student.
- the components “Japanese”, “Math”, “Science” and “Social” store the test scores of the subjects, , which are Japanese, mathematics, science, and social studies, respectively.
- the vocabulary (tag set) used in this document will be called "marks managing vocabulary”. Since the document processing apparatus 20 according to the present exemplary embodiment does not have a plug-in which conforms to or handles the display/edit of marks managing vocabularies, the above-described VC facility 80 is used in order to display this document by a dispLay method that does not use the source display and tree display. That 5 is, it is necessary that a " definition file be prepared so that the marks managing vocabulary may be mapped to another vocabulary, for example, HTML or SVG where a plug-in therefor has been prepared. Though a user interface required for a user himself/herself to create the definition
- FIG. 3 shows an example in which the XML document shown in FIG. 2 is mapped to a table described in HTML.
- a "student" node in the marks managing vocabulary is associated to a row ("TR" node)- of a table in HTML ("TABLE" node) .
- the first column in each row corresponds to an attribute value "name”, t e second column to an element value of "Japanese” node, the third column to
- element values are designated as being editable, so that the user can edit these values on a display screen using an editing function _of the HTML unit 50.
- an operation expression by which to calculate a weighted average of marks for Japanese, mathematics, science and social studies is designated, and average values of the marks for each student are displayed. In this manner, more flexible display can be done by making it possible to specify the operation expression in the definition file, thus improving the users' convenience at the time of editing, In this example shown in FIG. 3, editing is ' designated as not possible in the sixth column, so that the average value alone cannot be edited individually.
- the mapping definition it is possible to specify editing or no editing so as to protect the users against possible erroneous operations .
- definition file 4 illustrates an example of definition file to map the XML document shown in FIG. 2 to the table shown in FIG. 3.
- This definition file is described in script language defined for use with definition files.
- definitions of commands and templates for display are described.
- "add student” and “delete student” are defined as commands, and an operation of inserting a node “student” into a source tree and an operation of deleting the node “student” from the source tree are associated thereto, respectivel-y.
- a template describes that a header, such as "name” and
- FIG. 5 shows an example of a display screen when the XML document described by the marks managing vocabulary shown in FIG.
- a command to add or delete rows of a table ' may, for example, be related to an operation of adding or deleting the node "student".
- a command to embed other vocabularies therein may be presented to the user.
- This table may be used as an input template, so that marks data for new students can be added in a fill-in-the-blank format.
- documents described in the marks managing vocabulary can be edited by the VC function while utilizing the display/edit ' function of the HTML unit 50.
- FIG. 6 shows an example of graphical user interface, which the definition file generator 86 presents to the user, in order for the user to generate a definition file.
- An XML document to be mapped is displayed in a tree in a left-hand area 91 of a screen.
- the screen layout of an XML document mapped is displayed in a right-hand area 92 of the screen.
- This screen layout can be edited by the HTML unit 50, and the user determines and creates a screen layout for displaying documents in the right-hand area 92 of the screen.
- a node of the XML document, to be mapped which is displayed in the left-hand area 91 of the screen, is dragged and dropped into the HTML screen .layout in the left- hand area 91 of the screen using a pointing device such as a mouse, so that a connection between a node- at a mapping source and a node at a mapping destination is specified.
- FIG. 7 shows another example of a screen layout generated by the definition file generator 86.
- a table 90 and circular graphs 92 are produced on a screen for displaying XML documents described in the marks managing vocabulary.
- the circular graphs 93 are described in SVG.
- the document processing apparatus 20 can process compound documents described in a plurality of vocabularies within a single XML document.. That is why the table 90 described in HTML and the circular graphs 93 described in SVG can be displayed on a same screen.
- FIG. 8 shows an example of a .medium display, which in a preferred but non-limiting embodiment is an edit screen, for XML documents processed by the document processing apparatus 20.
- a single - screen is partitioned into a plurality of areas and the XML document to be processed is displayed in a plurality of different display formats at . the respective areas.
- the source of the document is displayed in an area 94, the tree structure of the document is displayed in an area 95 and the table shown in FIG. 5 and described in HTML is displayed in an area 96.
- the document can be edited in any of these areas, and when the user edits a content in any of these areas, the source tree will be modified accordingly and then each plug-in in charge of each screen display updates the screen so as to effect the modification of the source tree.
- display units of the plug-ins in charge of displaying the respective edit screens are registered in advance as listeners of mutation events that provide notice of a change in the source tree.
- the source tree is modified by any of the plug-ins or the VC unit 80
- all the display units which are displaying the edit screen, receive the issued mutation event (s) and then update the screens.
- the VC unit 80 modifies. the destination tree by following the modification of the source tree.
- the display unit of the plug-in modifies the screen by referring to the thus modified destination tree.
- the source display and tree-view display are realized by dedicated plug-ins
- the source- display plug—in and the tree-display plug-in realize their display by directly referring to the source tree instead of using the destination tree.
- the source-display plug- in and the tree-display plug-in update the screen by referring to the modified source tree.
- the HTML unit 50 in charge of displaying the area 96 updates the screen by referring to the destination tree, which has been modified following the modification of the source tree.
- the source display and the tree-view display can also be realized by utilizing the VC function. That is, for example, if HTML is used for the layout of the source and tree structures, an XML document may be mapped to the HTML so as to be displayed by the HTML unit 50. In such a case, three destination trees in the source format, the tree format and the table format will be generated.
- the VC unit 80 modifies the source tree and, thereafter, modifies the three destination trees in the source format, the tree format and the table format, respectively.
- the HTML unit 50 updates the three areas of the screen by referring to three destination trees.
- a document is displayed, on a single screen, in a plurality of display formats, thus improving a user's convenience.
- the user can display and edit a document in a visually easy-to-understand format using the table 90 or the like while grasping a hierarchical structure of the document by the source display or the tree display.
- a single screen is partitioned into a plurality of display formats, and they are displayed simultaneously.
- FIG. 9 illustrates another example of an XML document edited by the document processing apparatus 20.
- an XHTML document is embedded in a "foreignObject" tag of an SVG document, and the XHTML document contains an equation described in MathML.
- the editing unit 24 distributes or assigns the drawing job to an appropriate displaying system by referring to thename space.
- FIG. 9 illustrates another example of an XML document edited by the document processing apparatus 20.
- an XHTML document is embedded in a "foreignObject" tag of an SVG document, and the XHTML document contains an equation described in MathML.
- the editing unit 24 distributes or assigns the drawing job to an appropriate displaying system by referring to thename space.
- the editing unit 24 first has the SVG unit 60 draw a rectangle, and then has the HTML unit 50 draw the XHTML document. Furthermore, the editing unit 24 has a MathML unit (not shown) draw an equation. In this manner, the compound document containing a plurality of vocabularies is appropriately displayed.
- FIG. 10 illustrates the resulting display .
- an editing menu may be displayed to the user. The menu may correspond to the portion of the compound document that is to be edited. Thus, ' the menu to be displayed may be switched according to the position of a cursor (carriage) as it is moved by a user from location to location on a display medium.
- the menu present to the user is in response to the SVG unit 60 or a command defined by a definition file, which is used for mapping the SVG documents.
- the menu presented to the user is in response to the HTML unit 50 or a command defined by a definition file, which is used for mapping the XHTML documents.
- an appropriate user interface can be presented according to the editing position. If in the compound document there does not exist an appropriate plug-in or mapping definition conforming to a vocabulary, a portion described in the vocabulary may be displayed in source . or in tree format. In the conventional practice, when a compound document is to be opened where another document is embedded in a certain document, their contents cannot be displayed unless an application to display the embedded document is installed therein.
- the XML documents which are composed of text data
- This is a characteristic of the text-based XML documents or the like.
- data on a part described in other vocabularies in the same document may be referenced for another part described in a certain vocabulary in the compound document.
- a string of. characters embedded in a drawing,- such as SVG may also be candidates to be searched.
- tags belonging to other vocabularies may be used.
- tags that belong to other vocabularies may be mapped using a definition file. For instance, tags such as ⁇ Important" and "Most Important” may be used so as to display a portion surrounding these tags in an emphasized manner, or may be sorted out in the order of importance so as to be displayed accordingly.
- tags such as ⁇ Important" and "Most Important” may be used so as to display a portion surrounding these tags in an emphasized manner, or may be sorted out in the order of importance so as to be displayed accordingly.
- a display unit of the plug-in or the VC unit 80 conforming to a vocabulary that belongs to each node is registered as the listener.
- the DOM provider 32 traces toward a higher hierarchy from the modified node . If there is a registered listener, the DOM provider 32 issues a mutation event to the listener. For example, referring; to the document shown in FIG. 9, if a node which lies lower than the ⁇ html> node is modified, the mutation event is notified to the HTML unit 50, which is registered as a listener to the ⁇ html> node.
- the HTML unit 50 when the display area by the HTML unit 50 becomes larger than before, the HTML unit 50 first draws an area taken care of by the HTML unit 50 itself and then determines the size of the display area. Then, the size of the display area is notified to the component that manages the layout of. a screen so as to request the updating of the layout. Upon receipt of this notice, the component that manages the layout of a screen lays out anew the display area for each plug-in. Accordingly, the displaying of the edited portion is appropriately updated and the overall screen layout is updated.
- a functional structure . to implement the document processing apparatus 20 having the prerequisite technology is detailed below. An exemplary implementation of a document processing and management system is discussed herein with reference to Figs. 11-29. Fig.
- the arrangement may be in a stand alone or networked form, coupling plural terminals and one or more servers together, or otherwise distributed in any one of a variety of manners known in the art.
- the invention is not limited by the arrangement of these components, their centralized or distributed architecture, or the manner in which various components communicate.
- system and the exemplary implementations discussed herein are discussed as including several components and sub-components providing various functionalities . It should be noted that these components and sub-components could be implemented using hardware alone, software alone as well as a combination of hardware and software, to provide the noted functionalities.
- the hardware, software and the combination thereof could be implemented using general purpose computing machines or using special hardware or a combination thereof.
- One component is an "implementation environment” 101 / that is the environment in which the processing and management system operates.
- the implementation environment provides -basic utilities and functionalities that assist the system as well as the user in processing and managing the documents.
- the other component is the "application component” 102, which is made up of the applications that run in the implementation ' environment. These applications include the documents themselves and their various representations.
- Plug-in subsystem 104 is used as a highly flexible and efficient facility to add functions to the document processing and management system.
- Plug-in subsystem 104 can also be used to modify or remove functions that exist in the document processing and management system.
- a wide variety of functions can be added or modified using the plug-in subsystem. For example, it may be desired to add the function "editlet,” which is operative to help in rendering documents on the screen, as previously mentioned and as subsequently " detailed.
- the plug-in editlet also helps in editing vocabularies that are added to the system.
- the plug-in subsystem 104 includes a service broker 1041.
- Commands 1052 that are intended to be executed by the command invoker 1051 are executed unless there is a command already executing in the command invoker. If a command invoker is already executing a command, a new command is placed at the end of the command queue 1053. However, for each command invoker 1051, only one command will be executed at a time.
- the command invoker 1051 ' executes a command exception i_f a specified command fails to be executed.
- the types of commands that may be executed by the command invoker 1051 ' include, but are not limited to, undoable commands 1054, asynchronous commands 1055 and vocabulary connection commands 1056.
- Undoable comi ⁇ ands 1054 are those commands whose effects can be reversed, i-f so desired by a user.
- Resource Resource 109 are objects that provide some functions to various classes. For example, string resource, icons and default key binds are some of the resources used the sys tern.
- the core component 110 provides a way of sharing documents among multiple panes.
- a pane which as discussed subsequently in detail represents a DOM tree, handles the physical layout of the screen.
- a physical screen consists of various panes within the screen that describes individual pieces of information.
- the document which is viewed by a user on the screen, could appear in one or more panes.
- two different documents could appear on the screen in two different panes.
- the physical layout of the screen also is in the form of a tree, as illustrated in Fig. 11(c) .
- a component 1083 is to ' be on a screen as a pane
- the pane could be implemented as a root-pane 1084.
- a user may wish to cut a portion of the document and save it onto a new document for reviewing later on.
- the cut portion is added to the clipboard 1086.
- the snapshot utility 1087 is also described subsequently, and enables a current state of the application to be memorized as the application moves from one ' state to another state.
- Fig. 12 shows further details on the document manager 1081. This includes the data structures and components that are used to represent documents within the document processing and management system. For a better understanding, the components described in this subsection are described using the model view controller (MVC) representation paradigm.
- the document manager 1081 includes ' a document container 203 that holds and hosts all of the documents that are in the document processing and management system.
- a toolkit 201 which is attached to the document manager 1081, provides various tools for the use by the document manager - 1081. For example, "DOM service” is a tool provided by the toolkit 201 that provides all the functionalities needed to create, maintain and manage a DOM corresponding to a document.
- the model (M) includes a DOM tree model 202 for a document. As discussed previously, all documents are represented within the document processing and management system as DOM trees. The document also forms part of the document container 203.
- the DOM tree that represents a document is a tree having nodes 2021.
- a zone 209 which is a subset of the DOM tree, includes one or more nodes of interest within the DOM tree. For example, only a part of a document may be presented on a screen. This part of the document that is visible could be represented using a "zone” 209. Zones are created, handled and processed using a plug-in called “zone factory" 205. While a zone represents a part of a DOM, it could use more than one "namespace.”
- a namespace is a collection or a set of names that are unique within the namespace. In other words, no two names within the namespace can be the same.
- M part of the MVC paradigm. It is used to edit nodes in a zone. Facet 2022 organizes the access to a DOM, using procedures that can be executed ' without affecting the contents of. the zone itself. As subsequently explained, these procedures perform meaningful and useful operations related to the nodes'. Each node 2021 has a corresponding facet 2022. By using facets to perform operations, instead of operating directly on the nodes in a DOM, the integrity of the DOM is preserved. Otherwise, if operations are performed directly on the node, several plug-ins could make changes to the DOM at the same time, causing inconsistency.
- the DOM standard formed by W3C defines a standard interface for operating on nodes, although a specific operation is provided on a per-vocabulary or per-node basis, and these operations are preferably provided as an API.
- the document processing/management system provides such a node- specific API as a facet and attaches the facet to each node. This adds a useful API while conforming to the DOM standard.
- a "vocabulary" is a set of tags, for example XML tags, belonging to a namespace.
- a namespace has a unique set of names (or tags in this specific case) .
- a vocabulary appears as a subtree of a DOM tree representing an XML document. Such a sub-tree comprises a zone.
- boundaries of the tag sets are defined by zones.
- a zone 209 is created using service called a "zone factory service" 205.
- a zone 209 is an internal representation of only a part of a DOM tree that represents a document. To provide access to such a . part of the document, a logical representation is required.
- the canvas 210 which corresponds to the zone 209, is created using the "editlet service" 206.
- a DOM of a document is edited using the editlet service 206 and canvas 210.
- the editlet service 206 and the canvas service 210 use facets 2022 corresponding to the one or more nodes in the zone 209. These services do not manipulate nodes in the zone and the DOMs directly.
- the facet is manipulated using commands 207 from the (C) -component of the MVC paradigm, the controller.
- a user typically interacts with the screen, for example, by moving cursor on the screen, and/or by typing commands.
- the canvas 2010, which provides the logical layout of the screen, recei-ves these cursor manipulations.
- the canvas 2010 then enables corresponding action to be taken on the facets.
- the cursor subsystem 204 serves as the Controller (C) of the MVC paradigm for the document manager 1081.
- the canvas 2010 also has the task of handling events.
- the canvas 201 O handles events such as mouse clicks, focus moves, and similar user initiated actions.
- Zone, facet, canvas and pane represent components of the document management system that correspond to the above-mentioned four perspectives, respectively.
- Undo subsystem As mentioned above, it is desirable that any changes to documents (for example, edits) should be undoable. For example, a user may perform an edit operation and then decide to undo such a change. With reference to Fig. 12, the undo subsystem 212 implements the undoable component of the document manager.
- An undo manager 2121 holds all of the operations on a document that have a possibility of being undone by the user. For example, a user may execute a command to replace a word in a document with another word. The user may then change his mind and decide to retain the original word.
- the undo subsystem 212 assists in such an operation using an undoable edit 2122.
- the undo manager 2121 holds such an undoable edit 2122 operation.
- the operation may extend beyond a single XML operation type, and may involve sequentially changing features of a document in a 'variety of languages, such as XHTML, SVG and MathML, and then undoing the changes in each of those languages.
- a first in-last out operation the most recent changes are cancelled first, regardless of vocabulary used, and then the next most recent change, etc. is cancelled.
- a united undo can be performed in correct order, giving a feeling of a natural and logical operation.
- the controller part of the MVC can comprise the cursor subsystem 204.
- the cursor subsystem 204 receives inputs from the user. These inputs typically are in the nature of commands and/or edit operations. Therefore, the cursor subsystem 204 can be considered to be the controller (C) part of the MVC paradigm relating to the document manager 1081.
- the canvas 2010 represents the logical layout of the document that is to be presented on the screen.
- the canvas may include a box tree 208, which is the logical representation of how the document is viewed on the screen.
- Such a box tree 208 would be included in the view (V) part of the MVC paradigm relating to the document manager 1081.
- Vocabulary Connection A significant feature of the document processing management system is that a document can be represented and displayed in two different ways (for example, in two markup languages) , such that consistency is maintained automatically between the two different representations.
- a document in a markup language for example in XML is created on the basis of a vocabulary that is defined by a document type definition.
- Vocabulary is in turn a set of tags.
- the -vocabulary may be defined arbitrarily. This raises the possibility of having an infinite number of vocabularies. But then, it is impractical to provide separate processing and management environments that are exclusive for each of the multitude of possible vocabularies Vocabulary connection provides a way of overcoming this problem. For example, documents could be represented in two or more markup languages.
- the documents could, for example, be in XHTML (eXtensibel HyperText Markup Language) , SVG (Scalable Vector Graphics) , MathML (Mathematical Markup Language), or other mark up languages.
- a markup language could be considered to be the same as a vocabulary and. tag set in XML.
- a vocabulary is implemented using a vocabulary plug-in.
- a document described in a vocabulary, whose plug-in is not available within the document processing and management system, is displayed by mapping the document to another vocabulary whose plug-in is available. Because of this feature, a document in a vocabulary, which is not plugged-in, could still be properly displayed.
- Vocabulary connection includes capabilities for acquiring definition files, mapping between definition files (as defined subsequently) and for generating definition files.
- a document described in a certain vocabulary can be mapped to another vocabulary.
- vocabulary connection provides the capability to display or edit a document by a display and. editing plug-in corresponding to the vocabulary to which the document has been mapped.
- each document is described within the document processing and management system as a DOM tree, typically having a plurality of nodes.
- a "definition file" describes for each node the connections between such node and other nodes. Whether the element values and attribute values of each, node are editable is specified. Operation expressions using the element' values or attribute values of nodes may also be described.
- a destination DOM tree is created that refers to the definition file.
- Vocabulary connection monitors the connection -between a source DOM tree and a destination DOM tree.
- vocabulary connection modifies a relevant node of the source DOM tree.
- a "mutation event” which indicates that the source DOM tree has been modified, is issued and the destination DOM tree is modified accordingly.
- a vocabulary connection subsystem that is part of the document management system provides the functionality for making a multiple representation of the documents possible.
- Fig. 13 shows the " vocabulary connection (VC) subsystem 300.
- the VC system 300 provides a way of maintaining consistency between two alternate representations of the same document.
- the same components as previously illustrated and identified, appear and are interconnected to achieve that purpose.
- the two representations could be alternate representations of the same document in two different vocabularies.
- vocabulary connection 301 changes to a zone 209 in a source DOM tree is transferred to a corresponding zone in another DOM tree 306 using conversion rules.
- the conversion rules are written in the form of vocabulary connection descriptors (VCD) .
- VCD vocabulary connection descriptors
- Connector A connector 304 connects a source node in source DOM tree and a destination node in a destination DOM tree. Connector 304 is operative to view the source node in the source DOM tree and the modifications (mutations) to the source document that correspond to the source node. It then modifies the nodes in the corresponding destination DOM tree, Connectors 304 are the only objects that can modify the destination DOM tree. For example, if a user can make modifications only to the source document and the corresponding source DOM tree, the connectors 304 then make the corresponding modifications in the destination DOM tree. Connectors 304 are linked together logically to form a tree structure, as illustrated in Fig. 13.
- Connectors 304 are created using a service called the "connector factory" 303 service.
- the connector factory 303 creates connectors 304 from the source document and links them together in the form of a connector t-cee .
- the vocabulary connection manager 302 maintains the connector factory 303.
- a vocabulary is a set of tags in a name . space.
- a vocabulary 305 is created for a document by the vocabulary connection 301. This is done by parsing the document file and creating an appropriate vocabulary connection manager 302 for the transfer between the source DOM and destination DOM.
- Vocabulary plug- ins are provided for major vocabularies, for example XHTML, SVG and MathML.
- the vocabulary plug-ins are used in relation to target vocabularies. They provide a way for mapping among vocabularies using the vocabulary connection descriptors . Such a mapping makes sense only in the context of a target vocabulary that is mappable and has a pre-defined way of being rendered on the screen. Such ways of rendering are industry standards, for example XHTML, which are defined by organizations such as W3C.
- a vocabulary connection canvas is used. In such cases, the source canvas is not created, as the view for the source cannot be created directly. In such a case a "vocabulary connection canvas is created using a connector tree. Such a vocabulary connection canvas handles only event conversion and does not assist in the rendering of a docnce on the screen.
- the purpose of the vocabulary connection subsystem is to create and maintain concurrently two alternate representations for the same document.
- the second alternate representation also is in the form of a DOM tree, which previously has been introduced as a destination DOM tree.
- destination zones, canvases and panes are required.
- corresponding destination panes 307 are created, as illustrated in Fig. 13.
- the associated destination canvas 308 and the corresponding box tree 309 are created.
- the vocabulary connection canvas is also associated with the pane 211 and zone 209 for the source document. Destination canvas 308 provides the logical layout of the document in the second representation.
- destination canvas 308 provides user interface functions, such as cursor and selection, for rendering the document in the destination representation. Events that occurred on the destination canvas 308 are provided to the connector. Destination canvas 308 notifies mouse events, keyboard events, drag and drop events and events original to the vocabulary of the destination (or the second) represent tion of the document to the connectors 304.
- Vocabulary connection command subsystem An element of the vocabulary connection subsystem 300 of Fig. 13 is the vocabulary connection command subsystem 313.
- Vocabulary connection command subsystem 313 creates vocabulary connection commands 315 that are used for implementing instructions related to the vocabulary connection subsystem 300.
- Vocabulary connection commands can be created using built-in command templates 3131 and/or by creating the commands from scratch using a scripting language in a scripting system 314. Examples of command templates include an "If" comm-and template, a "When" command template, an "Insert fragment” command template, and the ' like. These templates are used to create vocabulary connection commands.
- the source DOM tree is a DOM tree or a zone that represents a document in a vocabulary prior to conversion to another vocabulary.
- the nodes in the source DOM tree are referred to as source nodes.
- the destination DOM tree represents a DOM tree or a zone for the same document in a different vocabulary after conversion using the mapping, as described previously in relation to vocabulary connection.
- the nodes in the destination DOM tree are called destination nodes.
- the connector tree is a hierarchical representation that is based on connectors, which represent connections between a source node and a destination node. Connectors view the source nodes and the modifications made to the source document. They then modify the destination DOM tree.
- Event-driven programming In this paradigm, all user actions belong to an abstract set of things called "events.” An event describes, in sufficient detail, a particular user action. Rather than the program actively ⁇ collecting user-generated events, the system notifies the program when an interesting event occurs. Programs that handle user interaction in this fashion are said to be “event driven . " This is often handled using an Event class, which captures the fundamental characteristics of all user- generated events. The document processing and management system defines and uses its own events and the way in which these events are handled. Several types of events are used.
- the destination canvas 1106 receives the existing events, like mouse events, keyboard- events, drag and drop events and events original to the vocabulary. These events are then notified to the connector 1104. More specifically, the event flow within the vocabulary connection plug in 301 goes through source pane 1103, vocabulary canvas 1104, destination pane 1105, destination canvas 1106, destination DOM tree and the connector tree 1104, as illustrated in Fig. 21.
- Program Invoker and its relation with other components The program invoker 103 and its relation with other components is shown in Fig. 14(a) in further detail.
- Program invoker 103 is the basic program in the implementation environment that is executed to start the document processing and management system.
- the user application 106, service broker 104, the command invoker 1051 and the resource 109 are all attached to the program invoker 103, as illustrated in Fig. 14(b).
- the application 102 is the component that runs in the implementation environment.
- the service broker 104 manages the plug-ins that add various functions to the system.
- the command invoker 1051 on the other hand, maintains the classes and functions that are used to execute commands, thereby implementing the instructions provided by a user.
- the service broker 104 is responsible for and maintains all plug-ins. Plug-ins can be physically added to the system, or its functionality can be loaded from a storage. Once the content of a plug-in is loaded, the service broker 104 defines the corresponding plug-in. A corresponding user application 106 is created that then gets loaded onto the implementation environment 101 and gets attached to the program invoker 103.
- Fig. 15 (a) provides further details on the structure of an application service loaded onto the program invoker 103.
- a command invoker 1051 which is a component of the command subsystem 105, invokes or executes commands 1052 within the program invoker 103. Commands 1052 in turn are instructions that are used for processing documents, for example in XML, and editing the corresponding XML DOM tree, in the document processing and management system.
- the command invoker 1051 maintains the functions and classes needed to execute the commands 1052.
- the service broker 1041 also executes within the program invoker 103.
- the user application 106 in turn is connected to the user interface 107 and the core component 110.
- the core component 110 provides a way of sharing documents among all the panes.
- the core component 110 also provides fonts and acts as a toolkit for the panes.
- Figs. 15(a) and (b) show the relationships between a frame 1071, a menu bar 1072 and a status bar 1073.
- Application Core Fig. 16(a) provides additional explanations for the application core 110 that holds all the documents and the data that are part of and belong to the documents.
- the core component 110 is attached to the document manager 1081 that manages the documents 1082.
- Document manager 1081 is the proprietor of all the documents 1082 that are stored in the memory associated with the document processing and management system. To facilitate the display of the documents on the screen, the document manager 1081 is also connected to the root pane 1084.
- Clip-board 1085, snapshot 1087, drag & drop 601 and overlay 602 functionalities are also attached to the core component 110.
- Snap shot 1087 as illustrated in Fl . 16(b), is used to undo an application state. When a user invokes the snap shot function 1087, the current state of the application is detected and stored.
- FIG. 17(a) provides further explanation for the document manager 1081 and how documents are organized and held in the document manager.
- the document manager 1081 manages documents 1082.
- one of the plurality of documents is a root document 701 and the remaining documents are subdocuments 702.
- the document manager 1081 is connected to the root document 701, which in turn is connected to all the sub-documents 702.
- the document manager 1081 is coupled to the document container 203, which is an object that hosts all the documents 1082.
- the tools that form part of the toolkit 201 (for example XML toolkit) , including DOM service 703 and the 10 manager 704, are also provided to the document manager 1081.
- the DOM service 703 creates DOM trees based on the documents that are managed by the document manager 1081.
- Each document 705, whether it is the root document 701 or a subdocument 702, is hosted by a corresponding document container 203.
- Fig. 17(b) shows an example of how a set of documents A-E is arranged in a hierarchy.
- Document A is a root document.
- Documents B-D are sub documents of document A.
- Document E in turn is a subdocument of document D.
- the undo manager 706 and the undo wrapper 707 are used to implement the undoable command.
- changes made to a document using an edit operation can be undone.
- a change in a sub—document has implications with respect to the root document as well.
- the undo operation takes into account the changes affecting other documents within the hierarchy and ensures that consistency is maintained among all the documents in the chain of hierarchy, as illustrated in Fig. 17(b), for example.
- the undo wrapper 707 wraps undo objects that relate to the sub-documents in container 203 and couples them with undo objects that relate to the root document.
- the undo manager 706 and the undo wrapper 707 are connected to the undoable edit acceptor 708 and undoable edit source 708.
- the document 705' may be the undoable edit source 708, and thus a source of undoable edit objects.
- Undo command and undo framework Figs. 18(a) and 18(b) provide further details on the undo framework and the undo command.
- undo command 801, redo command 802, and undoable edit command 803 are commands that can be queued in the command invoker 1051, as illustrated in Fig. 11(b), and executed accordingly.
- the undoable edit command 803 is further attached to undoable edit source 708 and undoable edit acceptor 709. Examples of undoable edit commands are a "foo" edit command 803 and "bar" edit command 804.
- Fig. 18(b) shows the execution of an undoable edit command. First, it is assumed that a user edits a document 705 using an edit command.
- the undoable edit acceptor 709 is attached to the undoable edit source 708, which is a DOM tree for the document 705.
- the document 705 is edited using DOM APIs.
- a mutation event listener is notified that a change has been made. That is, in this step a listener that monitors all the changes in the DOM tree detects the edit operation.
- the undoable edit is stored as an object with the undo manager 706.
- the undoable edit acceptor 709 is detached from the source 708, which may be the document 705 itself.
- Fig. 19 shows an overview of how a document is loaded in the document processing and management system. Each of the steps are explained in greater detail with reference to a specific example in Figs. 24-28.
- -the document processing and management system creates a DOM tree from a binary data stream consisting of the data contained in the document. An apex node is created for a part of the document that is of interest and resides in a "zone", and a corresponding "pane” is then identified. The identified pane creates "zone” and "canvas” from the apex node and the physical screen surface.
- the "zone” in turn create , "facets" for each of the nodes and provides the needed information to them .
- the canvas creates data structures for rendering the nodes from the DOM tree. Specifically, with reference to Fig. 19(a), a compound document representing both SHTML and SVG content is loaded from storage 901 in a "step 0." A DOM tree 902 for the document is created. Note that the DOM tree has an apex node 905 (XHTML) and that, as the tree descends to other branches, a boundary is encountered as designated by a double line, followed by an apex node 906 for a different vocabulary, SVG. This representation of the compound document is useful in understanding the manner in which the document is represented and ultimately rendered for display.
- a corresponding document container ' 903 is created that holds the document.
- the document container 903 is then attached to the document manager 904.
- the DOM tree includes a root node and, optionally, a plurality of secondary nodes. Typically such a document includes has both text and graphics. Therefore, the DOM tree, for example, could have an XHTML sub tree as well as. an SVG sub tree.
- the XHTML sub tree has an XHTML apex node 905.
- the SVG sub tree has an SVG apex node 906.
- the apex node is attached to a pane 907, which is the physical layout for the screen.
- 19(b) shows a summary of the structure for the zone, using the MVC paradigm.
- the model (M) in this case includes the zone and the facets that are created by the zone factory, since these are the inputs related to a document.
- the view (V) corresponds to the canvas and the data structure for rendering the document on the screen using editlets, since these renderings are the outputs that a user sees on the screen.
- the control (C) includes the commands that are included in the canvas, since the commands perform the control operation on the document and its various relationships.
- Non- apex nodes are represented by non-shaded circles. Facets, that are used to edit nodes, are . represented by triangles and are attached to the corresponding nodes. Since the document has text and pictures, the DOM tree for this document includes an XHTML ' portion and an SVG portion.
- the apex node 1004 is the top-most node for the XHTML sub tree. This is attached to an XHTML' pane 1005, which is the top most pane for the physical representation of the XHTML portion of the document .
- the apex node is also attached to an XHTML zone 1006, which is part of the DOM tree for the document 1001.
- the facet 1041 corresponding to the node 1004 is also attached to the XHTML zone 1006.
- the XHTML zone 1006 is in turn attached to the XHTML pane 1005.
- An XHTML editlet creates an XHTML canvas 1007, which is the logical representation for the document.
- the XHTML canvas 1007 is attached to the XHTML pane 1005.
- the XHTML canvas 1007 creates a box tree 10 O 9 for the XHTML component of the document 1001, the bo-x tree being represented by appropriate combinations of a html Box, • body Box, head Box and/or table Box as illustrated.
- Various commands 1008, which are required to maintain and render the XHTML portion of the document are also added to the XHTML canvas 1005.
- the apex node 1010 for the SVG sub-tree for the document is attached to the SVG zone 1011, which is part of the DOM tree for the document 1001 that represents the SVG component of document.
- the apex node 1010 is attached to the SVG pane 1013, which is the top most pane for the physical representation of the SVG portion of the document.
- SVG canvas 1012 which represents the logical representation of the SVG portion of the document, is created by the SVG editlet and is attached to the SVG pane 1013-
- Data structures and commands 1014 for rendering the SVG portion of the document on the screen are attached to the SVG canvas 1012.
- such a data structure could include circles, lines, rectangles, etc., as shown.
- Fig. 21(a) provides a simplified view of the MV relationship for the XHTM component for the document 1001.
- the model is an XHTM zone 1103 for the XHTML component of the document 1001. Included in the XHTML zone tree are several nodes and their corresponding facets.
- the corresponding XHTML zone and the pane are part of the model (M) portion of the MVC paradigm.
- the view (V) portion of the MVC paradigm is the corresponding XHTML 1102 canvas and the box tree for the HTML component of the document 1001.
- the XHTML portion of the documents is rendered to the screen using the canvas and the commands contained therein.
- the events, ' such as keyboard and mouse inputs, proceed in the reverse directions as shown.
- the source pane has an addition l function, that is, to act as a DOM holder.
- Fig. 21 (b) provides a vocabulary connection for the component of the document 1001 shown in Fig. 21(a).
- a source pane 1103, actin ⁇ g as the source DOM holder, contains the source DOM tree for the document.
- a connector tree 1104 is created by the connection factory, which in turn creates a destination pane 1105, that also serves as a destination DOM holder.
- the destination pane 1105 is then laid out as an XHTML destination canvas 1106 in the form of a box tree.
- Figs. 22 (a) -(c) shows additional details related to the plug-in sub-system, vocabulary connections and connector, respectively.
- the plug-in subsystem system is used to add or exchange functions with the document processing and management system.
- the plug-in sub-system includes a service broker 1041.
- a VCD file of "My Own XML vocabulary” is compled to a VC Base plug-in, comprising a MyOwnXML connector factory tree and vocabulary (Zone Factory, Editlet).
- the zone factory service 1201 which is attached to the service broker 1041, is responsible for creating zones for parts of the document.
- the editlet service 1202 is also attached to the service broker.
- the editlet service 1202 creates canvases corresponding to the nodes in the zone.
- zone factories are XHTML zone factory 1211 and SVG Zone factory 1212, .which create XHTML zones and SVG zones, respectively.
- the textual component of the document could be represented by creating an XHTML zone and the pictures could ,be represented using the SVG zone.
- Examples of editlet services include XHTML editlet 1221 and SVG editlet 1222.
- Fig. 22(b) shows additional details related to vocabulary connection, which as described above, is a significant feature of the document processing and management system that enables the consistent representation and display of documents in two different ways.
- the vocabulary connection manager 302 which maintains the connector factory 303, is part of the vocabulary connection subsystem and is coupled to the VCD to receive vocabulary connection descriptors and to generate vocabulary connection commands 301. As illustrated in Fig. 22(c), the connector factory 303 creates connectors 304 for the document. As discussed earlier, connectors view nodes in the source DOM and modify the nodes in the destination DOM to maintain consistency between the two representations. Templates represent conversion rules for some nodes. In fact, a vocabulary connection descriptor file is a list of templates that represent some rules for converting an element or a set of elements that satisfy certain path- or rules to other elements. The vocabulary template 305 and command template 3131 are all attached to the vocabulary connection manager 302.
- the vocabulary connection ma ⁇ ager is the manager object of all sections in the VCD file.
- One vocabulary connection manager object is created for or ⁇ ⁇ e VCD file .
- Fig. 22 (c) provides additional details related to the connectors.
- Connector factory 303 creates connectors from the source document. .
- the connector factory is attached to vocabulary, templates and element templates and creates vocabulary connectors, template connectors and element connectors, respectively.
- the vocabulary connection manager 302 maintains the connector factory 303.
- To create a vocabulary the corresponding VCD file is read.
- the connector factory 303 is then created.
- This connector factory 303 is associated with the zone factory 205 that is responsible for creating the zones and the editlet service 206 that is responsible for creating the canvas.
- the editlet service for the target vocabulary th-en creates a vocabulary connection canvas.
- the vocabulary connection canvas creates nodes for the destination DOM tree.
- the vocabulary connection canvas also creates the connector for the apex element in the source DOM tree or the zone.
- the child connectors are then created recursively as needed.
- the connector tree is created by a set of templates in the VCD file.
- the templates in turn are the set of rules for converting elements of a markup language into other elements
- each template is matched with the source DOM tree or zone.
- an apex connector is created. For example, a template "A/*/D" watches all the branches of the tree starting with a node A and ending with a node D, regardless of what the nodes are in between. Likewise "//B” would correspond to all the "B” nodes from the root .
- Example of a VCD file related connector trees An example explaining the processing related to a. specific document follows.
- a document titled MySampleXJML is loaded into the- document processing system.
- Fig. 23 shows an example of VCD script using vocabulary connection manager and the connector factory tree for the file MySampleXML---.
- the vocabulary section, the template section within the script file and their corresponding components in the vocabulary connection manager are shown.
- label "MySampleXML”
- call-template "sampleTemplate”
- the vocabulary includes apex element as "sample: root” in the vocabulary connection manager for MySampleXML.
- the corresponding UI label is "MySampleXML.
- the tag is vcd: template and the name is "sample template.”
- Figs. 24-28 show a detailed description of loading the document MySampleXML.
- the document is loaded from storage 1405.
- the DOM service creates a DOM tree and the document manager 1406 a corresponding document container 1401.- The document container is attached to the document manager 1406.
- the document includes a subtree for XHTML and MySampleXML.
- the XHTML apex node 1403 is the top-most node for XHTML with the tag xhtml: html.
- mysample Apex node 1404 corresponds to mySampleXML with the tag sample: root.
- step 2 shown in Fig.
- the root pane creates XTML zones, facets and canvas for the document.
- a pane 1407, XHTML zone 1408, XHTML canvases 1409 and a box tree 1410 are created in correspondence with the apex node 1403 and other nodes along with their related facet, in steps 1-5, according to the relationships as illustrated in the Figure.
- step 3 shown in Fig. 24(c), ' the XHTML zone finds a foreign tag "sample : root” and creates a sub pane from a region on the html canvas.
- Fig. 25 shows step 4, where the sub pane 1501 gets a corresponding zone factory that can handle the "sample : root” tag and create ' appropriate zones.
- Such a zone factory will be in ' a vocabulary that can implement the zone factory. It includes the contents of the vocabulary section in MySampleXML.
- Fig. 26 shows step 5, where vocabulary corresponding to MySampleXML, and in ' connection with the VC Manager, creates a default zone 1601.
- a corresponding editlet is created and provided to sub pane 1501 to create a corresponding canvas.
- the editlet creates the vocabulary connection canvas. It then calls the template section, to which the connector factory tree is . also coupled.
- the connector factory tree creates all the connectors, which are then made into the connector tree that forms a part of the VC Canvas.
- Fig. 27 shows step' 6, where each connector then creates the destination DOM objects.
- Some of the connectors include xpath information.
- the xpath information includes one or more xpath expressions that are used to determine the subsets of the source DOM tree that need to be watched for changes/modifications.
- step 7 shows step 7, where the vocabulary makes a destination pane for the destination DOM tree from the pane for the source DOM. This is done based on the source pane.
- the apex node of the destination tree is then attached to the destination pane and the corresponding zone.
- the destination pane is then provided with its own editlet, which in turn creates- the destination canvas and constructs the data structures and commands for rendering the document in the destination format.
- Fig. 29(a) shows a flow of an event, which has taken place on a node having no corresponding source node and dependent on a destination tree alone.
- events acquired by a canvas such as a mouse event and a keyboard event pass through a destination tree and are transmitted to ElementTemplateConnector.
- ElementTemplateConnector does not have a corresponding source node, so that the transmitted event is not an edit operation on a source node. In case the transmitted event matches a command described in CommandTemplate, ElementTemplateConnector executes a corresponding action in second and third steps. Otherwise, ElementTemplateConnector ignores the transmitted event.
- Fig. 29(b) shows a flow of an event, which has taken place on a node of a destination tree that is associated with a source node by TextOfConnector . TextOfConnector acquires a text node from a node specified by XPath of a source DOM tree and maps the text node to a node of the destination DOM tree.
- TextOfConnector maps the transmitted event to an edit command of a corresponding source node and stacks the command in a queue 1053.
- the edit command is a set of API calls of DOM executed via a facet.
- TextOfConnector rebuilds a destination tree in a fourth step so as to reflect the modification to the source node on the corresponding destination node.
- a template including TextOfConnector includes a control statement, such as "for each" and “for loop”, ConnectorFactory reevaluates the control statement. After TextOfConnector is rebuilt, the destination tree is rebuilt.
- the embodiment describes characteristic feature of a VC unit 80.
- the VC unit 80 has a command template (instruction) to implement various features and has the features listed below.
- edit logic may be described in a definition file where a mapping rule is described.
- the following describes a method of describing edit logic in a definition file and specifications of features.
- a "vcd: insert" element is an instruction to insert a fragment or content indicated by a select attribute into a specific position of a source document. The specified fragment does not inherit an externally described namespace node. Thus, in case a namespace is used as well as an element name and an attribute name in a fragment, its prefix should be defined in the fragment.
- the insert position is specified as described below by way of a range represented by a ref attribute or a reference node and a position attribute .
- the position attribute is not specified or if it is "before” the fragment or content is inserted just before the reference node.
- the position attribute is "after”, the fragment or content is inserted just after the reference node .
- the position attribute is "first-child”
- the fragment or content is inserted as a first child of the reference node.
- the position attribute is "last-child”
- the fragment or content is inserted as a last child of the reference node.
- the position attribute is "cursor”
- a cursor position is used as a boundary to split the reference node and the fragment or content is inserted into the split position.
- the inserted fragment is coupled to the preceding and following nodes .
- the position attribute is other than "cursor" and there exist a plurality of reference nodes, all the nodes are used as a reference to inset the same fragment into respective positions. After the instruction is executed, the cursor position moves to a position just before the inserted fragment .
- a "vcd: delete” element performs the following delete processing on the result of evaluation of an expressionindicated by a select attribute.
- the evaluation result represents a range
- a text and a node included in the range are deleted.
- the evaluation result is a node set
- all nodes included in the node set are deleted.
- the evaluation result is a range and the range is folded, the character at the cursor position is deleted.
- the backspace attribute is not specified or if it is "no”, a character to the right of the cursor position is deleted.
- backspace attribute is "yes", a character to the left of the cursor position is deleted.
- a "vcd: copy-selection” element is an instruction which copies a selected range as a fragment.
- a "vcd: template-dialog” element is an instruction to activate a dialog which assumes conversion by way of a VCD template.
- the activated dialog uses a copy of a node specified using a source attribute as a source tree and performs display/edit processing by using a template having a name specified by a call-template attribute or its own content as a template.
- a node specified by the source attribute is copied so that editing in a dialog is not ' directly reflected on the source.
- a width attribute and a height attribute are respectively the height and width of a dialog to be activated and specified in integer pixel values, In case specification is not made, an appropriate size is set to match the parent frame.
- the result of activating a dialog is stored in a variable specified by a return-to attribute and may be referenced in a subsequent instruction. The result is the following fragment.
- ELEMENT is a result of displaying/editing a sub tree from the node specified by a model attribute and below in a dialog.
- > ⁇ /ELEMENT> ⁇ vcd: dialog-result is-closed-with-command "true"/>
- An is-closed-with-command attribute of an "instruction: dialog-result" element represents whether the dialog has been closed by a command: dialog-close command.
- An "instruction: load-document” element is an instruction which link-jumps to a document of URI specified by an href attribute. Just as the case with html: a, it is possible to specify a target frame loaded by a target attribute.
- An attribute template can be described in the href attribute and the expression is evaluated with the node at the caret position being a context node.
- An "instruction: load-document” element forms a sub document having a fragment specified as a select attribute or a content.
- the created sub document is mapped to the URI specified by the href attribute and can be referenced by a document function.
- An "instruction: save-document” instruction is an instruction to save a Document node specified by a select attribute into a URL specified by an href attribute. In case a select attribute is nonexistent, a Document node as an ancestor of a context node is saved. Even when this instruction is executed, the document save-to URL is not changed.
- An "instruction: execute-script” element is an instruction to execute a content text as a script written in a script language indicated by a language attribute. Any script language, for example ECMAScript can be indicated.
- the operable object are as follows: apex: APEX element of the edit target (corresponding JANA class: org. chimaira. common. dom. Element ) doc: Document of DOM to be edited (corresponding JAVA cl ass : org. chimaira. common. dom. Document) caret: Position indicating the current cursor position (corresponding JAVA class: org. chimaira . common, dom. ranges . Position) For methods available for each object, refer to the corresponding JAVA class or interface.
- A. new scheme is one of the unique URL schemes provided by the document processing/management system and is used for creating a new file.
- the XML document does not essentially include a null instance (at least a rout element is required) , so that a new document must be created by writing a document prepared based on editing an XML document into another file, as long as XML is edited as XML.
- the new scheme is used to read some original document as a template for creating a new document.
- the new scheme provides a method for specifying a URL used to save the new document.
- A. new-instance vocabulary is one used to describe a template for a new document read in the new scheme. This vocabulary is used to describe a prototype of a new document in the definition file of vocabulary connection.
- a name attribute is an ID for identifying "new- fragment" . This ID is used in case a fragment is specified from the new scheme.
- the save-url attribute specifies a destination URL. This attribute works the same way as the save-url query of the new scheme. In case both are specified, the new scheme is given priority.
- an XPath expression encircled by braces ( ⁇ ) exists in .
- an attribute value the result of evaluation of the XPath expression assuming the save-url attribute as a context node is used as a value.
- the URL described here may be a relative path from a document having new-fragment.
- the type attribute specifies handling of a content fragment.
- the content is handled as new-fragment- contents.
- the type attribute is vcd
- the content is handled as a VCD template.
- the new-fragment-contents is the XML fragment of the template of a new document which constitutes the new- fragment element. Basically it is an XML fragment and must satisfy: *PI (Pis) may exist just below the new-fragment element . *One element just below the new-fragment element exists necessarily, not 0 or two or more elements. *Only null text exists below the new-fragment element.
- an XML document is embedded in the content of the new-fragment element.
- a new-fragment element having the identical name attribute value is retrieved from a file specified as a template and the contents from the element and below (new-fragment-contents) are used as a new XML document.
- an XPath expression encircled by braces ( ⁇ ) is evaluated. The expression may be described in a PI string or attribute value. The remaining portions are not evaluated.
- the context node used to evaluate an XPath expression is a node which owns the expression.
- An event attribute describes an XPath expression which evaluates an event object sent to the [vcd: action] element as a Boolean representation.
- An event object may be evaluated as a tree fragment value and its tree fragment representation depends on an event- types.
- An instruction :param element describes a parameter received from an event and used by an instruction. The event object may be received as the parameter name event : event .
- An instruction for example, one which can be described in vcd-command, can be specified as an instruction element.
- [vcd: action] element the operation of a user agent on the event as a default is invalid.
- An event bubbles in a destination tree an event propagates from the event target node to the route node) and only the. first conforming action is executed.
- the event target node can be referenced using the variable event: target in an XPath expression of the event attribute. This variable may be received as a parameter and referenced from an instruction. For example, the user can assign an action to an event of pressing a "validation" key.
- a VC unit 180 When logic mentioned above is described in a definition file, a VC unit 180 performs the operation in accordance with the aforementioned specifications to implement these features. While instructions to describe the executable logics are provided in the VC unit 180, an instruction may be added to the VC unit 180 by using a definition file or a plug-in. When a definition file or a plug-in including an additional instruction is loaded, an instruction is registered to a VC command 315 of a VC command subsystem 313, and the additional instruction is made available thereafter.
- the invention has been described based on the embodiments which are only explanatory. It is understood by those skilled in the art that there exist other various modifications to the combination of each component and process described above and that such modifications are encompassed by the scope of the invention. While the above embodiments have been explained using an example in which XML documents are to be processed, the document processing apparatus 20 according to the embodiments may similarly be capable of processing documents described in other markup languages such as SGML and HTML.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Document Processing Apparatus (AREA)
Abstract
Description
Claims
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP05729898A EP1743254A4 (en) | 2004-04-08 | 2005-04-08 | Processing data and documents that use a markup language |
JP2006535900A JP2007532987A (en) | 2004-04-08 | 2005-04-08 | Data and document processing using markup languages |
US11/547,706 US20080134019A1 (en) | 2004-04-08 | 2005-04-08 | Processing Data And Documents That Use A Markup Language |
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004-114524 | 2004-04-08 | ||
JP2004114524 | 2004-04-08 | ||
US59236904P | 2004-08-02 | 2004-08-02 | |
US60/592,369 | 2004-08-02 | ||
JP2004329878 | 2004-11-12 | ||
JP2004-329878 | 2004-11-12 | ||
JP2005-020458 | 2005-01-27 | ||
JP2005020458 | 2005-01-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2005098666A1 true WO2005098666A1 (en) | 2005-10-20 |
Family
ID=35125275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2005/007291 WO2005098666A1 (en) | 2004-04-08 | 2005-04-08 | Processing data and documents that use a markup language |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP1743254A4 (en) |
JP (1) | JP2007532987A (en) |
WO (1) | WO2005098666A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111766991A (en) * | 2019-04-01 | 2020-10-13 | 珠海金山办公软件有限公司 | Method and device for opening document |
CN115051904A (en) * | 2022-03-23 | 2022-09-13 | 武汉烽火技术服务有限公司 | Method and device for managing single disk state based on markup language |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102000542B1 (en) * | 2017-11-09 | 2019-07-16 | 주식회사 한글과컴퓨터 | Web based document editing apparatus for editing dom objects based on editing command of changing page and operating method thereof |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001290804A (en) * | 2000-04-10 | 2001-10-19 | Just Syst Corp | Method and device for document processing and recording medium |
JP2004501450A (en) * | 2000-06-21 | 2004-01-15 | マイクロソフト コーポレイション | Create arbitrary XML documents using DHTML and XSLT |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10307816A (en) * | 1997-05-08 | 1998-11-17 | Just Syst Corp | Structured document processor its processing method and computer readable recording medium recording program for allowing computer to execute the method |
JP3857663B2 (en) * | 2002-04-30 | 2006-12-13 | 株式会社東芝 | Structured document editing apparatus, structured document editing method and program |
-
2005
- 2005-04-08 EP EP05729898A patent/EP1743254A4/en not_active Withdrawn
- 2005-04-08 WO PCT/JP2005/007291 patent/WO2005098666A1/en active Application Filing
- 2005-04-08 JP JP2006535900A patent/JP2007532987A/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001290804A (en) * | 2000-04-10 | 2001-10-19 | Just Syst Corp | Method and device for document processing and recording medium |
JP2004501450A (en) * | 2000-06-21 | 2004-01-15 | マイクロソフト コーポレイション | Create arbitrary XML documents using DHTML and XSLT |
Non-Patent Citations (1)
Title |
---|
See also references of EP1743254A4 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111766991A (en) * | 2019-04-01 | 2020-10-13 | 珠海金山办公软件有限公司 | Method and device for opening document |
CN111766991B (en) * | 2019-04-01 | 2024-03-29 | 珠海金山办公软件有限公司 | Method and device for opening document |
CN115051904A (en) * | 2022-03-23 | 2022-09-13 | 武汉烽火技术服务有限公司 | Method and device for managing single disk state based on markup language |
CN115051904B (en) * | 2022-03-23 | 2023-09-12 | 武汉烽火技术服务有限公司 | Method and device for managing single disk state based on markup language |
Also Published As
Publication number | Publication date |
---|---|
EP1743254A4 (en) | 2008-10-29 |
EP1743254A1 (en) | 2007-01-17 |
JP2007532987A (en) | 2007-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20070245232A1 (en) | Apparatus for Processing Documents That Use a Mark Up Language | |
US20080134019A1 (en) | Processing Data And Documents That Use A Markup Language | |
US20110138266A1 (en) | Document processing and management approach for creating a tag or an attribute in a markup language document, and method thereof | |
WO2006051715A1 (en) | Document processing device, and document processing method | |
WO2006051960A1 (en) | Document processing device and document processing method | |
US20070283246A1 (en) | Processing Documents In Multiple Markup Representations | |
WO2006051954A1 (en) | Document processing device and document processing method | |
EP1830274A1 (en) | Server device and name space issuing method | |
WO2006051959A1 (en) | Document processing device and document processing method | |
EP1821220A1 (en) | Data processing device, document processing device, and document processing method | |
WO2005098666A1 (en) | Processing data and documents that use a markup language | |
WO2006051714A1 (en) | Document processing device, and document processing method | |
EP1743256A1 (en) | Processing documents in multiple markup representations | |
WO2006051957A1 (en) | Document processing device and document processing method | |
WO2007043661A1 (en) | Data processing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2006535900 Country of ref document: JP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 200580012068.0 Country of ref document: CN |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWW | Wipo information: withdrawn in national office |
Country of ref document: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2005729898 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 2005729898 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 11547706 Country of ref document: US |
|
WWP | Wipo information: published in national office |
Ref document number: 11547706 Country of ref document: US |