/** Configures the pipeline. */ protected void configurePipeline() { super.configurePipeline(); // configure DTD pipeline fDTDScanner.setDTDHandler(fDTDProcessor); fDTDProcessor.setDTDSource(fDTDScanner); fDTDProcessor.setDTDHandler(fXIncludeHandler); fXIncludeHandler.setDTDSource(fDTDProcessor); fXIncludeHandler.setDTDHandler(fXPointerHandler); fXPointerHandler.setDTDSource(fXIncludeHandler); fXPointerHandler.setDTDHandler(fDTDHandler); if (fDTDHandler != null) { fDTDHandler.setDTDSource(fXPointerHandler); } // configure XML document pipeline: insert after DTDValidator and // before XML Schema validator XMLDocumentSource prev = null; if (fFeatures.get(XMLSCHEMA_VALIDATION) == Boolean.TRUE) { // we don't have to worry about fSchemaValidator being null, since // super.configurePipeline() instantiated it if the feature was set prev = fSchemaValidator.getDocumentSource(); } // Otherwise, insert after the last component in the pipeline else { prev = fLastComponent; fLastComponent = fXPointerHandler; } XMLDocumentHandler next = prev.getDocumentHandler(); prev.setDocumentHandler(fXIncludeHandler); fXIncludeHandler.setDocumentSource(prev); if (next != null) { fXIncludeHandler.setDocumentHandler(next); next.setDocumentSource(fXIncludeHandler); } fXIncludeHandler.setDocumentHandler(fXPointerHandler); fXPointerHandler.setDocumentSource(fXIncludeHandler); } // configurePipeline()