XML/XHTML formatter – DOCTYPE v_0
authorFrantišek Kučera <franta-hg@frantovo.cz>
Sat, 04 Jan 2014 23:39:38 +0100
branchv_0
changeset 136 c0f9521900bf
parent 135 ef432015fdee
child 137 3a24be5d8dac
XML/XHTML formatter – DOCTYPE
java/sql-dk/src/info/globalcode/sql/dk/formatting/AbstractXmlFormatter.java
java/sql-dk/src/info/globalcode/sql/dk/formatting/XhtmlFormatter.java
--- a/java/sql-dk/src/info/globalcode/sql/dk/formatting/AbstractXmlFormatter.java	Sat Jan 04 23:27:17 2014 +0100
+++ b/java/sql-dk/src/info/globalcode/sql/dk/formatting/AbstractXmlFormatter.java	Sat Jan 04 23:39:38 2014 +0100
@@ -50,6 +50,7 @@
 	private static final TerminalColor ATTRIBUTE_NAME_COLOR = TerminalColor.Green;
 	private static final TerminalColor ATTRIBUTE_VALUE_COLOR = TerminalColor.Yellow;
 	private static final TerminalColor XML_DECLARATION_COLOR = TerminalColor.Red;
+	private static final TerminalColor XML_DOCTYPE_COLOR = TerminalColor.Cyan;
 	private Stack<QName> treePosition = new Stack<>();
 	private final ColorfulPrintWriter out;
 	private final String indent;
@@ -72,6 +73,10 @@
 		out.print(XML_DECLARATION_COLOR, "<?xml version=\"1.0\" encoding=\"" + Charset.defaultCharset().name() + "\"?>");
 	}
 
+	protected void printDoctype(String doctype) {
+		out.print(XML_DOCTYPE_COLOR, "\n<!DOCTYPE " + doctype + ">");
+	}
+
 	protected void printEndDocument() {
 		out.println();
 		out.flush();
--- a/java/sql-dk/src/info/globalcode/sql/dk/formatting/XhtmlFormatter.java	Sat Jan 04 23:27:17 2014 +0100
+++ b/java/sql-dk/src/info/globalcode/sql/dk/formatting/XhtmlFormatter.java	Sat Jan 04 23:39:38 2014 +0100
@@ -39,6 +39,7 @@
 public class XhtmlFormatter extends AbstractXmlFormatter {
 
 	public static final String NAME = "xhtml"; // bash-completion:formatter
+	private static final String DOCTYPE = "html PUBLIC \"-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN\" \"http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd\"";
 	private static final String CSS_FILE = "info/globalcode/sql/dk/formatter/XhtmlFormatter.css";
 	private int resultSetCounter = 0;
 	private int updatesResultCounter = 0;
@@ -61,6 +62,7 @@
 	public void writeStartBatch() {
 		super.writeStartBatch();
 		printStartDocument();
+		printDoctype(DOCTYPE);
 		Map<QName, String> attributes = new HashMap<>(1);
 		attributes.put(qname("xmlns"), Xmlns.XHTML);
 		printStartElement(qname("html"), attributes);