Documentation
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
ngramindex.- 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
Anttasks 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
.jarfiles 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
.jarfiles 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
- Advanced Installation Methods
- Ant Tasks
- Application properties
- Application Server Configuration
- Author Reference
- Code Review Guide
- Configuring Database Indexes
- Configuring Database Triggers
- Containerization via Docker
- Creating CRUDS applications with XRX in eXist
- Dashboard
- Database Backup and Restore
- Database Deployment
- Developer's Guide to Modularized Indexes
- Documentation
Subject index
This section lists all available articles by subject.
- Configuring Database Indexes
- Configuring Database Triggers
- Containerization via Docker
- Creating CRUDS applications with XRX in eXist
- Extracting Content from Binary Files
- FO Rendering
- Getting Started with Web Application Development
- HTML Templating Module
- HTTP-Related Functions in the Request and Session Modules
- Integration Testing
- Package Repository
- REST-Style Web API
- Scheduler Module
- Security
- Testing
- The xmldb module
- Tuning the Database
- URL Rewriting
- Using collections in eXist-db
- Versioning Extensions
- XForms Introduction
- XInclude Support
- XML Validation
- XQSuite - Annotation-based Test Framework for XQuery
- XSL transformations
- Basic Installation
- Creating CRUDS applications with XRX in eXist
- Dashboard
- Documentation
- Getting Data into eXist-db
- Getting Help
- Getting Started with Web Application Development
- How to report issues
- Learning XQuery and eXist-db
- Using collections in eXist-db
- Using oXygen with eXist-db
- WebDAV
- Building eXist-db
- Database Deployment
- Developer's Guide to Modularized Indexes
- Extension Modules
- Java Management Extensions (JMX)
- Log4j Logging Guide
- SOAP Interface Developer's Guide
- Writing Java Applications with the XML:DB API
- XML-RPC API Developer's Guide
- Advanced Installation Methods
- Ant Tasks
- Application Server Configuration
- Building eXist-db
- Containerization via Docker
- Database Backup and Restore
- Database Deployment
- Java Admin Client
- Java Management Extensions (JMX)
- Known Issues when upgrading
- Performance FAQ
- Production Use - Good Practice
- Production use - Proxying eXist-db behind a Web Server
- Scheduler Module
- Security
- Troubleshooting
- Tuning the Database
- Upgrade Guide