WebDAV

(1Q20)


eXist-db ships with a WebDAV interface. WebDAV makes it possible to manage database collections and documents just like directories and files in a file system. You can copy, move, delete, view or edit files with any application supporting the WebDAV protocol, including Windows Explorer, macOS Finder, cadaver, KDE Konqueror, oXygen XML Editor, XML Spy, LibreOffice and many others (see Compatibility below). The interface has been implemented with excellent open-source Milton WebDAV API for Java.

In the default configuration the WebDAV server can be accessed via the URLs http://localhost:8080/exist/webdav/db/ and http://localhost:8443/exist/webdav/db/.

Compatibility

  • eXist's Milton based WebDAV interface does not support HTTP Digest Authentication.

  • The size of an XML document is presented as a multiple of 4096 bytes, which is eXist's internal pagesize (see conf.xml). The actual size of an XML document stored in the database can not be determined because the size depends on many factors, e.g. the applied serialization parameters.

  • A webdav client / enabled application may or may not work with the webdav server of eXist-db, depending on the quality of the implementation of the client. The server fullfills all requirements of the webdav specification.

Serialization

When retrieving an XML document via the WebDAV interface, the default serialization settings as defined in conf.xml are effective. It is possible to define custom serialization settings specific for the WebDAV interface.

Copy the file extensions/webdav/src/main/resources/webdav.properties into $EXIST_HOME/etc directory and uncomment/modify the parameters. Changes in this file requires a restart of eXist-db.

## XML Serialization options for the WevDAV
## The file is read from $EXIST_HOME/etc
## Be carefull changing the default values !
indent=no
expand-xincludes=no
process-xsl-pi=no
encoding=UTF-8
omit-xml-declaration=no

Notes

From the community we have received feedback that the WebDAV interface is not fully functional when it is accessed via a reverse proxy and a resource's path is altered (aliased) with it.