|Don't ask to ask, just ask|
In my experience, the things I would like to do as a programmer because they make sense to me cause the most problems for the non-programmers who have to use the stuff.
Some sort of config checker or lint is good, but XML isn't really going to do that for you. You want to check not only the format, but the meaning of the actual values (e.g. does that file really exist, can you send mail to that email address, etc). A DTD doesn't really buy you that much once you already have code to read the configuration and test it.
If techies will administer the app, then you might do just fine with an XML (or XML like) format. However, every time I think that, the maintenance task gets pawned off to some non-techie who just wants to make it through the day without breaking anything. :)
There's really no rule that fits everyone's situation, but I've found that the non-technical considerations to be more important, even when I didn't like it. :)
brian d foy <email@example.com>
Subscribe to The Perl Review