}
// now do the same to the DTD pipeline.
// Since a full-featured DTD processor will always
// be an XMLDTDFilter and an XMLDTDContentModelFilter,
// we explicitly make this assumption here...
XMLDTDFilter proc = null;
if((proc = (XMLDTDFilter )fComponentManager.getProperty(DTD_PROCESSOR_PROPERTY)) != null) {
// do we need to new up a replacement?
if(fXML11DTDProcessor == null) {
fXML11DTDProcessor = new XML11DTDProcessor();
}
fXML11DTDProcessor.reset(fComponentManager);
// now take proc out of the picture...
if(proc.getDTDSource() != null) {
proc.getDTDSource().setDTDHandler(fXML11DTDProcessor);
fXML11DTDProcessor.setDTDSource(proc.getDTDSource());
}
if(proc.getDTDHandler() != null) {
proc.getDTDHandler().setDTDSource(fXML11DTDProcessor);
fXML11DTDProcessor.setDTDHandler(proc.getDTDHandler());
}
// and last but not least: same with DTDContentModels...
// perhaps dangerously, we'll assume the DTD_Processor property
// will give this to us; this may not
// be true for some pipelines!