Javasoft.com has a parser but I like the one at xml.apache.org the best. However, neither one really uses the DTD.
Many of the books on XML (like Rusty Harold's XML Bible) talk about free parsers like
www.alphaworks.ibm.com/tech/xml, www.datachannel.com/xml_resources, www.loria.fr/projects/XSilfide/EN/sxp, www.cogsci.ed.ac.uk/%7Erichard/xml-check.html or
www.stg.brown.edu/service/xmlvalid. www.jclark.com might have a validating parser too.
Being lazy (and having a copy of IIS available) I like to do XSLT and apply DTD via a little ASP script as I compose my XML documents. By hitting F5 frequently on my browser, my server side XSLT not only does the formatting, but the DTD checking too. This way I know immediately if something is not right.
------------------