If I'm not mistaken, this part of the schema declaration in your XML document:
says the schema will be found in the root of the file system where the XML document is located. If you gave the parser something with a URL, then it would be able to look there. But if you gave the parser an InputStream, it wouldn't know where to look for the schema.
However it appears the schema isn't in the "root" of the jar file where the XML document is, but it's in some other jar file. So you need to attach an EntityResolver to the parser which provides the schema as a Source (probably a StreamSource) when the parser tries to resolve its URL.
I just had the craziest dream. This tiny ad was in it.
a bit of art, as a gift, that will fit in a stocking