if (fetchedSchema != null) {
// return cached XMLSchema so we only build this on first invoke
return fetchedSchema;
}
Utils.ensureMdsHandlers();
final XSDBuilder builder = new XSDBuilder();
if (logger.isConfig()) {
final HashMap<String, String> context = new HashMap<String, String>();
context.put("schemaUrl", String.valueOf(getSchemaUrl()));
logger.begin("fetching XSD", context);
}
try {
URL schemaUrl = getSchemaUrl();
if (schemaUrl == null) {
if (Beans.isDesignTime()) {
MessageUtils.showErrorMessage("Loading Exception",
"Failed to load XML Schema as URL, File or Classpath Resource. " +
"\nPlease check the schema-dt in the definition node in the DataControls.dcx " +
"file and make sure the XSD can be found. \nWhen using the classpath Resource, " +
"first compile your project so the files exist in the classes directory.");
return null;
} else {
throw new IllegalArgumentException("Failed to load XML Schema as URL, File or Classpath Resource. Check the schema in the definition node in the DataControls.dcx file.");
}
}
fetchedSchema = builder.build(schemaUrl);
return fetchedSchema;
} finally {
logger.end("fetching XSD");
}
}