if (source==null) {
source = config.getSystemURIResolver().resolve(relative, getBaseURI());
}
if (fragment != null) {
IDFilter filter = new IDFilter(fragment);
source = AugmentedSource.makeAugmentedSource(source);
((AugmentedSource)source).addFilter(filter);
}
// check for recursion