public IDictionary<string, string> GetNamespacesInScope (XmlNamespaceScope scope)
{
IDictionary<string, string> table = new Dictionary<string, string> ();
XmlNode n = current;
do {
if (n.NodeType == XmlNodeType.Document)
break;
for (int i = 0; i < current.Attributes.Count; i++) {
XmlAttribute a = current.Attributes [i];
if (a.NamespaceURI == XmlNamespaceManager.XmlnsXmlns)
table.Add (a.Prefix == XmlNamespaceManager.PrefixXmlns ? a.LocalName : String.Empty, a.Value);
}
if (scope == XmlNamespaceScope.Local)
return table;
n = n.ParentNode;
} while (n != null);
if (scope == XmlNamespaceScope.All)
table.Add (XmlNamespaceManager.PrefixXml, XmlNamespaceManager.XmlnsXml);
return table;
}
#endif