in reply to Dirtiest Data
I did a project some years ago that involved migrating a crusty old perl system to a new, well-structured, database-driven CMS. The old system's source data (tens of thousands of cross-referenced entries over multiple catagory systems) was supposed to be stored in XML. The new system could import XML data, but ofcourse not in the original format.
The source data was delivered as about 1000 "XML" files in about 20 different "schemas" (ofcourse, no schema information was available at all). Hardly any of the files were valid XML, so first order of business was to fix <these kind="of < constructs > &">. That took about 2 days, since we had to conserve as much data as possible, so certain things just had to be done by hand.
Then I spend the following 2 weeks trying to figure out the meaning of things like
Where the references could be to more or less anywhere else in any other file. Oh and then think up a way to convert them into our nice new model and/or change the new model. Fun times.<entry someref="::1::4"/> <entry someref="namedref"/> <entry someref="4::name"/>
Oh and don't get me started on people who mix UTF-8 and Latin-1 in the same file. :-)