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
- How to report issues
- HTML Templating Module
- HTTP-Related Functions in the Request and Session Modules
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