/** Root element names mapping to schema instances */
private Map<String, XsdSchema> mappings;
@Override
public XsdSchema getSchema(List<XsdSchema> schemas, String namespace, String elementName) {
XsdSchema schema = null;
QName rootQName = QNameUtils.createQName(namespace, elementName, "");
if (mappings.containsKey(rootQName.toString())) {
schema = mappings.get(rootQName.toString());
} else if (mappings.containsKey(elementName)) {
schema = mappings.get(elementName);
}
if (schema!= null && !(StringUtils.hasText(schema.getTargetNamespace()) &&
schema.getTargetNamespace().equals(namespace))) {
throw new CitrusRuntimeException("Schema target namespace inconsitency " +
"for located XSD schema definition (" + schema.getTargetNamespace() + ")");
}
return schema;
}