An XML wrapper queries an XML document in an on-the-fly manner so that
only parent nodes in the document that satisfy the query are extracted
and then unnested. The parent nodes and associated descendent nodes are
located using XPath expressions contained as options in data definition
language (DDL) statements. The parent nodes satisfying the query and
associated descendent nodes are extracted and stored outside of a
database according to a relational schema. The wrapper facilitates
applications that use convention SQL queries and views to operate on that
information stored according to the relational schema. The wrapper also
responds to query optimizer requests for costs associated with queries
against external data sources associated with the wrapper.