Part 1 - Definition and Requirements

A definition of »digital edition«

The following series of blog posts will guide you step by step through the process of building a web application for digital editions. Such a web application makes digital editions available over the world wide web. A digital edition in the context of this blog posts is understood as a well structured and (therefore) machine readable representation (or model) of basically any kind of text. The language of choice which is used to model the text is XML. The XML files contained in or referenced by one such particular edition should preferably validate against the rules or recommendations set by the Text Encoding Initiative (TEI). In general, however, our digital edition web app should be able to handle all well-formed XML documents.

Web app features

The features of our web application are very straightforward.

Software and Data requirements

To build such a web application, all we need is 1) the open source xml database eXist-db and 2) a good XML editor. The second is not essential, but since we are dealing a lot with XML, XSL, XQuery and (X)HTML, an XML editor comes in handy. I will use the oXygen XML Editor as it connects smoothly with eXist-db and is packed with features you do not want to miss when you are planning to do some serious work with XML. Be aware that Oxygen is not free but you can run a trial version for 30 days. If you don't want or can't use Oxygen, then eXist-db’s build-in web based XML editor eXide might be sufficient. Other options include Atom or any adaptable text editor like Notepad++.

As mentioned in the section above, we will also need some XML/TEI documents to play with. Since I have to rebuild an old application of mine anyway, I will use the documents of the online edition of the correspondence of Leo von Thun Hohenstein. You can download some or all files using the applications REST-API, but for the sake of convenience you can find a zip file containing some documents here.

But now it is time to get started.


For the time being, this tutorial focuses on a windows-based environment.

Comment/Edit this post on GitHub.
export blog text