Just found this which confirms what I posted above..
Document Object Model Core
Each Document has a doctype attribute whose value is either null or a DocumentType object. The DocumentType interface in the DOM Core provides an interface to the list of entities that are defined for the document, and little else because the effect of namespaces and the various XML schema efforts on DTD representation are not clearly understood as of this writing.
DOM Level 3 doesn't support editing DocumentType nodes. DocumentType nodes are read-only.
So there you go. The latest DOM Model does not support editing the DTD through the model. You will have to construct it serially and print it out to your own PrintStream. :-)