I don't think it is fair to compare the complexity of the code used here: http://www.zope.org:18200/Members/srichter with the average XSLT transformation. XSLT is specifically designed to handle recursive, heterogenous document types. These document types are the norm in real-world Web publishing. I think that XSL is what DTML would become if it was evolved toward the problem of rendering real-world XML. The fundamental question is how do you extend a template structure so that it is recursive and polymorphic. Consider this model: DOCUMENT -> TITLE, SECTION+ SECTION -> TITLE, (P|LIST)+, SECTION+ So in the rule for section you need to process the title. And then the paragraphs and lists (in the order that they arrive) and then start the process over again for SECTION. TITLE must be handled differently in the DOCUMENT and SECTION contexts, and differently depending on how many levels of SECTION down it was. This sort of thing is where XSLT excels. It would be useful if someone could outline a Zope/DTML solution to this problem. Paul Prescod