Claims
- 1. A solution for a data file, the data file having a hierarchical arrangement of a plurality of nodes, each said node each having a structure, and wherein the solution comprises:
a special name that can be computed from a solution identifier in the data file, wherein the solution can be discovered for deployment by using the special name when executed in conjunction with an opening of the data file; and a presentation application which, when executed in conjunction with the opening of the data file, displays data in the data file in a plurality of data-entry fields in an electronic form, wherein the plurality of data-entry fields of the electronic form are mapped to a corresponding plurality of the nodes of the data file.
- 2. The solution as defined in claim 1, wherein the solution for the data file can be discovered and deployed without user interaction by an electronic forms application executing on a computer that is configured to discover and deploy the solution of the data file.
- 3. The solution as defined in claim 1, wherein:
the electronic form is written in XHTML and is rendered when the presentation application is executed by an electronic forms application executing on a computer; and the plurality of data-entry fields of the electronic form are mapped to a corresponding plurality of the nodes of the data file; and through each said data-entry field:
data can be received by input from a user entering the data into the electronic form through one or more of the data-entry fields for storage in a corresponding said node in the data file; and data in the data file can be viewed by the user in the electronic form through the data-entry fields via the mapping of the data-entry field from corresponding said nodes of the data file.
- 4. The solution as defined in claim 3, wherein when a logic application is executed by the electronic forms application executing on the computer:
a validation is performed to determine if the data received by input from the user is valid or invalid; and when the validation determines that the data received by input from the user is invalid, the electronic forms application outputs a dialog box bearing indicia informing the user that the data input is invalid.
- 5. The solution as defined in claim 4, wherein:
the validation of the data received by input from the user into each said data-entry field is performed with a validation rule; the logic application comprises a plurality of the validation rules for:
a corresponding plurality of the nodes in the data file; and a corresponding plurality of the data-entry fields; the validation uses each said validation rule to:
determine if the data received by input from the user into a corresponding said data-entry field is valid or invalid; and require the user to correct any data input into the corresponding said data-entry field that the validation determines to be invalid.
- 6. The solution as defined in claim 5, wherein each said validation rule is based on a part of a schema governing a corresponding said node.
- 7. The solution as defined in claim 5, wherein each said validation rule is written in script and associated with a corresponding said node.
- 8. The solution as defined in claim 5, wherein each said validation rule is written in a declarative syntax and associated with a corresponding said node.
- 9. The solution as defined in claim 5, wherein:
each said validation rule includes an alert area display; and when the validation uses one said validation rule to determine that the data received by input from the user into a corresponding said data-entry field is invalid, the corresponding alert area display is output so as to be associated with the corresponding said data-entry field.
- 10. The solution as defined in claim 9, wherein when the alert area display is output, the output includes one or more characteristics selected from the group consisting of:
graphics surrounding the corresponding said data-entry field; the alert area display surrounds the corresponding said data-entry field; the alert area display includes graphics containing a red, dashed-lined box; the alert area display includes graphics highlighting the data in the corresponding said data-entry field; the alert area display surrounds the corresponding said data-entry field and includes the graphics containing a squiggly line beneath the data in the corresponding said data-entry field; the alert area display includes text containing information about the invalid data in the corresponding said data-entry field; the alert area display includes text containing information about the corresponding said data-entry field; and the alert area display includes a pop-up window.
- 11. The solution as defined in claim 5, wherein each said node has one or more of the validation rules associated therewith.
- 12. The solution as defined in claim 5, wherein one said validation rule includes a requirement that the data received by input from the user into a corresponding said data-entry field is to be within a certain range.
- 13. The solution as defined in claim 5, wherein one said validation rule includes a requirement that the data received by input from the user into a corresponding said data-entry field is to be within a certain range of text or numerals for a setting of one or more bounds of the certain range.
- 14. The solution as defined in claim 5, wherein one said validation rule includes a requirement that the data received by input from the user into a corresponding said data-entry field is to be numerical.
- 15. The solution as defined in claim 5, wherein one said validation rule includes a requirement that the data received by input from the user into a corresponding said data-entry field is to be textual.
- 16. The solution as defined in claim 5, wherein one said validation rule includes a requirement for the data received by input from the user into a corresponding said data-entry field that references another said node in the data file.
- 17. The solution as defined in claim 5, wherein the plurality of the validation rules are associated by mapping to the corresponding plurality of the nodes in the data file.
- 18. The solution as defined in claim 5, wherein each said validation rule is associated by mapping to a corresponding said data-entry field by an XPath expression.
- 19. The solution as defined in claim 5, wherein each said validation rule is associated by mapping to a corresponding said data-entry field by use of a declarative syntax.
- 20. The solution as defined in claim 5, wherein each said validation rule is script-based.
- 21. The solution as defined in claim 20, wherein the script-based validation rule maps to a corresponding said node with an XPath expression.
- 22. The solution as defined in claim 20, wherein the script-based validation rule maps to a corresponding said node with an event handler.
- 23. The solution as defined in claim 20, wherein the script-based validation rule maps to a corresponding said node with an event handler that determines when a real-time validation tool uses the script-based validation rule.
- 24. The solution as defined in claim 20, wherein the script-based validation rule maps to a corresponding said node with an event handler that determines when a real-time validation tool uses the script-based validation rule before data received for the node is held by the data file.
- 25. The solution as defined in claim 20, wherein the script-based validation rule maps to a corresponding said node with an event handler that determines when a real-time validation tool uses the script-based validation rule after data received for the node is held by the data file.
- 26. The solution as defined in claim 5, wherein each said validation rule includes:
an alert area display; and how the alert area display is to appear when output.
- 27. A solution for a data file, the data file having a hierarchical arrangement of a plurality of nodes, each said node each having a structure, and wherein the solution comprises:
a presentation application which, when executed in conjunction with the opening of the data file, displays data in the data file in a plurality of data-entry fields in an electronic form, wherein the plurality of data-entry fields of the electronic form are mapped to a corresponding plurality of the nodes of the data file; and a manifest of all files that can be used for:
representing the data file in the electronic form; allowing a user in input data into the data-entry fields; and validating the data that the user inputs into the data-entry fields.
- 28. The solution as defined in claim 27, wherein:
the data file is written in XML and includes a solution identifier; the presentation application is written in XSLT; the electronic form is written in XHTML; a special name can be computed from a solution identifier in the data file; and the solution can be discovered for deployment by using the special name when executed in conjunction with the opening of the data file.
- 29. A solution for a structured markup-language document, the solution comprising:
a markup-language schema based on the structured markup-language document, wherein fragments of the markup-language schema are coupled with portions of the markup-language document; and a presentation application which, when executed, transforms the coupled portions of the markup-language document into an electronic form.
- 30. The solution as defined in claim 29, wherein:
the structured markup-language document is written in XML; the presentation application is written in XSLT; the electronic form is written in XHTML and has one or more data-entry fields; and the solution further comprises a manifest of all files that can be used for:
representing the structured markup-language document in the electronic form; allowing a user in input data into the one or more data-entry fields; and validating the data that the user inputs into the one or more data-entry fields.
- 31. The solution as defined in claim 29, wherein the coupled portions contain information setting forth all possible structured markup-language documents for the coupled portions.
- 32. The solution as defined in claim 29, further comprising a special name that can be computed from a solution identifier in the markup-language document, wherein the solution can be discovered using the special name.
- 33. The solution as defined in claim 32, wherein the solution identifier is a URL.
- 34. The solution as defined in claim 32, wherein the solution identifier is a URN.
- 35. The solution as defined in claim 32, wherein the special name is unique.
- 36. The solution as defined in claim 32, wherein the special name that can be computed from a solution identifier in the data file is performed with a one-way hash.
- 37. The solution as defined in claim 36, wherein the one-way hash is an MD5 hash.
- 38. The solution as defined in claim 32, wherein the solution identifier in the markup-language document can be read from a processing instruction in the markup-language document.
- 39. A solution comprising:
pieces of markup-language data, the markup-language data having portions, each said portion having a structure; and a presentation application which, when executed, transforms the pieces of markup-language data into an electronic form according to the structure of the corresponding said portions.
- 40. The solution as defined in claim 39, wherein:
the markup-language data is written in XML; the presentation application is written in XSLT; the electronic form is written in XHTML and has one or more data-entry fields; and the solution further comprises a manifest of all files that can be used for:
representing the markup-language data in the electronic form; allowing a user in input data into the one or more data-entry fields; and validating the data that the user inputs into the one or more data-entry fields.
- 41. The solution as defined in claim 39, further comprising a special name that can be computed from a solution identifier in the markup-language document, wherein the solution can be discovered using the special name.
- 42. A solution comprising:
a markup-language schema from which a markup-language document can be inferred that has a structure based on the markup-language schema, wherein portions of the markup-language document are logically coupled with fragments of the markup-language schema; and a presentation application which, when executed, forms an electronic form containing data-entry fields associated with the coupled portions.
- 43. The solution as defined in claim 42, wherein:
the markup-language document is written in XML; the presentation application is written in XSLT; the electronic form is written in XHTML; and the solution further comprises a manifest of all files that can be used for:
representing the markup-language document in the electronic form; allowing a user in input data into the one or more data-entry fields; and validating the data that the user inputs into the one or more data-entry fields.
- 44. The solution as defined in claim 42, wherein the coupled portions contain information setting forth all possible markup-language documents for the coupled portions.
- 45. The solution as defined in claim 42, wherein the markup-language schema does not conform to a recognized standard.
- 46. The solution as defined in claim 42, wherein the markup-language schema defines an arbitrary syntax.
- 47. The solution as defined in claim 42, further comprising a special name that can be computed from a solution identifier in the markup-language document, wherein the solution can be discovered using the special name.
- 48. A method comprising:
receiving an instruction to open a markup-language document having a structure and a solution identifier; computing a special name using the solution identifier; discovering a solution using the special name; opening the markup-language document with the solution, wherein:
the solution includes a presentation application and a markup-language schema; the markup-language document can be inferred from the markup-language schema; and portions of the markup-language document are logically coupled with fragments of the markup-language schema; executing the presentation application to render an electronic form containing data-entry fields associated with the coupled portions.
- 49. The method as defined in claim 48, wherein:
the markup-language document is written in XML; the presentation application is written in XSLT; the electronic form is written in XHTML; and the solution further comprises a manifest of all files that can be used for:
representing the markup-language document in the electronic form; allowing a user in input data into the one or more data-entry fields; and validating the data that the user inputs into the one or more data-entry fields.
- 50. The method as defined in claim 48, wherein the coupled portions contain information setting forth all possible markup-language documents for the coupled portions.
- 51. The method as defined in 48, wherein the data-entry fields of the electronic form map to a corresponding plurality of nodes of the markup-language document; and
the method further comprises:
receiving, through one or more said data-entry fields, data input by a user for storage in a corresponding said node in the markup-language document; and outputting data in the markup-language for viewing by the user in the electronic form through the data-entry fields via the mapping of the data-entry fields from corresponding said nodes of the markup-language document.
- 52. The method as defined in claim 51, wherein:
the markup-language schema includes a logic application; and the method further comprises:
executing the logic application to perform a validation to determine if the data received by input from the user is valid or invalid; and when the validation determines that the data received by input from the user is invalid, outputting a dialog box bearing indicia informing the user that the data input is invalid.
- 53. The method as defined in claim 52, wherein:
the validation is performed on the data received by input from the user into each said data-entry field with a validation rule; the logic application comprises a plurality of the validation rules for:
a corresponding plurality of the nodes in the markup-language document; and a corresponding plurality of the data-entry fields; the validation uses each said validation rule to:
determine if the data received by input from the user into a corresponding said data-entry field is valid or invalid; and require the user to correct any data input into the corresponding said data-entry field that the validation determines to be invalid.
- 54. The method as defined in claim 53, wherein each said validation rule is based on a part of a schema governing a corresponding said node.
- 55. The method as defined in claim 53, wherein each said validation rule is written in script and associated with a corresponding said node.
- 56. The method as defined in claim 53, wherein each said validation rule is written in a declarative syntax and associated with a corresponding said node.
- 57. The method as defined in claim 53, wherein:
each said validation rule includes an alert area display; and the validation further comprises using one said validation rule to determine that the data received by input from the user into a corresponding said data-entry field is invalid and outputting the corresponding alert area display so as to be associated with the corresponding said data-entry field.
- 58. The method as defined in claim 57, wherein when the alert area display is output, the output includes one or more characteristics selected from the group consisting of:
graphics surrounding the corresponding said data-entry field; the alert area display surrounds the corresponding said data-entry field; the alert area display includes graphics containing a red, dashed-lined box; the alert area display includes graphics highlighting the data in the corresponding said data-entry field; the alert area display surrounds the corresponding said data-entry field and includes the graphics containing a squiggly line beneath the data in the corresponding said data-entry field; the alert area display includes text containing information about the invalid data in the corresponding said data-entry field; the alert area display includes text containing information about the corresponding said data-entry field; and the alert area display includes a pop-up window.
- 59. The method as defined in claim 53, wherein each said node has one or more of the validation rules associated therewith.
- 60. The method as defined in claim 53, wherein one said validation rule includes a requirement that the data received by input from the user into a corresponding said data-entry field is to be within a certain range.
- 61. The method as defined in claim 53, wherein one said validation rule includes a requirement that the data received by input from the user into a corresponding said data-entry field is to be within a certain range of text or numerals for a setting of one or more bounds of the certain range.
- 62. The method as defined in claim 53, wherein one said validation rule includes a requirement that the data received by input from the user into a corresponding said data-entry field is to be numerical.
- 63. The method as defined in claim 53, wherein one said validation rule includes a requirement that the data received by input from the user into a corresponding said data-entry field is to be textual.
- 64. The method as defined in claim 53, wherein one said validation rule includes a requirement for the data received by input from the user into a corresponding said data-entry field that references another said node in the data file.
- 65. The method as defined in claim 53, wherein the plurality of the validation rules are associated by mapping to the corresponding plurality of the nodes in the data file.
- 66. The method as defined in claim 53, wherein each said validation rule is associated by mapping to a corresponding said data-entry field by an XPath expression.
- 67. The method as defined in claim 53, wherein each said validation rule is associated by mapping to a corresponding said data-entry field by use of a declarative syntax.
- 68. The method as defined in claim 53, wherein each said validation rule is script-based.
- 69. The method as defined in claim 68, wherein the script-based validation rule maps to a corresponding said node with an XPath expression.
- 70. The method as defined in claim 68, wherein the script-based validation rule maps to a corresponding said node with an event handler.
- 71. The method as defined in claim 68, wherein the script-based validation rule maps to a corresponding said node with an event handler that determines when a real-time validation tool uses the script-based validation rule.
- 72. The method as defined in claim 68, wherein the script-based validation rule maps to a corresponding said node with an event handler that determines when a real-time validation tool uses the script-based validation rule before data received for the node is held by the data file.
- 73. The method as defined in claim 68, wherein the script-based validation rule maps to a corresponding said node with an event handler that determines when a real-time validation tool uses the script-based validation rule after data received for the node is held by the data file.
- 74. The method as defined in claim 53, wherein each said validation rule includes:
an alert area display; and how the alert area display is to appear when output.
- 75. A computer-readable medium comprising instruction that, when executed by a computer, performs the method of claim 48.
- 76. A computer-readable medium including instructions that, when executed by a computer, perform acts comprising:
initiating a request to open a structured markup-language document including a solution identifier; using the solution identifier to discover a solution that includes a presentation application and a markup-language schema that is based on the structured markup-language document, wherein fragments of the markup-language schema are coupled with portions of the markup-language document; and executing the presentation application to transform the coupled portions of the markup-language document into an electronic form.
- 77. The computer-readable medium as defined in claim 76, wherein:
the structured markup-language document is written in XML; the presentation application is written in XSLT; the electronic form is written in XHTML and has one or more data-entry fields; and the solution further comprises a manifest of all files that can be used for:
representing the structured markup-language document in the electronic form; allowing a user in input data into the one or more data-entry fields; and validating the data that the user inputs into the one or more data-entry fields.
- 78. The computer-readable medium as defined in claim 76, wherein the coupled portions contain information setting forth all possible structured markup-language documents for the coupled portions.
- 79. A computer-readable medium including instructions that, when executed by a computer, perform acts comprising:
initiating a request to open a markup-language document including a solution identifier; using the solution identifier to discover a solution that includes a presentation application and a markup-language schema from which a markup-language document can be inferred that has a structure based on the markup-language schema, wherein portions of the markup-language document are logically coupled with fragments of the markup-language schema; and executing the presentation application to form an electronic form containing data-entry fields associated with the coupled portions.
- 80. The computer-readable medium as defined in claim 79, wherein:
the markup-language document is written in XML; the presentation application is written in XSLT; the electronic form is written in XHTML and has one or more data-entry fields; and the solution further comprises a manifest of all files that can be used for:
representing the markup-language document in the electronic form; allowing a user in input data into the one or more data-entry fields; and validating the data that the user inputs into the one or more data-entry fields.
- 81. The computer-readable medium as defined in claim 79, wherein the coupled portions contain information setting forth all possible markup-language documents for the coupled portions.
RELATED APPLICATIONS
[0001] This application claims priority to the following applications, each of which is incorporated in its entirety by reference:
[0002] U.S. patent application Ser. No. 10/395,506, filed on Mar. 24, 2003, titled “System and Method for Designing Electronic Forms”;
[0003] U.S. patent application Ser. No. 10/404,312, filed on Mar. 31, 2003, titled “System and Method for Incrementally Transforming and Tendering Hierarchical Data Files”, and referencing Attorney Docket No. MS1-1340US;
[0004] U.S. patent application Ser. No. 10/402,640, filed on Mar. 28, 2003, titled “System and Method for Real-Time Validation of Structured Data Files”;
[0005] U.S. patent application Ser. No. 10/395,490, filed on Mar. 24, 2003, titled “System and Method for Offline Editing of Data Files”; and
[0006] U.S. patent application Ser. No. 10/395,505, filed on Mar. 24, 2003, titled “System and Method for Designing Electronic Forms and Hierarchical Schemas”.