It surely is a little bit of overhead, but you can work with very large
xml files. Take a look at the XPath Accelerator encoding (so you can
also map XPath queries to SQL queries and enhance the whole thing with
staircase join and so on to gain performance benefits). Also tree
knowledge can be exploited to a great extend.
The DBIS group at the university of constanze has built a native
open-source XML database, where this knowledge is incorporated
(BaseX.org).
Basically you can use SAX to parse the xml files and create a table
based on the XPath Accellerator scheme.
hth,
Johannes