It seems like import/include does not work with fake base identifiers (but DTDs and documents selected with document() do). Here is the code that makes it work for documents:
try { const XalanDOMString urlString = constructionContext.getURLStringFromString(m_baseIdent); if (length(urlString) != 0) { m_includeStack.push_back(urlString); m_baseIdent = urlString; } } catch(const XMLException&) { // Assume that any exception here relates to get the urlString from // m_baseIdent. We'll assume that it's just a fake base identifier // since the parser will throw the real error if the base identifier // can't be resolved. m_includeStack.push_back(baseIdentifier); } } Should StylesheetHandler::processInclude() use a similar pattern? Cheers, Brian