IP Library › Granted Patent US 7,882,120
Granted Patent B2
US 7,882,120 · App. 12/013,658 · Granted Feb 1, 2011

Data description language for record based systems

Assignee: Microsoft Corporation
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,882,120
App. No.
12/013,658
Granted
Feb 1, 2011
Kind
B2
Abstract

Determining compatibility of data structures. A method may be practiced in a computing environment. The method includes accessing a first type defined in a mark-up object. The first type includes a first structure including a first plurality of fields. A second type defined in a mark-up object is accessed. The second type includes a second structure including a second plurality of fields. The first structure and the second structure are compared. Based on the comparison, a determination is made that the first type is compatible with the second type.

Claims (30)

1. In a computing environment, a method of determining compatibility of typed data structures that conform to the Extensible Application markup Language (XAML), the method comprising:

accessing a first typed data structure defined in a mark-up object of a first type, the first typed data structure comprising a first plurality of fields, wherein each of the first plurality of fields defines a member of the first type consisting of one of a property, a method, or an event of the first type, wherein each member has a name and a type;

accessing a second typed data structure defined in a mark-up object of a second type, the second typed data structure comprising a second plurality of fields, wherein each of the second plurality of fields defines a member of the second type consisting of one of a property, a method, or an event of the second type, wherein each member has a name and a type;

comparing the first typed data structure to the second typed data structure to determine if the first and second types are compatible, wherein the comparison is performed by comparing the members of the first typed data structure to the members of the second typed data structure; and

determining based on the comparison that the first type is compatible with the second type if for each member in the first typed data structure, there is a member in the second typed data structure that has the same name and a compatible type.

2. The method of claim 1 , wherein at least one of the first type or the second type is a description comprising an instantiation of a type.

3. The method of claim 1 , wherein at least one of the first or second plurality of fields comprises at least one of an element or an attribute.

4. The method of claim 1 , wherein at least one of the first or second plurality of fields comprises both an element and an attribute.

5. The method of claim 1 , wherein at least one of the first or second plurality of fields comprises a property identifying the first or second type as a value type such that identity is not preserved for multi-referenced instances.

6. The method of claim 1 , wherein at least one of the first or second plurality of fields comprises a property identifying the first or second type as a reference type such that identity is preserved for multi-referenced instances.

7. The method of claim 1 , wherein at least one of the first or second plurality of fields comprises a property identifying the first or second type as nullable by specifying a value may be represented by a null construct.

8. The method of claim 1 , wherein comparing the first typed data structure to the second typed data structure comprises comparing fields appended to the first typed data structure from a type external to the first typed data structure, to the second typed data structure.

9. The method of claim 1 , further comprising, nominally determining compatibility of the first and second typed data structures by comparing a name of the first typed data structure to a name of the second typed data structure.

10. The method of claim 1 , wherein determining based on the comparison that the first type is compatible with the second type comprises determining that an in-memory structure conforms to a particular description.

11. The method of claim 1 , wherein determining based on the comparison that the first type is compatible with the second type comprises determining that a serialized form conforms to a particular description.

12. The method of claim 1 , wherein comparing the first typed data structure to the second typed data structure to determine if the first and second types are compatible further comprises:

determining that the first and second typed data structures each have the same values defining the nullability, identity and referenceability of their respective type.

13. The method of claim 1 , wherein determining based on the comparison that the first type is compatible with the second type further comprises determining that the second type is a closed type preventing additional fields from being added to the second typed data structure and determining that the second typed data structure has no additional members beyond those defined in the first typed data structure.

14. The method of claim 1 , wherein determining based on the comparison that the first type is compatible with the second type comprises determining that the first type and the second type, which differ only in that the first typed data structure specifies a value of true for a nullability property while the second typed data structure specifies a value of false for a nullability property, are structurally compatible when the second type is nullable.

15. In a computing environment, a computer storage medium storing computer executable instructions that when executed by a processor cause the following acts to be performed:

accessing a first typed data structure defined in a mark-up object of a first type, the first typed data structure comprising a first plurality of fields, wherein each of the first plurality of fields defines a member of the first type consisting of one of a property, a method, or an event of the first type, wherein each member has a name and a type;

accessing a second typed data structure defined in a mark-up object of a second type, the second typed data structure comprising a second plurality of fields, wherein each of the second plurality of fields defines a member of the second type consisting of one of a property, a method, or an event of the second type, wherein each member has a name and a type;

comparing the first typed data structure to the second typed data structure to determine if the first and second types are compatible, wherein the comparison is performed by comparing the members of the first typed data structure to the members of the second typed data structure; and

determining based on the comparison that the first type is compatible with the second type if for each member in the first typed data structure, there is a member in the second typed data structure that has the same name and a compatible type.

16. The computer storage medium of claim 15 , wherein comparing the first typed data structure to the second typed data structure to determine if the first and second types are compatible further comprises:

determining that the first and second typed data structures each have the same values defining the nullability, identity and referenceability of their respective type.

17. The computer storage medium of claim 15 , wherein determining based on the comparison that the first type is compatible with the second type further comprises determining that the second type is a closed type preventing additional fields from being added to the second typed data structure and determining that the second typed data structure has no additional members beyond those defined in the first typed data structure.

18. The computer storage medium of claim 15 , wherein determining based on the comparison that the first type is compatible with the second type comprises determining that the first type and the second type, which differ only in that the first typed data structure specifies a value of true for a nullability property while the second typed data structure specifies a value of false for a nullability property, are structurally compatible when the second type is nullable.

19. The computer storage medium of claim 15 , wherein at least one of the first type or the second type is a description comprising an instantiation of a type.

20. The computer storage medium of claim 15 , wherein at least one of the first or second plurality of fields comprises a property identifying the first or second type as nullable by specifying a value may be represented by a null construct.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2008
From: BOX, DONALD F.; CHAPMAN, BRIAN F.; GUDGIN, MARTIN J.; HILLBERG, MICHAEL J.; JAZDZEWSKI, CHARLES P.; JETHANANDANI, NATASHA H.; KIZER, GEOFFREY M.; RELYEA, ROBERT A.; SCHLIMMER, JEFFREY C.; WEST, JOEL
To: MICROSOFT CORPORATION
Reel/Frame 020360/0065 →
Continuity (1)
Related Publication 20090182760A1 · Jul 16, 2009