final ResourceKey key = getRootHandler().getSource();
final ResourceManager manager = getRootHandler().getResourceManager();
try
{
final ResourceKey derivedKey = manager.deriveKey(key, href);
final Resource resource = manager.create(derivedKey, null, DataFactory.class);
getRootHandler().getDependencyCollector().add(resource);
dataFactory = (DataFactory) resource.getResource();
}
catch (ResourceKeyCreationException e)
{
throw new ParseException("Unable to derive key for " + key + " and " + href, e, getLocator());
}