We just did this today
If someone else sends me a dtd that I have to use, I have no choice. When I have a choice, I can feed any data structure into the PEAR xml serializer, and unserializer on the other end, and get the same data structure back. Easy.
All the added complexity[1] of xml is the layers of validation to make sure you get the right data structure. If you don't need the validation you don't need to check the dtd.
[1] Other than attributes, which I think are a fundamentally broken idea.
===
Purveyor of Doc Hope's [link|http://DocHope.com|fresh-baked dog biscuits and pet treats].
[link|http://DocHope.com|http://DocHope.com]