private Element generateLiteral(Document document, Literal literal, Tag xmlRootTag) {
		Element literalEle = document.createElement(xmlRootTag.getXmlTag());

		Element atomEle = document.createElement(Tag.ATOM.getXmlTag());
		atomEle.appendChild(document.createTextNode(literal.getName()));

		if (literal.isNegation()) {
			Element negEle = document.createElement(Tag.NOT.getXmlTag());
			negEle.appendChild(atomEle);
			atomEle = negEle;
		}
		literalEle.appendChild(atomEle);

		StringBuilder sb = new StringBuilder();
		for (int i = 0; i < literal.getPredicatesSize(); i++) {
			if (i > 0) sb.append(DomConst.Literal.LITERAL_SEPARATOR);
			sb.append(literal.getPredicate(i));
		}

		if (!DomConst.Literal.DEFAULT_PREDICATE_VALUE.equals(sb.toString())) {
			Element elePredicate = document.createElement(Tag.PREDICATE.getXmlTag());
			elePredicate.appendChild(document.createTextNode(sb.toString()));
			literalEle.appendChild(elePredicate);
		}

		Element modeEle = generateMode(document, literal.getMode());
		if (null != modeEle) literalEle.appendChild(modeEle);

		return literalEle;
	}