xMod can be configured to provide web-based management pages which generate reports allowing XML files to be checked and cross-checked for consistency and errors.
CCH has in-house guidelines for using TEI P5 to create websites; accordingly, by default, xMod relies on certain TEI markup conventions. However, it has been adapted to work on a variety of flavours of TEI and other XML vocabularies (including DocBook), and has been used to publish data held in relational databases.
Where scholarly encoding is a key objective, each scenario will inevitably have its own nuance, but we have integrated this deeper markup with website presentational materials on a number of projects. It is impossible to predict every eventuality: xMod offers basic output options which cover the functionality common to all websites, together with an extensible framework supporting the development of any custom functionality that is needed.
Thus, xMod provides native support for multilingual websites, RSS feeds, form processing, and automated navigation such as sitemaps and indexes, but with some customisation can support the publishing of more complex materials with much deeper markup, such as medieval charters, musicological bibliographies, classical inscriptions, biographies, glossaries and so forth.
In a web server context, xMod integrates with other web publishing tools to support images (IIPimage/Djatoka), maps (GeoServer; MapServer; OpenLayers) and relational data (MySQL or other RDBMS).
Building and configuration of xMod is handled by a small set of key configuration files which offer extremely low level centralised control over the xMod process:
xMod includes an Apache Ant driven build process which updates key application files from the CCH SVN repository and either prepares the application framework for server deployment, or (if running in standalone, desktop mode) produces static HTML (or other) output locally.
xMod is a Java-based application. Most of the logic is written in XSLT 2.0 and is based on the model-view-controller architectural pattern.
xMod has a generic look and feel, but is designed to use a plug-in package of CSS, images and javascript called a 'personality pack' to apply the look and feel to each website. This system is designed to support workflow by allowing a web /graphic designer to work on the look and feel independently of the rest of the process. Further customisation is possible by editing or creating new XSLT 'views', which allow page layout to be changed more fundamentally. xMod uses the CCH-developed sUPL ('simple unified presentation layer') XHTML and CSS framework which is common to all CCH-developed web applications and which enforces a high level of standards-compliance and accessibility in finished websites.1