InputSource resolveEntity(boolean isPE, String name, InputSource in,
            String baseURI) throws SAXException, IOException {
        InputSource source;

        // external entities might be skipped
        if (isPE && !extPE) {
            return null;
        }
        if (!isPE && !extGE) {
            return null;
        }

        // ... or not
        lexicalHandler.startEntity(name);
        if (resolver2 != null && useResolver2) {
            source = resolver2.resolveEntity(name, in.getPublicId(), baseURI,
                    in.getSystemId());
            if (source == null) {
                in.setSystemId(absolutize(baseURI, in.getSystemId(), false));
                source = in;
            }
        } else {
            in.setSystemId(absolutize(baseURI, in.getSystemId(), false));
            source = entityResolver.resolveEntity(in.getPublicId(),
                    in.getSystemId());
            if (source == null) {
                source = in;
            }
        }
        startExternalEntity(name, source.getSystemId(), true);
        return source;
    }
<b>SAX2</b>: Assigns the specified property. Like SAX1 handlers, these
may be changed at any time.
src/nu/validator/gnu/xml/aelfred2/SAXDriver.java