Danny Ayers mentioned Jena's RDF/XML output in a message to RSS-DEV. It has a concept similar to my idea of preferred namespaces, in that it allows you to specify "pretty types" which are the types of the principle objects (which could be rss:channel and rss:item). These pretty types will be placed at the top level of the document if possible. It also options to disable certain RDF/XML grammar rules such as reification, list expansion, various parse types, id attribute and property attributes. At a glance, it looks like I could map most of my rules into Jena's writer which will help from an implementation point of view.