Documentation

(1Q18)


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

Getting Started

The following articles and resources will help you getting started using eXist.

Basic Installation

How to do a basic installation of 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

This article will tell you where to go for help and advice.

Dashboard

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

Uploading files

Learn how to get files in and populate your database.

WebDAV

One of the ways to easily view and populate the database is using the WebDAV protocol.

Using Collections in eXist-db

Provide information about how to set up a collection structure in eXist-db.

Learning XQuery

Provides 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 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

This provides 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)

This article will learn you how to display search results in context (parts of the document surrounding the search match).

XQuery Update Extensions

Tells you how to update XML stored in the database using eXist-db's update extension.

xqDoc

Describes the built-in XQuery documentation system.

XQsuite

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

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

This will help you build a basic web application using the built-in HTML templating framework.

Using Collections in eXist-db

Provide information about how to set up your application's collection structure in eXist-db.

xmldb module

Provides an overview of the functions to query and manipulate the database contents in the xmldb module.

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

Explains how to perform XSL Transformation in XQuery code.

Indexing

This will provide you with an overview of eXist-db's indexes and how to configure them. More about indexing in:

Full Text indexing

Will provide with all the information necessary to use eXist-db's Lucene based full-text indexing.

N-Gram Index

Provides information on how to configure the ngram index.

Range Index

This article describes 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

Explains how to do XML validation in eXist-db.

XQsuite

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

Integration testing

Provides information on how to configure automated test pipelines, and recommends minimal test configurations.

XInclude Support

Explains how to use XInclude in eXist-db.

The beginners guide to XRX

This article will learn you how to create a simple application using XRX (XForms, REST, XQuery).

Package Repository

How to work with EXPath packages in eXist-db.

Content extraction

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

REST-Style Web API

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

HTTP Request/Session

Provides information about the functions available working with HTTP requests and sessions.

Scheduler Module

How to regularly schedule jobs.

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 to you.

Tuning the Database

Explains what you can do to optimize your queries and indexes.

Configuring Database Triggers

Will tell you how to use and configure triggers in your database that fire when things get created, updated or deleted.

Versioning Extension

Explains 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

Explains how to use eXist-db's REST interface.

SOAP Interface Developer's Guide

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

XML-RPC API Developer's Guide

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

WebDAV

Explains 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

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

Performance FAQ

Contains a short FAQ about eXist-db's performance.

Production Use - Good Practice

When you use eXist-db on a production system, please read this for advice.

Production use - Proxying eXist-db behind a Web Server

You can proxy eXist-db behind a web server like Nginx or Apache. This article will provide you with some examples.

JMX

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

incompatibilities overview

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

Scheduler Module

Scheduling jobs (like backups) is a useful tool in an eXist-db installation.

Security

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

Tuning the Database

Explains what you can do to optimize the database's performance.

Performance FAQ

Contains a short FAQ about eXist-db's performance.

Upgrade Guide

Helps you updating to a new version of eXist-db.

incompatibilities overview

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

Explains 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

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

Developer's Guide to Modularized Indexes

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

Log4j Logging Guide

This article explains how to add logging to your Java code using Log4J.

SOAP Interface Developer's Guide

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

XML-RPC API Developer's Guide

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

Extension Modules

Provides an overview of how to create eXist-db extension modules (in Java) and contains a list of available extension modules.

JMX

eXist provides access to various management interfaces using JMX.

Developer's Guide to Modularized Indexes

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

Log4j Logging Guide

This article explains how to add logging to your Java code using Log4J.

SOAP Interface Developer's Guide

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

XML-RPC API Developer's Guide

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

Extension Modules

Provides an overview of 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

This article lays out guidelines for developers that wish to contribute to eXist-db's code base itself.

Code Review Guide

Provides instructions how to review somebody else's (or your own of course) code.

Author Reference

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

Legal Statement

Provides information about the legal status of eXist 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:

Exist:

Getting-started:

Indexes:

Indexing:

Installation:

Interfaces:

Java-development:

Operations:

Testing:

Xquery:

Xquery: