Сначала создайте экземпляр класса XmlNamespaceManager и добавьте к нему свои пространства имен, например,
XmlNamespaceManager mngr = new XmlNamespaceManager( new NameTable() );
mngr.AddNamespace( "xsi", "http://www.w3.org/2001/XMLSchema-instance" );
mngr.AddNamespace( "xsd", "http://www.w3.org/2001/XMLSchema" );
Чтобы проанализировать строку XML с помощью этих сопоставлений пространства имен, вызовите следующую функцию, передав экземпляр XmlNamespaceManager с добавленными в него пространствами имен:
/// <summary>Same as XElement.Parse(), but supports XML namespaces.</summary>
/// <param name="strXml">A String that contains XML.</param>
/// <param name="mngr">The XmlNamespaceManager to use for looking up namespace information.</param>
/// <returns>An XElement populated from the string that contains XML.</returns>
public static XElement ParseElement( string strXml, XmlNamespaceManager mngr )
{
XmlParserContext parserContext = new XmlParserContext( null, mngr, null, XmlSpace.None );
XmlTextReader txtReader = new XmlTextReader( strXml, XmlNodeType.Element, parserContext );
return XElement.Load( txtReader );
}