The streaming facilities in Saxon-SA have been proving very popular with those users who have very large documents to process. However, at present the only thing you can do in streaming mode is to split the document into a flat sequence of subtrees, and then process each subtree independently. That meets many needs, but not all. There are many simple tasks that can intrinsically be streamed despite the fact that they don't fit this model: for example, renaming all the elements in a document, or deleting all the NOTE elements. So I've started implementing "streaming templates", where the document is processed hierarchically in classic XSLT style by applying template rules to each node at every level....   more »