xql (libxql) is a library. Of course, you still need and user interface to access the objects and the files. See for example kxql, a multi-purpose kde interface to xql. Other interfaces, like e. g. web-based (intranet, internet access to xql) should be done.
xql uses a set of tables in your database beginning with "xql". You may not alter these tables outside from xql, since system vital information is stored here. The xql database will become corrupt if you change any data here, e. g. with another sql commandline tool (sql*plus, psql, .... ). To setup the initial database schema, use
this should create the basic tables and create an initial user "admin" with password "admin". You should change this user asap. After this basic setup, the database is ready for use. During the use of the database, further tables may be created (in fact, each time you create a new type). You may now create users, Object types and finally instances of your objects.
The "things" you may store in the xql database are always "Instances" of certain "Types". You may define your own (aggregated) "Types".
To define a composite type, create a type of the objectclass "xqlObjectWithAttributes". This is only a container for attributes, which themselves are types of the objectclass "xqlInt" or "xqlString". These may contain data. You may attach certain Attributes to your composite type.
If you have finished the definition of your attributes, and types, you can now instanciate your composite types. This creates an instance of the given type, which may now hold user data.
xqlString "DocumentName" xqlInt "Pages" xqlDate "ReleasedAt" xqlObjectWithAttributes: "Document", containing "DocumentName", "Pages", "ReleasedAt".
Now you may instanciate your type "Document", filling the different attribute values.