The text of the comment.
Whether a _newline followed by an indent will be written to the output range before the comment tag.
Whether an indent will be inserted after each _newline within the _text.
XMLWritingException if the given _text contains "--" or ends with "-".
1 import std.array : appender; 2 import std.exception : assertThrown; 3 4 auto writer = xmlWriter(appender!string()); 5 6 writer.writeComment(" And so it begins... ", Newline.no); 7 writer.writeStartTag("root"); 8 writer.writeComment("A comment"); 9 writer.writeComment("Another comment"); 10 writer.writeComment("No preceding newline", Newline.no); 11 writer.writeComment("A comment\nwith a newline"); 12 writer.writeComment("Another newline\nbut no indent", 13 InsertIndent.no); 14 writer.writeStartTag("tag"); 15 writer.writeComment("Deeper comment"); 16 writer.writeEndTag("tag"); 17 writer.writeEndTag("root"); 18 writer.writeComment(" And so it ends... "); 19 20 assert(writer.output.data == 21 "<!-- And so it begins... -->\n" ~ 22 "<root>\n" ~ 23 " <!--A comment-->\n" ~ 24 " <!--Another comment--><!--No preceding newline-->\n" ~ 25 " <!--A comment\n" ~ 26 " with a newline-->\n" ~ 27 " <!--Another newline\n" ~ 28 "but no indent-->\n" ~ 29 " <tag>\n" ~ 30 " <!--Deeper comment-->\n" ~ 31 " </tag>\n" ~ 32 "</root>\n" ~ 33 "<!-- And so it ends... -->"); 34 35 // -- is not legal in an XML comment. 36 assertThrown!XMLWritingException(writer.writeComment("foo--bar")); 37 38 // - is not legal at the end of an XML comment. 39 assertThrown!XMLWritingException(writer.writeComment("foo-")); 40 41 // Unchanged after an XMLWritingException is thrown. 42 assert(writer.output.data == 43 "<!-- And so it begins... -->\n" ~ 44 "<root>\n" ~ 45 " <!--A comment-->\n" ~ 46 " <!--Another comment--><!--No preceding newline-->\n" ~ 47 " <!--A comment\n" ~ 48 " with a newline-->\n" ~ 49 " <!--Another newline\n" ~ 50 "but no indent-->\n" ~ 51 " <tag>\n" ~ 52 " <!--Deeper comment-->\n" ~ 53 " </tag>\n" ~ 54 "</root>\n" ~ 55 "<!-- And so it ends... -->");
Writes a comment to the output range.