public static string GetPrefixOfNamespace(this XAttribute attribute, XNamespace ns) { string namespaceName = ns.NamespaceName; if (namespaceName.Length == 0) { return(string.Empty); } if (attribute.GetParent() != null) { return(((XElement)attribute.GetParent()).GetPrefixOfNamespace(ns)); } if ((object)namespaceName == (object)XNodeNavigator.xmlPrefixNamespace) { return("xml"); } if ((object)namespaceName == (object)XNodeNavigator.xmlnsPrefixNamespace) { return("xmlns"); } return(null); }
private static bool HasNamespaceDeclarationInScope(XAttribute a, XElement e) { XName name = a.Name; while (e != null && e != a.GetParent()) { if (e.Attribute(name) != null) { return(true); } e = e.Parent; } return(false); }
public override bool MoveToNextNamespace(XPathNamespaceScope scope) { XAttribute a = _source as XAttribute; if (a != null && _parent != null && !IsXmlNamespaceDeclaration(a)) { switch (scope) { case XPathNamespaceScope.Local: if (a.GetParent() != _parent) { return(false); } a = GetNextNamespaceDeclarationLocal(a); break; case XPathNamespaceScope.ExcludeXml: do { a = GetNextNamespaceDeclarationGlobal(a); } while (a != null && (a.Name.LocalName == "xml" || HasNamespaceDeclarationInScope(a, _parent))); break; case XPathNamespaceScope.All: do { a = GetNextNamespaceDeclarationGlobal(a); } while (a != null && HasNamespaceDeclarationInScope(a, _parent)); if (a == null && !HasNamespaceDeclarationInScope(GetXmlNamespaceDeclaration(), _parent)) { a = GetXmlNamespaceDeclaration(); } break; } if (a != null) { _source = a; return(true); } } return(false); }
static XAttribute GetNextNamespaceDeclarationLocal(XAttribute a) { XElement e = (XElement)a.GetParent(); if (e == null) { return(null); } while (a != e.LastAttribute) { a = a.NextAttribute; if (a.IsNamespaceDeclaration) { return(a); } } return(null); }
private static XAttribute?GetNextNamespaceDeclarationGlobal(XAttribute a) { XElement?e = (XElement?)a.GetParent(); if (e == null) { return(null); } XAttribute?next = GetNextNamespaceDeclarationLocal(a); if (next != null) { return(next); } e = e.Parent; if (e == null) { return(null); } return(GetFirstNamespaceDeclarationGlobal(e)); }
public override bool MoveToNextAttribute() { XAttribute currentAttribute = _source as XAttribute; if (currentAttribute != null && _parent == null) { XElement e = (XElement)currentAttribute.GetParent(); if (e != null) { for (XAttribute attribute = currentAttribute.NextAttribute; attribute != null; attribute = attribute.NextAttribute) { if (!attribute.IsNamespaceDeclaration) { _source = attribute; return(true); } } } } return(false); }
public override bool MoveToNextAttribute() { XAttribute a = source as XAttribute; if (a != null && parent == null) { XElement e = (XElement)a.GetParent(); if (e != null) { while (a != e.LastAttribute) { a = a.NextAttribute; if (!a.IsNamespaceDeclaration) { source = a; return(true); } } } } return(false); }