/// <summary>
        /// Creates header element
        /// </summary>
        /// <param name="resource"> resource object</param>
        /// <returns> instance of XElement </returns>
        internal XElement GetHeaderElement(Core.Resource resource)
        {
            XElement header = null;

            header = new XElement(Header);

            header.Add(MetadataProviderHelper.GetElement(Header_Identifier, resource.Id.ToString()));
            header.Add(MetadataProviderHelper.GetElement(Header_DateStamp, resource.DateModified.Value.ToString(MetadataProviderHelper.DateTimeGranularity, CultureInfo.InvariantCulture)));

            ResourceType resourceTypeInfo = new CoreHelper(entityConnectionString).GetResourceType(resource);

            if (resourceTypeInfo != null)
            {
                List <string> listOfResourceTypeInfo = new CoreHelper(entityConnectionString).GetResourceTypeHierarchy(resourceTypeInfo);
                listOfResourceTypeInfo.ForEach(delegate(string resourceType)
                {
                    header.Add(MetadataProviderHelper.GetElement(Header_SetSpec, resourceType));
                });
            }
            return(header);
        }