internal void Load(XmlDocument doc, XmlReader reader, bool preserveWhitespace) { _doc = doc; // perf: unwrap XmlTextReader if no one derived from it if (reader.GetType() == typeof(Microsoft.Xml.XmlTextReader)) { _reader = ((XmlTextReader)reader).Impl; } else { _reader = reader; } _preserveWhitespace = preserveWhitespace; if (doc == null) { throw new ArgumentException(ResXml.Xdom_Load_NoDocument); } if (reader == null) { throw new ArgumentException(ResXml.Xdom_Load_NoReader); } doc.SetBaseURI(reader.BaseURI); if (reader.Settings != null && reader.Settings.ValidationType == ValidationType.Schema) { doc.Schemas = reader.Settings.Schemas; } if (_reader.ReadState != ReadState.Interactive) { if (!_reader.Read()) { return; } } LoadDocSequence(doc); }