The DTDeconstructor is a Java/Swing based tool to be used in the creation of DTD documents. It uses an intuitive Swing based GUI, and allows the generation of DTD documents from scratch, facilitating a proper workflow in the generation of XML documents.
You can download the jar file at http://prdownloads.sourceforge.net/stuartchaulk/stuart.jar?download. I believe.
The DTDeconstructor on SourceForge
Currently, the DTDeconstructor only supports dtd elements, but will in the near future support entities and notations. It does not yet support namespaces, but again, shall soon.
The DTDeconstructor is build using my own, somewhat imperfect object model for DTDs, and should probably not be used for anything else at this time, as some of the issues regarding DTD construction are handled by the application rather than the object model.
Here are the javadocs for the project. The naming conventions are wacky right now, and will be fixed in a future release.
Note: The DTDeconstructor does not actually deconstruct DTDs, rather it constructs them. Why is it the "DTDeconstructor" then? It sounded PoMo. I suppose it could have been more PoMo as the DTD(e)Constructor, but that would be awkward, wouldn't it?