Example #1
0
 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);
 }