What this message basicaly says is: Instead of XmlDocument, XmlNode, XmlAttribute, you should use the type IXPathNavigable, since it's more general. Except when you can't do that, because you were using functionality which is specifically found on one of those classes, not IXPathNavigable. But under those circumstances the warning will show anyway, for reasons unknown or absent.