@Override
    public void startDTD(String name, String publicIdentifier,
            String systemIdentifier) throws SAXException {
        try {
            printLead();
            writer.write("<!DOCTYPE ");
            writer.write(name);
            if (publicIdentifier.length() > 0 || systemIdentifier.length() > 0) {
                writer.write(' ');
                writer.write('\"');
                writer.write(publicIdentifier);
                writer.write('\"');
                writer.write(' ');
                writer.write('\"');
                writer.write(systemIdentifier);
                writer.write('\"');
            }
            writer.write(">\n");
        } catch (IOException e) {
            throw new SAXException(e);
        }
    }
@see org.xml.sax.ContentHandler#characters(char[], int, int)
src/nu/validator/servlet/TreeDumpContentHandler.java