in reply to Tab Delimited File > XML via DTD?

It might be quite difficult to do it straight from the DTD, maybe a config file that extracts the interesting info from the DTD might be convenient. You can have a look at XML::DTDParser, or even at XML::Parser for the DTD info, and at AnyData to read the CSV and output the XML.