/// <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); }