Patent ID: 7873899

Claim:
A computer-implemented method for generating and using a mapping scheme, the method comprising steps of: receiving commands from a user, wherein said commands establish a mapping between attributes of an XML document and attributes of a relational database; wherein said attributes of said relational database correspond to columns in tables in said relational database; based on said commands, automatically generating a mapping scheme that represents said mapping, wherein said mapping scheme includes at least one of: multiple attributes of said XML document mapped to a single attribute of said relational database; and multiple attributes of said relational database mapped to a single attribute of said XML document; and using said mapping scheme to perform a single transformation that moves said XML document directly into said relational database: (a) without materializing said entire XML document separate from said XML document and said relational database during said transformation, and (b) without creating and storing any representation of said entire XML document separate from said XML document and said relational database during said transformation; wherein using said mapping scheme to perform said single transformation comprises: determining, based on said mapping scheme, first one or more columns of first one or more tables of said relational database to which a first XML element of said XML document maps; before processing a second XML element of said XML document, storing said first XML element in said first one or more columns of said first one or more tables of said relational database; after storing of said first XML element is completed, determining, based on said mapping scheme, second one or more columns of second one or more tables of said relational database to which said second XML element maps; and storing said second XML element in said second one or more columns of said second one or more tables of said relational database; wherein the steps of the method are performed by one or more computing devices.