Method for grouping of dynamic schema data using XML
First Claim
1. Computer readable code readable by a computer system in a computing environment for gathering data having dynamically variable record formats such as those created when a dynamic schema is used with a data repository, comprising:
- an input data source comprising one or more records, wherein each of said records has said dynamically variable record format, and wherein said dynamically variable record format of each said record comprises a plurality of dynamically variable fields;
a subprocess for processing a gather verb specification, wherein said gather verb specification identifies a selected one of said records from said input data source and an output data destination;
a subprocess for gathering said dynamically variable fields from said selected one of said records according to said gather verb specification; and
a subprocess for transferring said gathered dynamically variable fields to said output data destination according to said gather verb specification, wherein said subprocess for gathering and said subprocess for transferring flexibly adapt to a presence or an absence of said dynamically variable fields.
2 Assignments
0 Petitions
Accused Products
Abstract
A method, system, and computer-readable code for a technique with which data having dynamically variable record formats (such as that created when a dynamic schema is used with a data repository) can be easily and efficiently accommodated, without requiring modification of the code that processes the data each time the underlying data format changes. This mechanism provides a novel way to gather data that may have had changes to its format, and create a structured representation of this data that flexibly adapts to format variations. This novel technique enables all added data fields in a record to be made available for processing and removed data fields to be omitted, without requiring advance knowledge of the added and removed fields. In the preferred embodiment, a DOM tree created from an XML representation of the source data is used by the present invention as it creates an output DOM tree. Optionally, the results of an LDAP query from an LDAP directory can be used as the source data.
-
Citations
18 Claims
-
1. Computer readable code readable by a computer system in a computing environment for gathering data having dynamically variable record formats such as those created when a dynamic schema is used with a data repository, comprising:
-
an input data source comprising one or more records, wherein each of said records has said dynamically variable record format, and wherein said dynamically variable record format of each said record comprises a plurality of dynamically variable fields;
a subprocess for processing a gather verb specification, wherein said gather verb specification identifies a selected one of said records from said input data source and an output data destination;
a subprocess for gathering said dynamically variable fields from said selected one of said records according to said gather verb specification; and
a subprocess for transferring said gathered dynamically variable fields to said output data destination according to said gather verb specification, wherein said subprocess for gathering and said subprocess for transferring flexibly adapt to a presence or an absence of said dynamically variable fields. - View Dependent Claims (2, 3, 4, 5, 6)
said gather verb specification further identifies;
a required group of fields, an optional group of fields, an excluded group of fields, and an other group of fields, wherein one or more of said optional group, said excluded group, and said other group may be empty;
wherein said subprocess for gathering further comprises;
a first subprocess for locating a field from said dynamically variable fields corresponding to each of said fields in said required group, and generating an error if any of said fields in said required group cannot be located;
a second subprocess for locating a field from said dynamically variable fields corresponding to each of said fields in said optional group if said corresponding field is present in said selected record;
a third subprocess for locating a field from said dynamically variable fields corresponding to each of said fields in said excluded group if said corresponding field is present in said selected record; and
fourth subprocess for locating all fields from said dynamically variable fields that did not correspond to any of said fields in said required, optional, or excluded groups; and
wherein said subprocess for transferring further comprises;
a fifth subprocess for transferring each of said fields located by said first subprocess for locating to a corresponding required output field in said output data destination;
a sixth subprocess for transferring each of said fields located by said second subprocess for locating to a corresponding optional output field in said output data destination;
a seventh subprocess for preventing transfer of each of said fields located by said third subprocess for locating to said output data destination; and
an eighth subprocess for transferring each of said fields located by said fourth subprocess for locating to a corresponding other output field in said output data destination.
-
-
5. Computer readable code for gathering data having dynamically variable record formats according to claim 1, wherein said input data source represents a result of a query from a directory database.
-
6. Computer readable code for gathering data having dynamically variable record formats according to claim 5, wherein said directory database is accessed using a Lightweight Directory Access Protocol (LDAP).
-
7. A system in a computing environment for gathering data having dynamically variable record formats such as those created when a dynamic schema is used with a data repository, comprising:
-
an input data source comprising one or more records, wherein each of said records has said dynamically variable record format, and wherein said dynamically variable record format of each said record comprises a plurality of dynamically variable fields;
means for processing a gather verb specification, wherein said gather verb specification identifies a selected one of said records from said input data source and an output data destination;
means for gathering said dynamically variable fields from said selected one of said records according to said gather verb specification; and
means for transferring said gathered dynamically variable fields to said output data destination according to said gather verb specification, wherein said means for gathering and said subprocess for transferring flexibly adapt to a presence or an absence of said dynamically variable fields. - View Dependent Claims (8, 9, 10, 11, 12)
said gather verb specification further identifies;
a required group of fields, an optional group of fields, an excluded group of fields, and an other group of fields, wherein one or more of said optional group, said excluded group, and said other group may be empty;
wherein said means for gathering further comprises;
first means for locating a field from said dynamically variable fields corresponding to each of said fields in said required group, and generating an error if any of said fields in said required group cannot be located;
second means for locating a field from said dynamically variable fields corresponding to each of said fields in said optional group if said corresponding field is present in said selected record;
third means for locating a field from said dynamically variable fields corresponding to each of said fields in said excluded group if said corresponding field is present in said selected record; and
fourth means for locating all, fields from said dynamically variable fields that did not correspond to any of said fields in said required, optional, or excluded groups; and
wherein said means for transferring further comprises;
fifth means for transferring each of said fields located by said first means for locating to a corresponding required output field in said output data destination;
sixth means for transferring each of said fields located by said second means for locating to a corresponding optional output field in said output data destination;
seventh means for preventing transfer of each of said fields located by said third means for locating to said output data destination; and
eighth means for transferring each of said fields located by said fourth means for locating to a corresponding other output field in said output data destination.
-
-
11. The system for gathering data having dynamically variable record formats according to claim 7, wherein said input data source represents a result of a query from a directory database.
-
12. The system for gathering data having dynamically variable record formats according to claim 11, wherein said directory database is accessed using a Lightweight Directory Access Protocol (LDAP).
-
13. A method for gathering data having dynamically variable record formats such as those created when a dynamic schema is used with a data repository in a computing environent, comprising the steps of:
-
providing an input data source comprising one or more records, wherein each of said records has said dynamically variable record format, and wherein said dynamically variable record format of each said record comprises a plurality of dynamically variable fields;
processing a gather verb specification, wherein said gather verb specification identifies a selected one of said records from said input data source and an output data destination;
gathering said dynamically variable fields from said selected one of said records according to said gather verb specification; and
transferring said gathered dynamically variable fields to said output data destination according to said gather verb specification, wherein said gathering step and said transferring step flexibly adapt to a presence or an absence of said dynamically variable fields. - View Dependent Claims (14, 15, 16, 17, 18)
said gather verb specification further identifies;
a required group of fields, an optional group of fields, an excluded group of fields, and an other group of fields, wherein one or more of said optional group, said excluded group and said other group may be empty;
wherein said gathering step further comprises;
a first step for locating a field from said dynamically variable fields corresponding to each of said fields in said required group, and generating an error if any of said fields in said required group cannot be located;
a second step for locating a field from said dynamically variable fields corresponding to each of said fields in said optional group if said corresponding field is present in said selected record;
a third step for locating a field from said dynamically variable fields corresponding to each of said fields in said excluded group if said corresponding field is present in said selected record; and
a fourth step for locating all fields from said dynamically variable fields that did not correspond to any of said fields in said required, optional, or excluded groups; and
wherein said transferring step further comprises;
a fifth step for transferring each of said fields located by said first step for locating to a corresponding required output field in said output data destination;
a sixth step for transferring each of said fields located by said second step for locating to a corresponding optional output field in said output data destination;
a seventh step for preventing transfer of each of said fields located by said third step for locating to said output data destination; and
an eighth step for transferring each of said fields located by said fourth step for locating to a corresponding other output field in said output data destination.
-
-
17. Computer readable code for gathering data having dynamically variable record formats according to claim 13, wherein said input data source represents a result of a query from a directory database.
-
18. Computer readable code for gathering data having dynamically variable record formats according to claim 17, wherein said directory database is accessed using a Lightweight Directory Access Protocol (LDAP).
Specification