Example #1
0
        /// <summary>
        /// Creates the XML open tag string for an XElement.
        /// </summary>
        /// <param name="element">The element.</param>
        /// <returns>The XML open tag. In case of an element without value, the tag is self-closing.</returns>
        private static string CreateXmlOpenTag(XElement element, IXmlTagOptions options)
        {
            var builder = new StringBuilder();
            var name    = element.Name.LocalName;

            builder.Append("<");

            builder.Append(TagCase(name, options.Case));

            if (element.HasAttributes)
            {
                foreach (var attr in element.Attributes())
                {
                    builder.Append(CodeCommentHelper.Spacer);
                    builder.Append(attr);
                }
            }

            if (element.IsEmpty)
            {
                if (options.SpaceSelfClosing)
                {
                    builder.Append(CodeCommentHelper.Spacer);
                }

                builder.Append("/");
            }

            builder.Append(">");

            var result = builder.ToString();

            return(options.KeepTogether ? CodeCommentHelper.SpaceToFake(result) : result);
        }