1. ViX
This is a web application, written in Django Framework for XML Validation and
XQuery interrogation against XML documents.
For XQuery interrogation , the users can choose form two different NOSQL
database engines: BaseX and eXist
BaseX is an XML database with XPath / XQuery 3.0 processor which include full
support for W3C standards, light and fast, open source
under BDS licence.
eXist and open source database management system built on XML technology , with
support for XQuery .
Django is an open source web application framework , written in Python, which
fallow the model-view-controller architecture pattern,
The core Django MVC framework consists of an object-relational mapper which
mediates between data models (defined as Python classes)
and a relational database ("Model");
There are 3 main modules in this application :
users management, for users registration and authentication
storage management which is responsible for storing and manipulating users
XML files
query module which foreword the users queries to the database servers.
Users Module:
Main views of this module are :
The registration form , where the new users can create new accounts
The login form, where registered users can access theirs stored
files, and execute QXuery interrogation against them
The logout form which destroy the user session
At register, the storage module is invoked to create some DEFAULT XML
files for the new user , the API module generate an API TOKEN
for future APIs requests and the Query module create a new database
user in BaseX server.
Storage management:
Main views of this module are :
The "New File" view where users can modify and existing XML file or
add a new one
The "List File" view , used for synchronous AXAJ request , for
populate "Existing Files" list
The "Delete File" view , user for remove a file from user's storage
Query Module:
Main views of this module are :
The XML validator which is used for validate new XML Files
The BaseX XQuery main view which interrogate the BaseX server for a
query result against a given XML file, using a public python client wrapper
The eXist XQuery main view which interrogate the eXist via an API
REST requests
Also responsible for generating query reports.
In this web application, is also used the AJAX technologies for asynchronous
request on server which let you "refresh"
just parts of the HTML, and make server request without need to reload the
current page.