@Override
  public void startDTD(final String name, final String publicID,
                       final String systemID) throws SAXException {

    flushCharacters(); // Is this needed here?

    final DocType doctype = currentLocator == null ? factory.docType(name,
                                                                     publicID, systemID) : factory.docType(
      currentLocator.getLineNumber(),
      currentLocator.getColumnNumber(), name, publicID, systemID);
    factory.addContent(currentDocument, doctype);
    inDTD = true;
    inInternalSubset = true;
  }
@Override
  public void startDTD(final String name, final String publicID,
                       final String systemID)