@Override
	public void comment(final char[] ch, final int start, final int length)
			throws SAXException {

		if (suppress)
			return;

		flushCharacters();

		final String commentText = new String(ch, start, length);
		if (inDTD && inInternalSubset && (expand == false)) {
			internalSubset.append("  <!--").append(commentText).append("-->\n");
			return;
		}
		if ((!inDTD) && (!commentText.equals(""))) {
			final Comment comment = currentLocator == null ? factory
					.comment(commentText) : factory.comment(
					currentLocator.getLineNumber(),
					currentLocator.getColumnNumber(), commentText);
			if (atRoot) {
				factory.addContent(currentDocument, comment);
			} else {
				factory.addContent(getCurrentElement(), comment);
			}
		}
	}