private synchronized Schema getRealInstance(URI targetNamespace2, InputStream is1, Level level)
throws SAXException {
URI targetNamespace = targetNamespace2;
if ((targetNamespace == null) || (schemas.get(targetNamespace) == null)) {
XSISAXHandler contentHandler = parseSchema(is1, level);
if ((targetNamespace == null) || "".equals(targetNamespace)) {
targetNamespace = contentHandler.getSchema().getTargetNamespace();
}
Schema schema = contentHandler.getSchema();
if (schemas.get(targetNamespace) != null) {
schema = merge(schema, (Schema) schemas.get(targetNamespace));
}
schemas.put(targetNamespace, schema);
} else {
Schema sh = (Schema) schemas.get(targetNamespace);
XSISAXHandler contentHandler = parseSchema(is1, level);
sh = merge(sh, contentHandler.getSchema());
schemas.put(targetNamespace, sh);
}
return (Schema) schemas.get(targetNamespace);
}