Anastasia is designed for the publication of large, highly-complex XML documents and document collections. It has been developed in the context of academic electronic publication, particularly of scholarly editions of texts in many versions. However, it can be used for publication of any texts encoded in XML (and SGML, also).You control how Anastasia formats your XML through style files, written in the widely-supported and easy to use Tcl (Tool Control Language) system. Because Tcl is a full programming language in its own right, you have many additional tools: you can set up loops, if/then/else and switch/case statements, do string searches and replacements, have global and local variables, look up values in other files and include other files, and much more.The philosophy behind Anastasia is simple. You should be able to extract any section of any XML document and publish it any way you like. Regardless of where you are in a document, you should be able to move to any other part of the document; to retrieve any other part of it; to publish it any way you like. This is particularly useful where you have complex XML and wish to retrieve elements from many parts of the document and amalgamate them into a single display.You could think of Anastasia as a supercharged XML translation system, which you can use to amalgamate and present the source XML into any format you want. Anastasia is completely aware of the XML structure of your document, and allows you to perform (if you wish) the most complex transformations on it. Further, it is optimized for speed: in microseconds, Anastasia can carry out demanding searches and then use its awareness of the document structure to control exactly how the XML should be presented. As a result, it is suitable for dynamic 'on the fly' publication, selecting and presenting data in response to specific user requests.