Documentation

Recommended Reading

Screencasts

For the first steps with your freshly installed eXist-db, we suggest to watch the screencasts available on the eXist-db homepage.

If you are new to eXist-db, we recommend that you read these articles first:

  • Quick Start: How to download, install, and get up and running with eXist-db.

  • Dashboard: Using the package manager to install or remove packages.

  • Getting Started with Web Application Development in eXist-db: eXist-db provides a complete platform for the development of rich web applications based on XML and related technologies

  • Indexing: Properly configured indexes have a huge impact on database performance! Some expressions might run a hundred times faster with an index. Must read.

  • Learning XQuery: (For beginners) Tips and resources for learning XQuery for use with eXist-db.

  • XQuery Support: (For advanced developers) In depth discussion of eXist-db's support for the XQuery language, including features and extensions.

  • Tuning the Database: Tips and best practices for optimizing the performance of your queries.

You can search the entire documentation library using the search box to the right. If you have questions that you can't find the answer to here, see the articles Troubleshooting and Getting Help.

All Documentation

Besides these articles, you can search eXist-db's XQuery function module library.

Getting Started

How to download, install, and get up and running with eXist-db.
How to install on a headless system; how to run as a background service.
Using the Dashboard to install applications from the eXist-db.org public application repository.
eXist-db provides a complete platform for the development of rich web applications based on XML and related technologies
How to get your data into eXist-db.
Upgrading from an older version of eXist-db.
Troubleshooting installation problems and other advanced installation topics.

General

How to configure indexes (must read).
Alternatives for server deployment.
Using various interfaces: XML:DB API, XML-RPC, REST, SOAP.
How to set up oXygen XML Editor for use with eXist-db.
Security features including authentication realms (LDAP, OAuth, OpenID), managing users and groups, changing passwords, and permissions and access controls.
Configuring the server.
Tips and best practices for optimizing the performance of your queries.
Manage libraries & application packages (.xar) using eXist-db Package Repository.
Tips and resources for beginners learning XQuery for use with eXist-db.
In depth discussion of eXist-db's support for the XQuery language, including features and extensions.

Documentation for Specific Features

How to automate tasks with Ant.
How to backup/restore your database contents.
How to configure triggers.
How to extract content from binary files.
The request and session modules contain functions for performing HTTP-related operations.
Java Management Extensions (JMX) support.
Using the Java client from the command line.
An XQuery module to easily produce a Keywords in Context (KWIC) output of search results.
Apache Lucene integrated into eXist-db's XQuery engine.
Configure two or more eXist-db instances to work together to automatically synchronize documents.
An optional module to schedule jobs.
Simple-but-powerful URL rewriting and redirection. Provides some support for MVC (model-view-controller) and servlet-based pipelines.
A module with numerous useful utility functions.
Validate XML documents.
Versioning extensions.
How to setup your favourite WebDAV application.
XQuery access control.
XInclude support in eXist-db.
XForms support in eXist-db (using betterFORM or XSLTForms).
Functions for manipulating database contents.
The format for documenting XQuery library and main modules.
Extensions to update document fragments from within an XQuery.
A debugging interface to XQuery code on the server. This is functional, but incomplete (the client side in particular). We used emacs and vi as our main clients during development.
The transform module provides functions for directly applying an XSL stylesheet to an XML fragment within an XQuery script.

eXist-db Development

Getting Started with Web Application Development in eXist-db: eXist-db provides a complete platform for the development of rich web applications based on XML and related technologies
Compiling and building eXist-db from GitHub.
Guidelines for contributing to the eXist-db codebase.
Notes on reviewing code during development.
Perform XQuery tests with the XQuery unit test suite.
How use Log4J within eXist-db code.
Describes how modularized indexes work through a use case.
Describes how to use XForms to perform CRUD operations within an XRX framework.

Production use

Best Practices for production environments.
How to proxy eXist-db behind various web servers.

External Libraries

The following is an incomplete list of libraries to connect eXist-db with other languages.

An eXist-db driver for the XQuery API for Java (XQJ)
node.js Client Module for the eXist-db Native XML Database
A client that abstracts out the XML RPC calls for eXist-db.
A Scala Library based on the XQuery API for Java (XQJ)