protected ICollection <XElement> TryGetRequiredTags(XElement startElement, XElement endElement, string tagName)
        {
            var tags = TraverseUtils.TagElementsBetween(startElement, endElement, tagName).ToList();

            if (!tags.Any())
            {
                throw new Exception(string.Format(MessageStrings.TagNotFoundOrEmpty, tagName));
            }
            return(tags);
        }
        protected XElement TryGetRequiredTag(XElement startElement, XElement endElement, string tagName)
        {
            var tag = TraverseUtils.TagElementsBetween(startElement, endElement, tagName).FirstOrDefault();

            if (tag == null)
            {
                throw new Exception(string.Format(MessageStrings.TagNotFoundOrEmpty, tagName));
            }
            return(tag);
        }