A system for storing and dynamically updating data represented in the
Extensible Markup Language (XML) which separates the data values in at
least some of the elements of an XML document and places those data
values in relational database tables where they may be processed using
conventional RDBMS techniques. The hierarchical structure of the XML
document is saved separately in an XML skeleton object from which element
data other than primary key values has been removed. The XML documents
document type definition (DTD) is stored, along with additional property
data used the RDBMS, in an XML Definition object. The additional property
information includes the identification of primary key data values which
are used to link the structural definition data to the value data stored
in the tables, the designation of data types used for more efficient
storage of data from predetermined XML elements, the designation of
selected element data for indexing and for column storage, and the
designation or relational integrity constraints which help insure that
logically connected data is not inappropriately deleted or updated. The
XML data as stored in the relational tables can be retrieved as a
complete XML document, or selected XML elements can be retrieved by
themselves, by merging the table data into the XML skeleton.