{-------------------------------------------------------------------------------------
-
- The XQuery Compiler and Interpreter
- Programmer: Leonidas Fegaras
- Email: fegaras@cse.uta.edu
- Web: http://lambda.uta.edu/
- Creation: 03/22/08, last update: 08/19/08
- 
- Copyright (c) 2008 by Leonidas Fegaras, the University of Texas at Arlington. All rights reserved.
- This material is provided as is, with absolutely no warranty expressed or implied.
- Any use is at your own risk. Permission is hereby granted to use or copy this program
- for any purpose, provided the above notices are retained on all copies.
-
--------------------------------------------------------------------------------------}


{-# OPTIONS -cpp #-}


-- | HXQ is a fast and space-efficient compiler from XQuery (the standard
-- query language for XML) to embedded Haskell code. The translation is
-- based on Haskell templates. It also provides an interpreter for
-- evaluating ad-hoc XQueries read from input or from files
-- and optional database connectivity using HDBC.
-- For more information, look at <http://lambda.uta.edu/HXQ/>.
module Text.XML.HXQ.XQuery (
       -- * The XML Data Representation
       XTree(..), XSeq, Tag, AttList, putXSeq,
       -- * The XQuery Compiler
       xq, xe,
       -- * The XQuery Interpreter
       xquery,
       -- * The XQuery Compiler with Database Connectivity
       xqdb,
       -- * The XQuery Interpreter with Database Connectivity
       xqueryDB,
       -- * Shredding and Publishing XML Documents Using a Relational Database
       genSchema, shred, shredC, printSchema, createIndex,
       -- * Other Functions
       XMLEvent(..), connect, disconnect, commit, rollback, prepareSQL, executeSQL, qx
    ) where

import HXML(AttList)
import Text.XML.HXQ.XTree
import Text.XML.HXQ.OptionalDB
import XMLParse
import Text.XML.HXQ.Compiler
import Text.XML.HXQ.Interpreter