Anastasia by Peter Robinson (and Andrew West) at De Montfort University is now open source. It is a server and XML document processing system that can be used to publish, render, and search an XML corpus.
From their page “How Anastasia differs from XSLT:
in Anastasia one can start processing a document at any point within it (an empty element, or indeed at any character within the text flow) and carry on to any other point (another character, the start or end of any element), with complete understanding of all that is met between the two points. Indeed, one Anastasia function allows you to to do this backwards: to start at one point, move back a specified number of characters, and then forward again. A result of this is that it is straight-forward in Anastasia to manipulate a document according to alternative hierarchies implicit in the element relations: thus one can show just one column or one page of a text otherwise structured in hierarchical divisions.
A further difference is that Anastasia by design includes all that might be needed to process and publish large XML document collections, within a single programming environment.