public static string GetSchemaName( string content )
{
string xsdName = "";
using (var sr = new StringReader( content ))
{
using (XmlReader xrXml = new XmlTextReader( sr ))
{
var doc = new XmlDocument();
doc.Load( xrXml );
if (doc.DocumentElement == null)
throw new Exception( "Failed to load XML data." );
XmlNode nsp = doc.DocumentElement.Attributes["xmlns"];
XmlNode attribute = doc.DocumentElement.Attributes["xsi:schemaLocation"];
string nspn = "";
if (nsp != null)
{
if (attribute != null)
{
nspn = nsp.InnerText;
if (String.IsNullOrEmpty( nspn ))
throw new Exception( "Missing default namespace (xmlns) attribute." );
string[] parts = attribute.InnerText.Split( ' ' );
for (int i = 0; i < parts.Length; i++)
{
if (nspn.Equals( parts[i] ))
{
xsdName = parts[i + 1];
break;
}
i++;
}
}
if (String.IsNullOrEmpty( xsdName ))
throw new Exception( String.Format( "Missing schema location for namespace {0}", nspn ) );
}
}
}
return xsdName;
}