Declarative specification and engine for non-isomorphic data mapping
First Claim
1. A computer implemented method comprising:
- receiving a first mapping specification mapping data elements of a first data structure of a first data representation to data elements of a second data structure of a second data representation, the first data structure having a first one or more data elements and a first one or more data element relationships defining a first shape and the second data structure having a second one or more data elements and a second one or more data element relationships defining a second shape, where the first shape and the second shape are not equivalent;
receiving a first instance of said first data structure having first instances of said first one or more data elements of said first data structure; and
populating data element instances of a first instance of said second data structure with values of said correspondingly mapped data element instances of said first instance of said first data structure in accordance with said first mapping specification.
2 Assignments
0 Petitions
Accused Products
Abstract
A mapping engine is provided to populate data elements of a first data structure of a first data representation with values of corresponding data elements of a second data structure of a second data representation, in accordance with at least a mapping specification. The two data structures may have different data shapes. The mapping specification may have a number of data element and data attribute mapping directives, including repeating data items. A population operation in a reversed direction may also be performed using the same mapping specification. The mapping specification may also specify an external mapping specification for a subset of the mapping operations. The external mapping specification may comprise unidirectional function pairs. In one embodiment, the mapping engine performs order dependent mapping facilitating the use of separate mapping rules for different instances of the same data element based upon the relative position of the data element instances within an input data structure.
-
Citations
108 Claims
-
1. A computer implemented method comprising:
-
receiving a first mapping specification mapping data elements of a first data structure of a first data representation to data elements of a second data structure of a second data representation, the first data structure having a first one or more data elements and a first one or more data element relationships defining a first shape and the second data structure having a second one or more data elements and a second one or more data element relationships defining a second shape, where the first shape and the second shape are not equivalent;
receiving a first instance of said first data structure having first instances of said first one or more data elements of said first data structure; and
populating data element instances of a first instance of said second data structure with values of said correspondingly mapped data element instances of said first instance of said first data structure in accordance with said first mapping specification. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43)
-
-
29. The method of 28, further comprising successively selecting each input node of said input-DOM tree and comparing each selected input node to each of said one or more target nodes.
-
44. A computer implemented method for populating data elements of a Java data structure comprising one or more data objects and one or more data object relationships defining a first shape, with values of corresponding data elements of a XML data structure having a second one or more data elements and one or more data element relationships defining a second shape, where the first shape and second shape are not equivalent, the method comprising:
-
initializing empty objects for each collection type and complex type appearing in at least a mapping specification specifying mapping of said data elements of said XML data structure to corresponding data objects of said Java data structure;
generating an annotated DOM tree representing mapping specifications of said data mapping specification; and
building data objects having corresponding values based at least in part on the annotated DOM tree representation. - View Dependent Claims (45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 59)
-
-
51. The method of 50, further comprising successively selecting each input node of said input-DOM tree and comparing each selected input node to each of said one or more target nodes.
-
60. A computer implemented method for populating data elements of a XML data structure having a first one or more data elements and one or more data element relationships defining a first shape, with values of corresponding data objects of a Java data structure having a second one or more data elements and data element relationships defining a second shape, where the first shape and second shape are not equivalent, the method comprising:
-
generating an annotated DOM tree representing XML-mapping directives of said first mapping specification;
traversing nodes of said annotated DOM tree representation in order, successively selecting and processing each child node; and
outputting and appending the results of said processing according for XML values and XML attributes. - View Dependent Claims (61, 62, 63, 64, 65)
-
-
66. An article of manufacture comprising a storage medium having stored therein a plurality of programming instructions designed to program an apparatus to perform a data mapping, which programming instructions when executed enable the apparatus to
receive a first mapping specification mapping data elements of a first data structure of a first data representation to data elements of a second data structure of a second data representation, the first data structure having a first one or more data elements and a first one or more data element relationships defining a first shape and the second data structure having a second one or more data elements and a second one or more data element relationships defining a second shape, where the first shape and the second shape are not equivalent; -
receive a first instance of said first data structure having first instances of said first one or more data elements of said first data structure; and
populate data element instances of a first instance of said second data structure with values of said correspondingly mapped data element instances of said first instance of said first data structure in accordance with said first mapping specification. - View Dependent Claims (67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108)
-
Specification