IP Library Granted Patent US 7,197,515
Granted Patent B2
US 7,197,515 · App. 10/610,504 · Granted Mar 27, 2007

Declarative solution definition

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,197,515
App. No.
10/610,504
Granted
Mar 27, 2007
Kind
B2
Abstract

A solution is described that declares elements, attributes, and values that define a hierarchical data file or a markup-language document. The declarations by the solution are within the solution and include a presentation application and a markup-language schema from which the markup-language document can be inferred as having a structure based on the markup-language schema. Portions of the markup-language document are logically coupled with fragments of the markup-language schema. The presentation application, when executed, forms an electronic form containing data-entry fields associated with the coupled portions. The solution can include a manifest of all files that can be used for representing the markup-language document in the electronic form. The files also allow a user in input data into the one or more data-entry fields and control the validation of the data that the user inputs into the one or more data-entry fields.

Claims (202)

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 unique name that is the same as a name computed from a solution identifier in the data file, and enables discovery and deployment of the solution when the data file is opened; and

a presentation application which, when executed in conjunction with opening 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 unique name is computed without user interaction and by an electronic forms application executing on a computer and 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 is 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 is 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 detennine 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 wriften 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 expresion.

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 unique name that is the same as a name computed from a solution identifier in the data file and enables discovery and deployment of the solution when the data file is opened;

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 usable for:

representing the data file in the electronic form;

allowing a user to 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;

the presentation application is written in XSLT; and

the electronic form is written in XHTML.

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 of a markup-language document, the markup-language data having portions, each said portion having a structure;

a unique name that is the same as a name computed from a solution identifier in the markup-language document and enables discovery and deployment of the solution: and

a presentation application which, when executed responsive to being discovered using the unique name, 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. 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.

42. The solution as defined in claim 41 , 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.

43. The solution as defined in claim 41 , wherein the coupled portions contain information selling forth all possible markup-language documents for the coupled portions.

44. The solution as defined in claim 41 , wherein the markup-language schema does not conform to a recognized standard.

45. The solution as defined in claim 41 , wherein the markup-language schema defines an arbitrary syntax.

46. The solution as defined in claim 41 , farther 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.

47. A method comprising:

receiving an instruction to open a markup-language document having a structure and a solution identifier;

computing a unique name using the solution identifier; discovering a solution using the unique 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.

48. The method as defined in claim 47 , 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.

49. The method as defined in claim 47 , wherein the coupled portions contain information setting forth all possible markup-language documents for the coupled portions.

50. The method as defined in 47 , 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.

51. The method as defined in claim 50 , 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.

52. The method as defined in claim 51 , 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.

53. The method as defined in claim 52 , wherein each said validation rule is based on a part of a schema governing a corresponding said node.

54. The method as defined in claim 52 , wherein each said validation rule is written in script and associated with a corresponding said node.

55. The method as defined in claim 52 , wherein each said validation rule is written in a declarative syntax and associated with a corresponding said node.

56. The method as defined in claim 52 , 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.

57. The method as defined in claim 56 , 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.

58. The method as defined in claim 52 , wherein each said node has one or more of the validation rules associated therewith.

59. The method as defined in claim 52 , 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.

60. The method as defined in claim 52 , 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.

61. The method as defined in claim 52 , 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.

62. The method as defined in claim 52 , 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.

63. The method as defined in claim 52 , 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.

64. The method as defined in claim 52 , wherein the plurality of the validation rules are associated by mapping to the corresponding plurality of the nodes in the data file.

65. The method as defined in claim 52 , wherein each said validation rule is associated by mapping to a corresponding said data-entry field by an XPath expression.

66. The method as defined in claim 52 , wherein each said validation rule is associated by mapping to a corresponding said data-entry field by use of a declarative syntax.

67. The method as defined in claim 52 , wherein each said validation rule is script-based.

68. The method as defined in claim 67 , wherein the script-based validation rule maps to a corresponding said node with an XPath expression.

69. The method as defined in claim 67 , wherein the script-based validation rule maps to a corresponding said node with an event handler.

70. The method as defined in claim 67 , 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.

71. The method as defined in claim 67 , 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.

72. The method as defined in claim 67 , 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.

73. The method as defined in claim 52 , wherein each said validation rule includes:

an alert area display; and

how the alert area display is to appear when output.

74. A computer-readable medium comprising instruction that, when executed by a computer, performs the method of claim 47 .

75. 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.

76. The computer-readable medium as defined in claim 75 , 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.

77. The computer-readable medium as defined in claim 75 , wherein the coupled portions contain information setting forth all possible structured markup-language documents for the coupled portions.

78. 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.

79. The computer-readable medium as defined in claim 78 , 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.

80. The computer-readable medium as defined in claim 78 , wherein the coupled portions contain information setting forth all possible markup-language documents for the coupled portions.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0477 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2003
From: RIVERS-MOORE, JONATHAN E.; PAOLI, JEAN D.; VESELOV, EVGENY N.; BATH, KAMALJIT S.; ARDELEANU, ADRIANA; SIKCHI, PRAKASH
To: MICROSOFT CORPORATION
Reel/Frame 014620/0699 →