I added error handling with a NSError** parameter in the designated initializer. This way, you can't get a half constructed invalid XML document.
This also suppresses the NSLogs, it's now up to the caller to decide what to do with the error.
Handling of parsing errors with NSError**
-initWithData: becomes -initWithData:error: and returns nil when a parsing error occurs
-documentWithData: becomes -documentWithData:error:
Awesome, this is great! Much better API for consumers and matches Apple's error pattern. Merged.