The previous iteration was not accepting files that were valid XML - which perhaps even had a valid XML mimetype - but were not necessarily uploaded as text/xml. This was breaking in browsers that uploaded as application/xml, as well as in the SimpleTest internal browser, which wasn't uploading using a valid mimetype at all.

As for the @ ... it seemed redundant to have Drupal pass through two messages - one from the failure of DOMDocument::load() and one from form_set_error(). I could try catching the exception instead?