/// <summary> /// Add namespace prefix for any names of the element in metadata document. /// </summary> /// <param name="targetName">The target element's name.</param> /// <param name="appliesType">The applies type of the element. (Related to the element's local-name.)</param> /// <param name="metadataDoc">The metadata document.</param> /// <returns>Returns the name with the namespace of the element.</returns> public static string AddNamespace(this string targetName, AppliesToType appliesType) { if (string.IsNullOrEmpty(targetName)) { return(string.Empty); } string target = targetName.GetLastSegment(); XElement metadata = XElement.Parse(ServiceStatus.GetInstance().MetadataDocument); string xpath = string.Format(@"//*[local-name()='{0}' and @Name='{1}']", appliesType, target); var element = metadata.XPathSelectElement(xpath, ODataNamespaceManager.Instance); if (null == element) { return(string.Empty); } AliasNamespacePair aliasNamespace = element.GetAliasAndNamespace(); if (string.IsNullOrEmpty(aliasNamespace.Namespace)) { return(string.Empty); } return(string.Format("{0}.{1}", aliasNamespace.Namespace, target)); }
/// <summary> /// Add namespace prefix for any names of the element in metadata document. /// </summary> /// <param name="targetName">The target element's name.</param> /// <param name="appliesType">The applies type of the element. (Related to the element's local-name.)</param> /// <param name="metadataDoc">The metadata document.</param> /// <returns>Returns the name with the namespace of the element.</returns> public static string AddNamespace(this string targetName, AppliesToType appliesType) { if (string.IsNullOrEmpty(targetName)) { return string.Empty; } string target = targetName.GetLastSegment(); XElement metadata = XElement.Parse(ServiceStatus.GetInstance().MetadataDocument); string xpath = string.Format(@"//*[local-name()='{0}' and @Name='{1}']", appliesType, target); var element = metadata.XPathSelectElement(xpath, ODataNamespaceManager.Instance); if (null == element) { return string.Empty; } AliasNamespacePair aliasNamespace = element.GetAliasAndNamespace(); if (string.IsNullOrEmpty(aliasNamespace.Namespace)) { return string.Empty; } return string.Format("{0}.{1}", aliasNamespace.Namespace, target); }