xmlOptions.setProcessSchemaLocations(true);
if (option == null){
option = getDefaultLoadOptions().get(OPTION_EXTENDED_META_DATA);
}
ExtendedMetaData extendedMetaData;
final XSDHelper xsdHelper;
if (option == null) {
extendedMetaData = ExtendedMetaData.INSTANCE;
xsdHelper = XSDHelper.INSTANCE;
} else {
extendedMetaData = (ExtendedMetaData) option;
xsdHelper = (new HelperContextImpl(extendedMetaData, false)).getXSDHelper();
}
xmlOptions.setEcoreBuilder(new DefaultEcoreBuilder(extendedMetaData) {
public Collection generate(Map targetNamespaceToURI) throws IOException {
for (Iterator iterator = targetNamespaceToURI.values().iterator(); iterator.hasNext();) {
String uri = iterator.next().toString();
xsdHelper.define(uri.indexOf(":/") == -1 ? Thread.currentThread().getContextClassLoader().getResourceAsStream(uri)
: new URL(uri).openStream(), uri);
}
return null; // XMLHandler#processSchemaLocations doesn't take the result
}
});