Don't know. Here's a little program that I wrote to
test that:
It does an identity transformation and it works just fine. I didn't assign an EntityResolver to the XMLReader but I don't see why that would have any effect.
Were there any namespaces in the real XML that you had the problem with? I ask because, if you look at the API documentation for org.xml.sax.ContentHandler, specifically the startElement() method, you'll see a lot of information about when the local name and/or the qualified name are passed to that method. It just seemed to me that if the SAXSource was assuming it would get one of those parameters, but the parser wasn't actually passing that parameter, then the SAXSource wouldn't have anything for its element names.