private void parsePrismSchema(SchemaDescription schemaDescription, boolean allowDelayedItemDefinitions) throws SchemaException {
String namespace = schemaDescription.getNamespace();
Element domElement = schemaDescription.getDomElement();
boolean isRuntime = schemaDescription.getCompileTimeClassesPackage() == null;
long started = System.currentTimeMillis();
LOGGER.trace("Parsing schema {}, namespace: {}, isRuntime: {}",
schemaDescription.getSourceDescription(), namespace, isRuntime);
PrismSchema schema = PrismSchemaImpl.parse(domElement, entityResolver, isRuntime,
schemaDescription.getSourceDescription(), allowDelayedItemDefinitions, getPrismContext());
if (StringUtils.isEmpty(namespace)) {
namespace = schema.getNamespace();
}
LOGGER.trace("Parsed schema {}, namespace: {}, isRuntime: {} in {} ms",
schemaDescription.getSourceDescription(), namespace, isRuntime, System.currentTimeMillis()-started);
schemaDescription.setSchema(schema);
detectExtensionSchema(schema);
}