Patent ID: 8103695

Claim:
A computer-implemented method comprising: in response to determining that a database table that will be generated to store instances of a particular Extensible Markup Language (XML) element specified in a particular XML schema will have more than a specified maximum number of columns-per-table permitted by a database management system (DBMS), traversing, using postorder traversal, a tree that represents a structure of the particular XML schema; in response to determining, at a particular node of the tree traversed, that a flattened size of an XML element that corresponds to the particular node is greater than a specified threshold, selecting the XML element that corresponds to the particular node to be moved out-of-line; in response to selecting the XML element that corresponds to the particular node to be moved out-of-line, generating a particular child database table to store instances of the XML element that corresponds to the particular node if a child database table to store instances of the XML element that corresponds to the particular node does not already exist; and automatically generating a parent database table to store instances of an element that contains the XML element, excluding instances of the XML element; wherein the particular child database table is separate from the parent database table; wherein the step of generating the particular child database table comprises storing, on a non-transitory computer-readable storage medium, data that defines the particular child database table.