Reference articles on history, science, culture and more
Encyclopedia

XML database

Database presenting data in XML formats

An XML database is a data persistence software system that allows data to be specified, and 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 database.

01Rationale for XML as a database format

Reasons to store data in XML format as an XML database include:

  • An enterprise may have numerous XML documents with similar data, but dispersed in different XML formats. Conglomerating this data into a singular, standardized XML database structure will avoid compatibility issues
  • Data may need to be exposed or ingested as XML, so using another format such as relational forces double-modeling of the data
  • XML is very well suited to parse data, deeply nested data and mixed content (such as text with embedded markup tags)
  • XML is human readable whereas relational tables require expertise to access
  • Metadata is often available as XML
  • Semantic web data is available as RDF/XML
  • Provides a solution for Object-relational impedance mismatch
  • Compatibility with XML use on the data transport layer

02XML-enabled databases

XML-enabled databases typically offer one or more of the following approaches to storing XML within the traditional relational structure:

  1. XML is stored into a CLOB (Character large object)
  2. XML is "shredded" into a series of tables based on a schema
  3. XML is stored into a native XML Type as defined by ISO Standard 9075-14

RDBMS that support the ISO XML Type are:

  1. IBM DB2 (pureXML)
  2. Microsoft SQL Server
  3. Oracle Database
  4. PostgreSQL

Typically an XML-enabled database is best suited where the majority of data are non-XML. For datasets where the majority of data are XML, a native XML database is better suited.

Example of XML Type Query in IBM DB2 SQL

select id, vol, xmlquery('$j/name', passing journal as "j") as name from journals where xmlexists('$j[licence="CreativeCommons"]', passing journal as "j")

03Native XML databases

Native XML databases are especially tailored for working with XML data. As managing XML as large strings would be inefficient, and due to the hierarchical nature of XML, custom optimized data structures are used for storage and querying. This usually increases performance both in terms of read-only queries and updates. XML nodes and documents are the fundamental unit of (logical) storage, just as a relational database has fields and rows. One important caveat to this is that native XML databases need more disk space to store both data and indexes than XML-enabled databases do. As the size of the native XML database grows, the storage needs grow almost exponentially.

The standard for querying XML data per W3C recommendation is XQuery; the latest version is XQuery 3.1. XQuery includes XPath as a sub-language and XML itself is a valid sub-syntax of XQuery. In addition to XPath, some XML databases support XSLT as a method of transforming documents or query results retrieved from the database.

Language features

Name License Native Language XQuery 3.1 XQuery 3.0 XQuery 1.0 XQuery Update XQuery Full Text EXPath Extensions EXQuery Extensions XSLT 2.0 XForms 1.1 XProc 1.0
BaseX BSD Java YesYesYesYesYesYesYesYesYesNo
eXist GNU LGPL Java PartialPartialYesProprietaryProprietaryYesYesYesYesYes
MarkLogic Server Commercial C++ NoPartialYesProprietaryProprietaryNoNoYesYesNo
OpenText xDB Commercial Java Partial Partial Yes Yes Yes No No No No No
Oracle Berkeley DB XML Commercial C/C++
Qizx Commercial Java NoNoYesYesYesNoNoYesNoNo
Sedna Apache License 2.0 C/C++

Supported APIs

Name XQJ XML:DB RESTful RESTXQ WebDAV
BaseX YesYesYesYesYes
eXist YesYesYesYesYes
MarkLogic Server YesNoYesYesYes
Qizx NoNoYesNoNo
Sedna YesYesNoNoNo
Watch videos about XML databaseExplainers and documentaries on YouTube (opens in a new tab)

Sources and credits

This article is adapted from the Wikipedia article XML database, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.

Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.