I called up Tim Ewald today to ask him a question I'm sure lots of people have run into before: “So, I've got an XPathNavigator, and I want to validate it against a schema. What API should I use?” He laughed, and then went on to explain how much the answer sucks. Basically, the only way to do it using the System.Xml APIs is to use the OuterXml property of the navigator to turn the XML back into a string, then suck it up into an XmlTextReader, then validate using that. This is a huge waste - it means you have to take something you already parsed, unparse it, then turn around and parse it again. Lame!
I knew I couldn't be the only one that had run into this problem before. Acting on a hunch, I ran a Google search on XPathNavigatorReader. Sure enough, I found this, which led me to this. In brief, it is the exact adapter layer I wanted, allowing me to get an XmlReader over any XPathNavigator. What's great is that the package was released just two days ago, so my timing was fortuitous.
There's a bunch of other cool stuff in there, too - definitely check it out if you're working with the System.Xml APIs at all..some of this stuff isn't even in Whidbey yet.