Also the response is not always valid XML! This is a known bug in S3. In S3 you can use any UTF-8 string as a key for an object, including ones with XML invalid characters (<, > etc are fine) but some weird control characters are NOT.
So if somehow you get a file up on S3 with a weird enough string as a key, asking for a listing of that will return invalid XML!