using System.Xml; using System.Xml.Linq; namespace CRIF.ACTion.Common { public class CrifNamespaces { public static CrifNamespace App => new("App"); public static CrifNamespace Common => new("Common"); public static CrifNamespace Maint => new("Maint"); public static CrifNamespace Messages => new("msg", "Messages"); public static CrifNamespace QO => new("QO"); public static CrifNamespace Util => new("Util"); public static XNamespace Empty => ""; public static CrifNamespace XSI => new("xsi", "http://www.w3.org/2001/XMLSchema-instance"); public static XmlNamespaceManager GetNamespaceManager(XElement xElement) { var namespaceManager = new XmlNamespaceManager(xElement.CreateReader().NameTable); namespaceManager.AddNamespace(Messages.Prefix, Messages.Namespace.ToString()); namespaceManager.AddNamespace(App.Prefix, App.Namespace.ToString()); namespaceManager.AddNamespace(Maint.Prefix, Maint.Namespace.ToString()); namespaceManager.AddNamespace(Util.Prefix, Util.Namespace.ToString()); namespaceManager.AddNamespace(Common.Prefix, Common.Namespace.ToString()); return namespaceManager; } } public class CrifNamespace { public XNamespace Namespace { get; private set; } public string Prefix { get; private set; } public CrifNamespace(string prefix, XNamespace namespaceValue) { Prefix = prefix; Namespace = namespaceValue; } public CrifNamespace(XNamespace namespaceValue) { Prefix = namespaceValue.ToString().ToLower(); Namespace = namespaceValue; } public override string ToString() { return Namespace.ToString(); } public static implicit operator XNamespace(CrifNamespace crifNamespace) { return crifNamespace.Namespace; } public static XName operator +(CrifNamespace crifNamespace, string localName) { return crifNamespace.Namespace + localName; } } }