The XmlReader was a significant innovation in XML parsing due to its pull model approach and caused a significant amount of acclaim in the industry. Until then developers had to endure the SAX push model, which although great for XML parser implementers (just push out an event when something happens), was painful for developers to use. The XmlReader reversed this position allowing you to do simple, procedural code where you could get the XmlReader to do the heavy lifting for you, like skipping elements that you did not care about or throwing away white space from the document. The XmlReader was inspired by seeing the use of other readers in the .NET Framework such as the StringReader class and applying the same principles to XML.