Some very interesting work has been going on with the classes in the System.Xml namespace. Daniel Cazzulino blogs about an XseReader implementation he has been working on for providing XML Streaming Events. I had been using a similar implementation for trying to write a .NET version of an RssValidatingReader awhile back, but gave up due to the complexity of managing an ambiguous stack for co-occurrence validation. Oleg commented on the implementation and notes the use of an XPathNavigator over an XmlReader to provide a ForwardOnlyXPathNavigator, a hypthetical implementation that Dare mentioned in his XML Journal article. Dare then comments on his blog about the new implementation he has been considering, XPathReader, which is similar to the implementation in BizTalk 2004.
I have been working with BizTalk 2004 for about 2 months now here and there, mostly spelunking to find out more about ways to extend it using WSE and looking at how it implements XML Schemas. I hadn't run across the types in BizTalk that Dare and Oleg mentioned in their posts, so I brought out Reflector... sure enough, there in the GAC:
c:\windows\assembly\gac\microsoft.biztalk.xpathreader\3.0.1.0__31bf3856ad364e35\microsoft.biztalk.xpathreader.dll
The XPathReader, XPathExpression, and XPathCollection types seem to be the core classes for the implementation.