Documentation

(1Q20)


Welcome to eXist-db. This article serves as an index to the eXist-db documentation articles, which will help you get to know, install, and use eXist-db.

Getting Started

The following articles and resources will help you get started using eXist-db.

Basic Installation

How to install eXist-db and fire it up for the first time.

Screencasts

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

eXist-db Book

There is a whole book about eXist-db, written for both the novice and the more experienced user.

Getting Help

How to get in touch with the eXist-db community for help and advice.

Dashboard

How to use and populate eXist-db's main user interface, the dashboard.

Uploading files

How to get files in and populate your database.

WebDAV

How to upload and manage files in the database with a WebDAV client.

Using Collections in eXist-db

How to set up a collection structure in eXist-db.

Learning XQuery

Tips and resources for newcomers to XQuery and eXist-db.

How to use oXygen together with eXist-db

If you're using oXygen, this article describes how to make the most of it in combination with eXist-db.

How to report an issue

If you think you've found a bug, this article will tell you how to report it.

XQuery

eXist-db's main programming language is XQuery. This documentation set does not contain a full introduction to XQuery. For this read the excellent book about XQuery by Priscilla Walmsley. The XQuery related articles below discuss specific eXist-db related details or shed light on some of the lesser known features of the language.

Learning XQuery

Tips and resources for newcomers to XQuery and eXist-db.

XQuery in eXist-db

This discusses the XQuery implementation of eXist-db for the somewhat more experienced user.

KWIC (Keywords In Context)

How to display search results in context (parts of the document surrounding the search match).

XQuery Update Extensions

How to update XML stored in the database using eXist-db's XQuery Update extension.

xqDoc

Describes eXist-db's support for the xqDoc, a standard for documenting your XQuery functions and libraries with specially-formatted comments.

XQSuite

How to add tests to your XQuery functions with XQSuite, an annotation-based framework.

Application development

eXist-db is not only a database but also an excellent application development platform. The following articles will help you find your way in this:

Getting Started with Web Application Development

How to build a basic web application using the built-in HTML templating framework.

Using Collections in eXist-db

How to set up your application's collection structure in eXist-db.

xmldb module

An overview of the xmldb XQuery function module for querying and manipulating database contents.

Containerization via Docker

How to use eXist-db's official docker images for development and production.

URL Rewriting

How to control the mapping of URL's to code in eXist-db. This is one the most important mechanisms in eXist-db to base applications on.

XSL Transformations

How to perform XSL Transformation with XQuery.

FO Rendering

How to perform FO (Formatting Objects) Rendering with XQuery.

Indexing

An overview of eXist-db's indexes and how to configure them. More about indexing in:

Full Text indexing

How to use eXist-db's Lucene based full-text indexing.

N-Gram Index

How to configure the ngram index.

Range Index

How to use eXist-db's super fast modularized range index based on Apache Lucene.

There is also an older version of the range index, kept for compatibility reasons. Usage of this range index is discouraged.

Testing and Validation

This will provide you with an overview of testing eXist-db and its applications. More about testing in:

XML Validation

How to validate XML in eXist-db.

XQSuite

XQSuite is an annotation-based framework that allows you to add unit tests to XQuery functions and execute them.

Integration testing

How to configure automated test pipelines, and recommends minimal test configurations.

XInclude Support

How XML inclusion (XInclude) processing works in eXist-db.

The beginners guide to XRX

How to create a simple application using XRX (XForms, REST, and XQuery).

Package Repository

How to work with EXPath packages in eXist-db.

Content extraction

How to extract and index non-XML contents, like PDF or Word documents.

REST-Style Web API

How to use eXist-db's REST interface, a useful tool in building applications.

HTTP Request/Session

An overview of functions for working with HTTP requests and sessions.

Scheduler Module

How to use eXist-db job scheduling system to regularly execute tasks.

Security

When you get serious writing applications, you need to be aware of the security model of eXist-db.

XForms Introduction

Introduces the bright shiny world of XForms inside eXist-db.

Tuning the Database

How to optimize your queries and indexes.

Configuring Database Triggers

How to use and configure triggers in your database that fire when things get created, updated or deleted.

Versioning Extension

How to use the built-in versioning system of eXist-db.

Interfaces

eXist-db provides many ways of interfacing with the database.

REST-Style Web API

How to use eXist-db's REST interface.

SOAP Interface Developer's Guide

How to add a SOAP interface to eXist-db using Java code.

XML-RPC API Developer's Guide

How to interface with eXist-db using the XML-RPC API.

WebDAV

How to use eXist-db's WebDAV interface.

Operations

Operations is the art of installing eXist-db and keeping it up-and-running professionally. This includes things like more advanced installation types, doing backups and restores, automate data transfers, etc.

Java Admin Client

This is a utility for performing basic administrative tasks. It has both a GUI and a command line interface.

Configuration

How to configure eXist-db using its main configuration file conf.xml.

Backups

How to backup and restore an eXist-db database.

Advanced Installation

How to install eXist-db on a headless (no GUI) system and run it as a service.

Ant tasks

How to use the specific eXist-db Ant tasks to automate common system administration and operation tasks.

Database Deployment

How to install eXist-db as a stand-alone or embedded server.

Building eXist-db

How to build Java .jar files from an eXist-db distribution.

Performance FAQ

A short FAQ about eXist-db's performance.

Production Use - Good Practice

How to configure eXist-db for use on a production system.

Production use - Proxying eXist-db behind a Web Server

How to proxy eXist-db behind a web server like Nginx or Apache.

JMX

eXist-db has a JMX interface for access to internal statistics about memory, caching, etc.

Scheduler Module

How to schedule jobs (like backups).

Security

The security model of eXist-db. Also, how to connect eXist-db to other authentication realms like LDAP or OAuth.

Tuning the Database

How to optimize the database's performance.

Performance FAQ

A short FAQ about eXist-db's performance.

Upgrade Guide

How to upgrade from an older version of eXist-db.

Incompatibilities

Consult this article when you upgrade from an older version of eXist-db.

Java development

eXist-db is based on Java. Besides using eXist-db as a stand-alone application platform, you can also use it from within Java code. The following articles will help you with this.

Database Deployment

How to install eXist-db as a stand-alone or embedded server. An embedded server can be accessed directly from Java code.

Writing Java Applications with the XML:DB API

How to work with eXist-db from Java code using the XML:DB API. This API provides a common interface to native or XML-enabled databases and supports the development of portable, reusable applications.

Building eXist-db

How to build Java .jar files from an eXist-db distribution.

Developer's Guide to Modularized Indexes

How the internal indexing mechanism works and how to add your own indexes to it.

Log4j Logging Guide

How to add logging to your Java code using Log4J.

SOAP Interface Developer's Guide

How to add a SOAP interface to eXist-db using Java code.

XML-RPC API Developer's Guide

How to interface with eXist-db using the XML-RPC API.

Extension Modules

How to create eXist-db extension modules (in Java); contains a list of available extension modules.

JMX

eXist-db provides access to various management interfaces using JMX.

Developer's Guide to Modularized Indexes

How the internal indexing mechanism works and how to add your own indexes to it.

Log4j Logging Guide

How to add logging to your Java code using Log4J.

SOAP Interface Developer's Guide

How to add a SOAP interface to eXist-db using Java code.

XML-RPC API Developer's Guide

How to interface with eXist-db using the XML-RPC API.

Extension Modules

How to create eXist-db extension modules (in Java) and contains a list of available extension modules.

Developing eXist-db

The following articles provide information on how to work on eXist-db itself, either by enhancing its code or providing documentation.

eXist-db Developer Manifesto

Guidelines for developers who wish to contribute to eXist-db's code base.

Code Review Guide

How to review somebody else's (or your own of course) code.

Author Reference

How to write a documentation article for eXist-db (like the ones you are looking at now).

Legal Statement

The legal status of eXist-db as an open source product.

Alphabetical index

This section lists all available articles in title alphabetical order.

A B C D E F G H I J K L N P R S T U V W X

A:

B:

C:

D:

E:

F:

G:

H:

I:

J:

K:

L:

N:

P:

R:

S:

T:

U:

V:

W:

X:

Subject index

This section lists all available articles by subject.

Application-development:

Authoring:

Collection:

Exist:

Filesystem:

Getting-started:

Indexes:

Indexing:

Installation:

Interfaces:

Java-development:

Operations:

Properties:

Synchronize:

Testing:

Xquery:

Xquery: