private void SetupValidator(XmlReaderSettings readerSettings, XmlReader reader, XmlSchemaObject partialValidationType)
{
_validator = new XmlSchemaValidator(_coreReaderNameTable, readerSettings.Schemas, _thisNSResolver, readerSettings.ValidationFlags);
_validator.XmlResolver = _xmlResolver;
_validator.SourceUri = XmlConvert.ToUri(reader.BaseURI); //Not using XmlResolver.ResolveUri as it checks for relative Uris,reader.BaseURI will be absolute file paths or string.Empty
_validator.ValidationEventSender = this;
_validator.ValidationEventHandler += readerSettings.GetEventHandler();
_validator.LineInfoProvider = _lineInfo;
if (_validator.ProcessSchemaHints)
{
_validator.SchemaSet.ReaderSettings.DtdProcessing = readerSettings.DtdProcessing;
}
_validator.SetDtdSchemaInfo(reader.DtdInfo);
if (partialValidationType != null)
{
_validator.Initialize(partialValidationType);
}
else
{
_validator.Initialize();
}
}