EXist

Last updated
eXist-db
Original author(s) Wolfgang Meier
Developer(s) Pierrick Brihayne, Leif-Jöran Olsson, Adam Retter, [1] Dmitriy Shabanov, and Dannes Wessels.
Initial release2000 (2000)
Stable release
6.3.0 / October 26, 2024;0 days ago (2024-10-26)
Repository github.com/exist-db/exist/
Written inJava
Operating system Linux, Mac, Windows
Platform Java
Standard(s) XML, XQuery, XSLT, XPath, XUpdate, XQJ, DTD, XML Schema, RelaxNG
Type NoSQL DBMS
License GNU LGPL v2.1.
Website www.exist-db.org

eXist-db (or eXist for short) is an open source software project for NoSQL databases built on XML technology. It is classified as both a NoSQL document-oriented database system and a native XML database (and it provides support for XML, JSON, HTML and Binary documents). Unlike most relational database management systems (RDBMS) and NoSQL databases, eXist-db provides XQuery and XSLT as its query and application programming languages.

Contents

eXist-db is released under version 2.1 of the GNU LGPL.

Features

eXist-db allows software developers to persist XML/JSON/Binary documents without writing extensive middleware. eXist-db follows and extends many W3C XML standards such as XQuery. eXist-db also supports REST interfaces for interfacing with AJAX-type web forms. Applications such as XForms may save their data by using just a few lines of code. The WebDAV interface to eXist-db allows users to "drag and drop" XML files directly into the eXist-db database. eXist-db automatically indexes documents using a keyword indexing system.[ citation needed ]

History

eXist-db was created in 2000 by Wolfgang Meier.

eXist-db was awarded the best XML database of the year by InfoWorld in 2006. [2]

The companies eXist Solutions GmbH in Germany, and Evolved Binary in the UK, promote and provide support for the software. [3] [4]

There is an O'Reilly book for eXist-db which is co-authored by Adam Retter and Erik Siegel. [5]

Version Release date Changes
6.0.0 January 27, 2022 Fixes for Log4Shell vulnerability and breaking changes to bundled Apache XML-RPC libraries to resolve security issues. [6]
5.0.0 September 2, 2019 More than 1,400 commits including improvements to document and collection locking, migration of build system from Apache Ant to Apache Maven, support removed for running eXist-db in Apache Tomcat. [7]
4.0.0 February 14, 2018 New UserManager application, Cache Extension Module rewritten to use more performant Caffeine Java library, improvements to language search support, backward compatible with v3. [8]
3.0.0 February 9, 2017 Almost 1,500 changes including support for XQuery v3.1, and updated version of Jetty with HTTP/2 support. Java 8 is now a requirement. [9]
2.0.0 February 2013 Not backward compatible with v1. Changes to permission system to more closely follow UNIX permission model, web applications are stored in database rather than in webapp directory. [10]
1.0.0 October 2006

Supported standards and technologies

eXist-db has support for the following standards and technologies:

See also

Related Research Articles

<span class="mw-page-title-main">Object database</span> Type of database management system

An object database or object-oriented database is a database management system in which information is represented in the form of objects as used in object-oriented programming. Object databases are different from relational databases which are table-oriented. A third type, object–relational databases, is a hybrid of both approaches. Object databases have been considered since the early 1980s.

In computing, the term Extensible Stylesheet Language (XSL) is used to refer to a family of languages used to transform and render XML documents.

XSLT is a language originally designed for transforming XML documents into other XML documents, or other formats such as HTML for web pages, plain text or XSL Formatting Objects, which may subsequently be converted to other formats, such as PDF, PostScript and PNG. Support for JSON and plain-text transformation was added in later updates to the XSLT 1.0 specification.

In computing, the Java API for XML Processing (JAXP), one of the Java XML application programming interfaces (APIs), provides the capability of validating and parsing XML documents. It has three basic parsing interfaces:

A query language, also known as data query language or database query language (DQL), is a computer language used to make queries in databases and information systems. In database systems, query languages rely on strict theory to retrieve information. A well known example is the Structured Query Language (SQL).

Saxon is an XSLT and XQuery processor created by Michael Kay and now developed and maintained by the company he founded, Saxonica. There are open-source and also closed-source commercial versions. Versions exist for Java, JavaScript and .NET.

An XML database is a data persistence software system that allows data to be specified, and sometimes stored, in XML format. This data can be queried, transformed, exported and returned to a calling system. XML databases are a flavor of document-oriented databases which are in turn a category of NoSQL database.

<span class="mw-page-title-main">XMLSpy</span> XML and JSON editing integrated development environment

XMLSpy is a proprietary XML editor and integrated development environment (IDE) developed by Altova. XMLSpy allows developers to create XML-based and Web services applications using technologies such as XML, JSON, XBRL, XML Schema, XSLT, XPath, XQuery, WSDL and SOAP.

The identity transform is a data transformation that copies the source data into the destination data without change.

<span class="mw-page-title-main">Michael Howard Kay</span>

Michael Howard Kay Ph.D FBCS is the editor of the W3C XSLT 2.0 and 3.0 language specifications for performing XML transformations, and the developer of the Saxon XSLT and XQuery processing software.

<span class="mw-page-title-main">Oxygen XML Editor</span>

The Oxygen XML Editor is a multi-platform XML editor, XSLT/XQuery debugger and profiler with Unicode support. It is a Java application so it can run in Windows, Mac OS X, and Linux. It also has a version that can run as an Eclipse plugin.

XQuery Update Facility is an extension to the XML Query language, XQuery. It provides expressions that can be used to make changes to instances of the XQuery 1.0 and XPath 2.0 Data Model.

<span class="mw-page-title-main">Apache CouchDB</span> Document-oriented NoSQL database

Apache CouchDB is an open-source document-oriented NoSQL database, implemented in Erlang.

XPath is an expression language designed to support the query or transformation of XML documents. It was defined by the World Wide Web Consortium (W3C) in 1999, and can be used to compute values from the content of an XML document. Support for XPath exists in applications that support XML, such as web browsers, and many programming languages.

In software development XRX is a web application architecture based on XForms, REST and XQuery. XRX applications store data on both the web client and on the web server in XML format and do not require a translation between data formats. XRX is considered a simple and elegant application architecture due to the minimal number of translations needed to transport data between client and server systems. The XRX architecture is also tightly coupled to W3C standards to ensure XRX applications will be robust in the future. Because XRX applications leverage modern declarative languages on the client and functional languages on the server they are designed to empower non-developers who are not familiar with traditional imperative languages such as JavaScript, Java or .Net.

XQuery is a query and functional programming language that queries and transforms collections of structured and unstructured data, usually in the form of XML, text and with vendor-specific extensions for other data formats. The language is developed by the XML Query working group of the W3C. The work is closely coordinated with the development of XSLT by the XSL Working Group; the two groups share responsibility for XPath, which is a subset of XQuery.

<span class="mw-page-title-main">XQuery API for Java</span> Application programming interface

XQuery API for Java (XQJ) refers to the common Java API for the W3C XQuery 1.0 specification.

<span class="mw-page-title-main">BaseX</span> XML database management and query system

BaseX is a native and light-weight XML database management system and XQuery processor, developed as a community project on GitHub. It is specialized in storing, querying, and visualizing large XML documents and collections. BaseX is platform-independent and distributed under the BSD-3-Clause license.

Zorba is an open source query processor written in C++, implementing

Stylus Studio is an integrated development environment (IDE) for the Extensible Markup Language (XML). It consists of a variety of tools and visual designers to edit and transform XML documents and legacy data such as electronic data interchange (EDI), comma-separated values (CSV) and relational data.

References

  1. "Adam Retter - O'Reilly Media". O’Reilly Media. Retrieved November 30, 2017.
  2. staff, InfoWorld (January 2, 2006). "2006 Technology of the Year Awards: The winners' list". InfoWorld.
  3. "About eXist Solutions". existsolutions.com. Retrieved September 23, 2016.
  4. "About Evolved Binary". evolvedbinary.com. Retrieved September 2, 2019.
  5. Siegel, Erik; Retter, Adam (2014). eXist : A NoSQL Document Database and Application Platform. O'Reilly Media. ISBN   978-1-4493-3710-0.
  6. "eXist-db 6.0.0". exist-db.org. January 2, 2022. Retrieved 2022-03-31.
  7. "eXist-db 5.0.0". exist-db.org. September 2, 2019. Retrieved 2022-03-31.
  8. "eXist-db v4.0.0". exist-db.org. February 14, 2018. Retrieved 2022-03-31.
  9. "eXist-db v3.0 available". exist-db.org. February 9, 2017. Retrieved 2022-03-31.
  10. "Known Issues when upgrading". exist-db.org. 2020. Retrieved 2022-03-31.
  11. "eXist XQJ API". xqj.net.