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