private SyntaxNode MarkUnnecessaryParagraphs(SyntaxNode originalNode, SyntaxNode rewrittenNode)
        {
            XmlElementSyntax elementSyntax = rewrittenNode as XmlElementSyntax;

            if (IsUnnecessaryParaElement(elementSyntax))
            {
                return(elementSyntax.WithAdditionalAnnotations(UnnecessaryParagraphAnnotation));
            }

            if (string.Equals(XmlCommentHelper.SummaryXmlTag, elementSyntax?.StartTag?.Name?.ToString(), StringComparison.Ordinal))
            {
                SyntaxList <XmlNodeSyntax> trimmedContent = elementSyntax.Content.WithoutFirstAndLastNewlines();
                if (trimmedContent.Count == 1 &&
                    IsParaElement(trimmedContent[0] as XmlElementSyntax) &&
                    !HasAttributes(trimmedContent[0] as XmlElementSyntax))
                {
                    XmlNodeSyntax paraToRemove = elementSyntax.Content.GetFirstXmlElement(XmlCommentHelper.ParaXmlTag);
                    return(elementSyntax.ReplaceNode(paraToRemove, paraToRemove.WithAdditionalAnnotations(UnnecessaryParagraphAnnotation)));
                }
            }

            return(rewrittenNode);
        }