I did a lot of XML work over the summer. One of the byproducts was a pair of XML readers. The XmlElementReader wraps an XmlReader that is positioned on an Element node and allows you to read that element, but nothing more. It's useful for passing an XmlReader to a method, but ensuring that it only consumes the current element and nothing more. The XmlInscopeNamespaceReader also wraps an XmlReader. It provides a method to lookup all of prefix/namespace URI bindings that are inscope at any given time.