A visual editor is automatically generated from an eXtensible Markup Language (XML) schema and then used to edit the data contained in corresponding XML documents. The entities within an XML schema are mapped to components of the visual editor, such as forms, widgets, etc., that are generated as class specifications. These class specifications can be customized through the use of a customization specification file, as desired. The class specifications are then instantiated as objects in a Java Virtual Machine to perform the functions of the visual editor.
|
1. A computer-implement method for generating a document editor, comprising:
(a) generating one or more class specifications in the computer from a schema for the document, wherein the class specifications identify user interface components of the editor corresponding to entities defined in the schema; and
(b) instantiating one or more objects in the computer from the class specifications to invoke the editor.
24. A computer-implemented apparatus for generating a document editor, comprising:
(a) a computer; and
(b) an editor maker, executed by the computer, for generating one or more class specifications in the computer from a schema for the document, wherein the class specifications identify user interface components of the editor corresponding to entities defined in the schema, and for instantiating one or more objects in the computer from the class specifications to invoke the editor.
47. An article of manufacture embodying logic for performing a method for generating a document editor for use in an object-oriented computer system, the method comprising the steps of:
(a) generating one or more class specifications from a schema for the document, wherein the class specifications identify user interface components of the editor corresponding to entities defined in the schema; and
(b) instantiating one or more objects from the class specifications to invoke the editor.
2. The method of
3. The method of
4. The method of
5. The method of
6. The method of
7. The method of
8. The method of
9. The method of
10. The method of
11. The method of
12. The method of
13. The method of
14. The method of
15. The method of
16. The method of
17. The method of
18. The method of
(1) a “zero or more” operator,
(2) a “one or more” operator,
(3) a “one or the other” operator,
(4) a “one followed by the other” operator,
(5) a “zero or one” operator,
(6) a “grouping” operator, and
(7) an “any” operator.
19. The method of
20. The method of
21. The method of
22. The method of
23. The method of
25. The apparatus of
26. The apparatus of
27. The apparatus of
28. The apparatus of
29. The apparatus of
30. The apparatus of
31. The apparatus of
32. The apparatus of
33. The apparatus of
34. The apparatus of
35. The apparatus of
36. The apparatus of
37. The apparatus of
38. The apparatus of
39. The apparatus of
40. The apparatus of
41. The apparatus of
(1) a “zero or more” operator,
(2) a “one or more” operator,
(3) a “one or the other” operator,
(4) a “one followed by the other” operator,
(5) a “zero or one” operator,
(6) a “grouping” operator, and
(7) an “any” operator.
42. The apparatus of
43. The apparatus of
44. The apparatus of
45. The apparatus of
46. The apparatus of
48. The method of
49. The method of
50. The method of
51. The method of
52. The method of
53. The method of clam 52 above, wherein the optional customization specifications define what class names to generate for each entity defined in the schema.
54. The method of
55. The method of
56. The method of
57. The method of
58. The method of
59. The method of
60. The method of
61. The method of
62. The method of
63. The method of
64. The method of
(1) a “zero or more” operator,
(2) a “one or more” operator,
(3) a “one or the other” operator,
(4) a “one followed by the other” operator,
(5) a “zero or one” operator,
(6) a “grouping” operator, and
(7) an “any” operator.
65. The method of
66. The method of
67. The method of
68. The method of
69. The method of
|
This application is related to the following co-pending and commonly-assigned patent applications:
Application Ser. No. 09/166,018, now U.S. Pat. No. 6,487,566, entitled “A PATTERN MATCHING AND REPLACEMENT LANGUAGE FOR TRANSFORMING DOCUMENTS,” filed on Oct. 5, 1998, by Neelakantan Sundaresan;
Application Ser. No. 09/166,043, now U.S. Pat. No. 6,569,207, entitled “CONVERTING SCHEMAS TO COMPONENT MODELS,” filed on Oct. 5, 1998, by Neelakantan Sundaresan; and
Application Ser. No. 09/166,042, now U.S. Pat. No. 6,480,865, entitled “A FACILITY FOR ADDING DYNAMISM TO AN EXTENSIBLE MARKUP LANGUAGE,” filed on Oct. 5, 1998, by Susan B. Lee and Neelakantan Sundaresan;
All of which applications are incorporated by reference herein.
1. Field of the Invention
This invention relates in general to generating visual editors, and in particular, to generating visual editors from eXtensible Markup Language (XML) schemas.
2. Description of Related Art
Extensible Markup Language (XML) is poised to be the next big revolution for the World Wide Web (WWW). With the realization that the Web is not about just browsing any more, XML has emerged as an enabling technology to carry the Web to the next generation of electronic commerce, Web-based workflow, and integration of databases with Web applications.
XML describes a class of data objects called XML documents and partially describes the behavior of computer programs that process them. XML is a restricted form of SGML, the Standard Generalized Markup Language, defined in ISO 8879. The specification for XML can be found at the URL: http://www.w3.org/TR/REC-xml.
XML documents are made up of storage units called entities, which contain either parsed or unparsed data. Parsed data is made up of characters, some of which form character data, and some of which form markup. Markup encodes a description of the document's storage layout and logical structure. XML provides a mechanism to impose constraints on the storage layout and logical structure.
An XML schema specifies constraints on the structures and types of elements in an XML document. The basic schema for XML is the DTD Document Type Definition). Other XML schema definitions are also being developed, such as DCD (Document Content Definition), XSchema, etc. Information concerning DTD and DCD can be found at the URL: http://www.w3.org/.
The main difference between DTD and DCD is that DTD uses a different syntax from XML, while DCD specifies an XML schema language in XML itself. (XSchema is similar to DCD in this respect). In spite of the differences in the syntax, the goals and constraint semantics for all these XML schema languages are the same. Their commonality is that they all describe XML Schema. This means that they assume the common XML structure, and provide a description language to say how these elements are laid out and are related to each other.
There are about five basic constraints that the XML schema languages describe:
Note that this system includes some convenience operators. For example, A+ is the same as A, A*.
A software module called an XML processor is used to read XML documents and provide access to their content and structure. It is assumed that an XML processor is doing its work on behalf of another module, called the application. The XML specification located at the URL noted above describes the required behavior of an XML processor in terms of how it must read XML data and the information it must provide to the application.
As XML becomes more extensively used in Web applications, large numbers of XML documents will be created, communicated between applications, and stored into and retrieved from repositories. The volume of XML documents will likely be larger than the current volume of HTML (HyperText Markup Language) documents, because XML documents can be seamlessly integrated with applications.
Unlike HTML documents, which are read only by Web browsers, XML documents can be read and processed by any number of different applications. Moreover, since XML is extensible, there may many different schemas for XML documents for different domains and different applications within a domain, unlike HTML, which has a single schema.
There is a need in the art then for editors that provide users with a facility to create and/or edit XML documents. Of course, the construction of editors is well known in the art. Consider, for example, U.S. Pat. No. 5,640,566, entitled “Method of forming an editor”, U.S. Pat. No. 5,493,678, entitled “Method in a structure editor”, U.S. Pat. No. 5,185,867, entitled “Method and apparatus for automatically generating software specifications”, and U.S. Pat. No. 5,617,578, entitled “Computer-based workstation for generation of logic diagrams from natural language text structured by the insertion of script symbols”. However, none of the references teach or suggest a visual editor that simplifies a user's interaction with XML documents, or an automatic tool for the generation of visual editors for use with specific XML schemas and that are generated from such XML schemas.
To overcome the limitations in the prior art described above, and to overcome other limitations that will become apparent upon reading and understanding the present specification, the present invention discloses a visual editor that is automatically generated from an extensible Markup Language (XML) schema and then used to edit the data contained in corresponding XML documents. The entities within an XML schema are mapped to components of the visual editor, such as forms, widgets, etc., that are generated as class specifications. These class specifications can be customized through the use of a customization specification file, as desired. The class specifications are then instantiated as objects in a Java Virtual Machine to perform the functions of the visual editor.
Referring now to the drawings in which like reference numbers represent corresponding parts throughout:
In the following description of the preferred embodiment, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration a specific embodiment in which the invention may be practiced. It is to be understood that other embodiments may be utilized and structural and functional changes may be made without departing from the scope of the present invention.
The preferred embodiment of the present invention describes a system for automatically generating visual editors for XML documents from XML schemas for the XML documents. Because most XML schemas are described as Document Type Definitions (DTDs), the preferred embodiment of the present invention concentrates on DTD-based XML schemas, although alternative embodiments describe how to convert schemas based on Document Content Definitions (DCDs), XSchema, etc. For the components of the visual editors, the preferred embodiment of the present invention focuses on Java objects, since Java is commonly used in the context of the Web, although an alternative embodiment could use other programming languages.
Either or both of the Web browser 104 and Web daemon 108 may include a Java Virtual Machine (JVM) 110 that executes Java objects, applets, scripts, etc., associated with various Web content. The server system 106 may further include one or more Editor Makers 112 that use XML schemas and documents 114 to create Java class specifications that are instantiated as Java objects 116 that comprise components of a visual editor 118 for XML documents.
In general, the Editor Maker 112, XML schemas and documents 114, class specifications and objects 116, and visual editors 118 comprise data and/or logic which, when read and executed by a computer, cause the computer to perform the steps for performing and/or using the present invention. Generally, the data and/or logic are embodied in and/or readable from a device, carrier or media, such as memory, data storage devices, and/or remote devices coupled to the computer via data communications devices.
However, those skilled in the art will recognize that the exemplary environment illustrated in
Thus, the present invention may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques to produce software, hardware, firmware, or any combination thereof. In addition, the term “article of manufacture” as used herein is intended to encompass logic and/or data embodied in or accessible from any device, carrier, or media.
In operating the visual editor 118, users would not need to know the specifics of the structure of the XML document or the XML schema. Instead, users would simply operate the visual editor 118 to fill in forms, interact with widgets and other components of the visual editor 118, and the visual editor 118 would, in turn, would create and/or edit the XML documents.
Elements
At the simplest level, the Editor Maker 112 associates a panel widget with an element. For example, the Editor Maker 112 generates a panel editor widget for an element definition of the form:
For each element Bi occurring inside element A, the Editor Maker 112 associates a button in the panel corresponding to A. When this button is selected the panel associated with Bi is shown for editing the Bi element.
Consider the following content model:
The panel widget generated for “OUTER”, as it would be displayed by the browser 104 on the client computer 102, is shown in
Attributes
Since attribute values in XML can only be text, an attribute needs only a text editor widget in the visual editor 118. The Editor Maker 112 generates a pair of widgets for each attribute, including a label widget (bearing the attribute name) and the text editor widget. To differentiate between text editor widgets for different attributes, a label widget is associated with the text editor widget, wherein the label is the name of the attribute in the preferred embodiment (other labels could be used in alternative embodiments).
The text editor widget provided by the Editor Maker 112 allows a user to input values for the attribute. In DTD, an attribute may have three different declarations: mandatory (#REQUIRED), optional (#IMPLIED), or fixed value (#FIXED). Attributes can also be of different types: NMTOKEN, STRING, etc.
For user input, the text editor widget performs two functions:
1. The text editor widget allows the user to enter a value only if the attribute is declared to be IMPLIED or REQUIRED. For FIXED attributes, the text editor widget uses the value specified in the DTD and does not permit the user to change this value.
2. The text editor widget validates the values entered by the user against the different possible types of the attributes.
Since editing is an incremental process, the text editor widget does not require that the user enter a value for every attribute that is declared to be REQUIRED. However, the user can invoke a validation call to have the text editor widget to check and verify that all the attributes that are REQUIRED have indeed been entered.
Consider the following example DTD:
For this example DTD, the Editor Maker 112 generates three pairs (label widget, text editor widget) for these three attributes, as shown in
As an alternative, since the text editor widget associated with ATTR2 can accept only an enumerated number of values, it could be replaced by a “choice” widget that displays all possible values so that the user can select one of the values. Similarly, the text editor widget associated with ATTR3 could be replaced by a label widget, since the user cannot enter a value for ATTR3.
Zero Or One: B?
When an element A has a content model that includes B?, the Editor Maker 112 associates a button in A's panel for B. This is the same as the case when B is in the content model of A.
Zero/One Or More: B* or B+
Regular expressions such as B*, B+ that indicate multiple instances of an element result in indexed properties. When a content model contains expressions of the form B* or B+, the Editor Maker 112 associates two widgets with the content model: (1) a list widget that displays a list of widgets; and (2) a choice widget, as illustrated in
The list widget of the visual editor 118 is generated for the following content model:
The choice widget includes three choices: Add, Delete, or Edit. These choices allow the user to add an element of type B to the list, delete an element of type B from the list, or edit a member in the list, respectively.
Note that instead of deleting and editing through the choice menu, an action event may be associated with the list widget, so that when a user selects a particular item, a pop-up menu for add, delete or edit is displayed.
One Or The Other: A|B
When an element has a content model of the form A |B, the Editor Maker 112 translates this to a choice widget. The user can select one of the two and the associated edit panel is displayed.
One Followed by the Other: A, B
For this content model, a button is displayed for each of the elements in the sequence in a panel widget for the parent element.
Selecting any of the buttons displays the element panel associated with corresponding element.
Grouping: (A)
Grouping is often used to group a plurality of elements in the content model to jointly apply any of the above-mentioned operators, such as?, *, +, etc., to the members of the group jointly, thus overriding any default precedence conditions. As described above,
It is possible to put all the button widgets corresponding to a group in a panel. However, grouping is often used for clarity and unnecessarily creating a grouping panel might result in too many widgets. This is especially true with situations such as ((A)), where unnecessary parentheses are introduced.
The ANY Content Model
An ANY content model in the DTD indicates that the element itself can contain elements of any type, i.e., the content model is “open”. For this content model, the visual editor 118 displays the XML document, so that the user can edit the XML document directly. The visual editor 118 may also provide a tree editor for the XML document, wherein the tree editor is a structural editor that assists the user in entering well-formed structures into the XML document.
The EMPTY Content Model
For the EMPTY content model, the only properties displayed by the visual editor 118 are text editor widgets for its attributes. If there are no attributes, i.e., then no panel is displayed for the element (selecting the button corresponding to the element in the containing panel does nothing).
The PCDATA Content Model
The PCDATA content model results a text editor widget where the user types in text corresponding to the PCDATA. The text editor widget checks that XML tag characters, such as ‘<’, ‘>’, etc., are not present in the PCDATA, unless the data is specified as a CDATA. Also, the text editor widget provides a toggle mechanism to wrap the PCDATA around in a CDATA.
Optimization
The Editor Maker 112 attempts to solve a number of correctness, optimization, and aesthetics related issues when generating the visual editor 118 from the XML schema.
For example, often when the application developer specifies A, B in the content model, they mean ((A, B)|(B, A)). Sometimes, the application developer specifies this explicitly, but, when the list gets long and complicated, for example, as in A*, B?, C+, the application developer has to specify explicitly numerous combinations (in the example, six combinations) and may inadvertently omit some combinations.
The Editor Maker 112 automatically generates these combinations by default. Thus, when it sees A, B, it automatically assumes B, A as well.
However, this may not be a correct assumption in all situations. The Editor Maker 112 tries to be careful when it makes these assumption. For example, when some element occurs multiple times in a sequence, for example, as A in -A, B, A-, it converts that element to an A+ content model (thus generating a list editor for the occurrences of A). However, it introduces an additional constraint in the list editor that a user cannot enter more than two instances of A (as is the case in the original content model), because the generated editor would indicate an error if such an event occurred.
The Editor Maker 112 also eliminates unnecessary grouping parentheses.
Generating Visual Editors for Different Regular Expression Operators
The application developer can customize the visual editors 118 for different regular expression operators using the customization specification file 206.
Consider the following example DTD:
OR
CDATA #IMPLIED
GROUP
CDATA #IMPLIED
COMMA
CDATA #IMPLIED
STAR
CDATA #IMPLIED
PLUS
CDATA #IMPLIED
For-PCDATA
CDATA #IMPLIED
For-ATTRS
CDATA #IMPLIED
For-ANY
CDATA #IMPLIED
For-EMPTY
CDATA #IMPLIED>
In the customization specifications file 206, the application developer can identify the specific widgets implementations for the Editor Maker 112. An example of this would be the following:
Using the above specification, the Editor Maker 112 generates a TextArea widget for the attribute using the identified implementation.
Name Generation For Elements
In an alternative embodiment, the Editor Maker 112 also allows element-by-element or attribute-by-attribute customization using the customization specifications file 206. For example, the DTD in the customization specifications file 206 for element name generation could be the following:
Consider the following example content model:
The application developer can provide a customization specification of the following form:
The application developer can also customize the names for class specifications using the following DTD:
For example, the application developer can specify the names MyEditor, MyImpl, MyHandlers, respectively, for the three classes discussed above, using the following XML specification:
The application developer can also specify the package name for the classes in the customization specifications file 206. By default, the Editor Maker 112 names the package after the name of the DTD file used to generate the classes. If the application developer can change the name of package using the following DTD:
For example, the application developer can specify that the generated classes should belong to the package “com.ibm.almaden.gcsConfig” using the following XML specification:
<generated-package name=“com.ibm.almaden.gcsConfig”/>
Using the Visual Editors to Validate Content
The visual editor 118 generated by the Editor Maker 112 provides the functionality where the user can ask the visual editor 118 to validate an element or ask questions as to what are the possible values at some point of the editing process. The former enables the user to create partially valid documents, while the latter enable hint-based editing.
Even though the visual editor 118 includes the functionality to validate a XML document, the user may wish to save a partially created XML document. This file will be well-formed, but may not be valid.
Interaction with Other Tools
In addition, the visual editor 118 can be made to interface to other classes, for example, the classes generated by the BeanMaker described in co-pending and commonly-assigned application Ser. No. 09/166,043, entitled “CONVERTING SCHEMAS TO COMPONENT MODELS,” filed on Oct. 5, 1998, by Neelakantan Sundaresan, which application is incorporated by reference herein. In one embodiment, the visual editor 118 can be used to automatically generate Java Beans.
This concludes the description of the preferred embodiment of the invention. The following describes some alternative embodiments for accomplishing the present invention. For example, any type of computer, such as a mainframe, minicomputer, or personal computer, could be used to implement the present invention. In addition, the present invention is not limited by specific document or programming languages, and could comprise languages other than XML and Java. For example, the present invention could also be used with HTML, SGML, NetRexx, VisualBasic Script, XML, Perl, C, C++, Cobol, etc.
In summary, the present invention discloses a method, apparatus, and article of manufacture for automatically generating a visual editor from an eXtensible Markup Language (XML) schema and then using the visual editor to edit the data contained in corresponding XML documents. The entities within an XML schema are mapped to components of the visual editor, such as forms, widgets, etc., that are generated as class specifications. These class specifications can be customized through the use of a customization specification file, as desired. The class specifications are then instantiated as objects in a Java Virtual Machine to perform the functions of the visual editor.
The foregoing description of the preferred embodiment of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the invention be limited not by this detailed description, but rather by the claims appended hereto.
Patent | Priority | Assignee | Title |
10127583, | Apr 16 2007 | Ebay Inc. | Visualization of reputation ratings |
11030662, | Apr 16 2007 | Ebay Inc. | Visualization of reputation ratings |
11763356, | Apr 16 2007 | Ebay Inc. | Visualization of reputation ratings |
7428697, | Jul 31 2002 | HEWLETT-PACKARD DEVELOPMENT COMPANY L P | Preserving content or attribute information during conversion from a structured document to a computer program |
7475337, | Jan 05 2001 | XMLCities | Generating structured documents by associating document elements in a first display with displayed document type definitions in a second display |
7516158, | Apr 19 2004 | Pixar | Customizing widget draw styles |
7555706, | Jun 09 2000 | Honeywell Limited | Human machine interface |
7707024, | May 23 2002 | Microsoft Technology Licensing, LLC | Method, system, and apparatus for converting currency values based upon semantically labeled strings |
7707496, | May 09 2002 | Microsoft Technology Licensing, LLC | Method, system, and apparatus for converting dates between calendars and languages based upon semantically labeled strings |
7711550, | Apr 29 2003 | Microsoft Technology Licensing, LLC | Methods and system for recognizing names in a computer-generated document and for providing helpful actions associated with recognized names |
7712024, | Jun 06 2000 | Microsoft Technology Licensing, LLC | Application program interfaces for semantically labeling strings and providing actions based on semantically labeled strings |
7716163, | Jun 06 2000 | Microsoft Technology Licensing, LLC | Method and system for defining semantic categories and actions |
7716676, | Jun 25 2002 | Microsoft Technology Licensing, LLC | System and method for issuing a message to a program |
7739588, | Jun 27 2003 | Microsoft Technology Licensing, LLC | Leveraging markup language data for semantically labeling text strings and data and for providing actions based on semantically labeled text strings and data |
7742048, | May 23 2002 | Microsoft Technology Licensing, LLC | Method, system, and apparatus for converting numbers based upon semantically labeled strings |
7770102, | Jun 06 2000 | Microsoft Technology Licensing, LLC | Method and system for semantically labeling strings and providing actions based on semantically labeled strings |
7778816, | Apr 24 2001 | Microsoft Technology Licensing, LLC | Method and system for applying input mode bias |
7783614, | Feb 13 2003 | Microsoft Technology Licensing, LLC | Linking elements of a document to corresponding fields, queries and/or procedures in a database |
7788590, | Sep 26 2005 | Microsoft Technology Licensing, LLC | Lightweight reference user interface |
7788602, | Jun 06 2000 | Microsoft Technology Licensing, LLC | Method and system for providing restricted actions for recognized semantic categories |
7827546, | Jun 05 2002 | Microsoft Technology Licensing, LLC | Mechanism for downloading software components from a remote source for use by a local software application |
7865532, | Apr 19 2004 | Pixar | Customizing widget draw styles |
7904809, | Jun 29 2007 | Microsoft Technology Licensing, LLC | Model-based editors for dynamic validation |
7992085, | Sep 26 2005 | Microsoft Technology Licensing, LLC | Lightweight reference user interface |
8150939, | May 11 2007 | Oracle America, Inc | Method and system for wrapping and componentizing javascript centric widgets using java components |
8190991, | Jun 25 2003 | Microsoft Technology Licensing, LLC | XSD inference |
8346887, | Apr 26 1999 | DODOTS LICENSING SOLUTIONS, LLC | Tracking and tracing user activity with application media packages |
8510406, | Apr 26 1999 | DODOTS LICENSING SOLUTIONS, LLC | Component for accessing and displaying internet content |
8510407, | Apr 26 1999 | DODOTS LICENSING SOLUTIONS, LLC | Displaying time-varying internet based data using application media packages |
8521833, | Apr 26 1999 | DODOTS LICENSING SOLUTIONS, LLC | System and method for accessing and displaying internet content via an integrated application media package |
8578265, | Oct 07 2008 | BIGMACHINES, INC | Methods and apparatus for generating a dynamic document |
8620938, | Jun 28 2002 | Microsoft Technology Licensing, LLC | Method, system, and apparatus for routing a query to one or more providers |
8621034, | Apr 26 1999 | DODOTS LICENSING SOLUTIONS, LLC | Indexing, sorting, and categorizing application media packages |
8706708, | Jun 06 2002 | Microsoft Technology Licensing, LLC | Providing contextually sensitive tools and help content in computer-generated documents |
8849873, | Mar 18 2009 | Bentley Systems, Incorporated | Specifications automation system and method |
8959489, | Apr 16 2007 | Microsoft Technology Licensing, LLC | Arbitrary object editing |
9124665, | Apr 26 1999 | DODOTS LICENSING SOLUTIONS, LLC | Server including components for accessing and displaying internet content and for providing same to a client |
9146913, | Mar 29 2010 | Bentley Systems, Incorporated | Specifications automation system and method |
9342435, | Oct 27 2009 | DISH TECHNOLOGIES L L C | Embedding dynamic information in electronic devices |
9369545, | Apr 26 1999 | DODOTS LICENSING SOLUTIONS, LLC | Accessing and displaying network content |
9426255, | Apr 26 1999 | DODOTS LICENSING SOLUTIONS, LLC | Apparatus and method for dynamically coordinating the delivery of computer readable media |
9438467, | Apr 26 1999 | DODOTS LICENSING SOLUTIONS, LLC | Methods of obtaining application media packages |
9524506, | Oct 21 2011 | BIGMACHINES, INC | Methods and apparatus for maintaining business rules in a configuration system |
9723108, | Apr 26 1999 | DODOTS LICENSING SOLUTIONS, LLC | System and methods for creating and authorizing internet content using application media packages |
9892102, | Mar 15 2008 | Microsoft Technology Licensing, LLC | Lossless web-based editor for complex documents |
Patent | Priority | Assignee | Title |
5185867, | Mar 18 1988 | Hitachi, Ltd. | Method and apparatus for automatically generating software specifications |
5493678, | Sep 26 1988 | International Business Machines Corporation | Method in a structure editor |
5617578, | Jun 26 1990 | PROQUIS LIMITED | Computer-based workstation for generation of logic diagrams from natural language text structured by the insertion of script symbols |
5640566, | Aug 01 1994 | Apple Inc | Method of forming an editor |
5915259, | Mar 20 1996 | Xerox Corporation | Document schema transformation by patterns and contextual conditions |
5920879, | May 20 1996 | Fuji Xerox Co., Ltd. | Document structure conversion apparatus |
5924101, | Oct 14 1997 | International Business Machines Corporation | User interface for creating class definitions and implementations for datastore persistent objects |
5926823, | Nov 10 1994 | Fuji Xerox Co., Ltd. | Document generic logical information editing apparatus |
6272673, | Nov 25 1997 | International Business Machines Corporation | Mechanism for automatically establishing connections between executable components of a hypertext-based application |
6279015, | Dec 23 1997 | Ricoh Corporation | Method and apparatus for providing a graphical user interface for creating and editing a mapping of a first structural description to a second structural description |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Nov 12 1998 | International Business Machines Corporation | (assignment on the face of the patent) | / | |||
Dec 08 1998 | SUNDARESAN, NEELAKANTAN | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 009694 | /0508 |
Date | Maintenance Fee Events |
Mar 06 2006 | ASPN: Payor Number Assigned. |
Sep 29 2009 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Dec 13 2013 | REM: Maintenance Fee Reminder Mailed. |
Apr 11 2014 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Apr 11 2014 | M1555: 7.5 yr surcharge - late pmt w/in 6 mo, Large Entity. |
Oct 17 2017 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
May 02 2009 | 4 years fee payment window open |
Nov 02 2009 | 6 months grace period start (w surcharge) |
May 02 2010 | patent expiry (for year 4) |
May 02 2012 | 2 years to revive unintentionally abandoned end. (for year 4) |
May 02 2013 | 8 years fee payment window open |
Nov 02 2013 | 6 months grace period start (w surcharge) |
May 02 2014 | patent expiry (for year 8) |
May 02 2016 | 2 years to revive unintentionally abandoned end. (for year 8) |
May 02 2017 | 12 years fee payment window open |
Nov 02 2017 | 6 months grace period start (w surcharge) |
May 02 2018 | patent expiry (for year 12) |
May 02 2020 | 2 years to revive unintentionally abandoned end. (for year 12) |