I was just wondering the same thing. A DTD isn't xml though, Are there any good apis for parsing DTDs (is this part xalan xerces or some other common tool)?
Is there an elegant way to extend a J-tree to show the relationships between parent and nested tags ? optional, + one or more, * 0 or many. etc. The Jtree can nicely show order and what is allowed but seems to fall a little short in showing the relationships I mentioned.