The extended preorder numbering scheme provides
opportunities for storing XML data using relational databases. In our work, we
implemented the XML Indexing and Storage System (XISS) on top of a relational
database system (XISS/R). Since there are several choices on how to store the
XML data using the numbering scheme, we implemented several relational schemas
and compared their performances. The XISS/R system provides a web interface for
user to issue queries, which are handled by a query engine written in PHP on
server side. The query engine contacts a database server to process queries and
return the results.
The current implementation of XISS/R uses Oracle 9i to
store XML data and indexes, and provides a web query interface to a XPath query
engine that processes XPath statements on stored XML documents. Included in this
implementation are a loader application that parses XML documents and stores the
contents in database according to the XISS algorithms specifications, and the
query engine written in PHP that parses XPath queries into ANSI-92 compliant SQL
queries on the relations stored in Oracle 9i and returns the results set to the
user.
The system diagram for query processing is shown in the
above figure. In the diagram, the user sends an XPath query through the query
web page to the web server. The web server then passes the request to the XPath
query engine, which translates the XPath query into SQL statements according to
the relational schema in use. The database server running Oracle 9i processes
the SQL query and returns the result to the XPath query engine, which tags the
result and sends it to the user to display.