1. A method for indexing and querying XML documents stored in a relational database, the method comprising: a) allowing, by a computer, a user to choose, within a database table, one or more columns for storing XML data of a known structure; b) obtaining from the user one or more XML paths for indexed data, each of the obtained one or more XML paths being stored in a static index table; c) creating, in response to the obtained one or more XML paths, at least one dynamic index table for each static index table, the dynamic index table being updated upon data being entered into the database table; d) intercepting a user's query to process a XML expression part of the query and converting the XML expression part into one or more rows in the static index table; e) generating a new query against the dynamic indexing tables, using values obtained from the static index table, and executing the generated query; f) rewriting the user's query by transforming XML path part of the user's query expression into a format understood by a database query engine; and g) returning a result to the user, after executing the rewritten query, together with any non-XML part of the user's query, that is executed by the database query engine.