try {
//Buffer the InputStream so we can mark it, though we'll be in
//trouble if we have to read more than 8192 characters before finding
//the schema!
is = new RememberingInputStream(descriptor.getInputStream());
is.mark(Integer.MAX_VALUE);
SAXParser parser = parserFactory.newSAXParser();
try{
parser.parse(is, new SchemaLocatingHandler());
} catch (EarlyParserReturn epr) {
//This is not really an exception, but a way to work out which