private List<Literal> extractLiteralList(String endElement) throws XMLStreamException, ParserException {
		List<Literal> literals = new ArrayList<Literal>();
		while (reader.hasNext()) {
			int event = reader.next();
			switch (event) {
			case XMLStreamConstants.START_ELEMENT:
				currTag = getXmlTag(reader.getLocalName());
				if (Tag.AND.equals(currTag)) {
				} else if (Tag.LITERAL.equals(currTag)) {
					Literal literal = extractLiteral(Tag.LITERAL);
					literals.add(literal);
				}
				break;
			case XMLStreamConstants.END_ELEMENT:
				if (endElement.equals(reader.getLocalName())) return literals;
			}
		}
		throw new ParserException(ErrorMessage.IO_UNEXPECTED_END_OF_FILE);
	}