DTDs and XML Schema languages are the preferred method of documenting XML. I would say research XML Schema or RELAX NG and then write a XLS-FO or XSLT transform to convert the XML Schema to DocBook. From there you can generated HTML, PDF, Word, whatever format you want. There are already scripts that will do this for you with some patient Googling I found xsd2db. The great thing about DocBook is the variety of output formats is very rich and it is easy to create your own if you don't like any of the numerous output formats available.
The bonus is that you now have documentation and validation in the same file, so you don't get drifting artifacts that don't match the code anymore. You can automate all this chaining as part of your build process.