protected Value doQuery(User user, String xpath, DocumentSet docs, NodeSet context)
protected Value doQuery(User user, String xpath, DocumentSet docs, NodeSet contextSet, Hashtable namespaces)
	protected Value doQuery(User user, String xpath, DocumentSet docs, NodeSet context)		throws Exception {		XPathLexer lexer = new XPathLexer(new StringReader(xpath));		XPathParser parser = new XPathParser(brokerPool, user, lexer);		PathExpr expr = new PathExpr(brokerPool);		parser.expr(expr);		LOG.info("query: " + xpath);		long start = System.currentTimeMillis();		if (parser.foundErrors())			throw new EXistException(parser.getErrorMsg());		DocumentSet ndocs = (docs == null ? expr.preselect() : expr.preselect(docs));		if (ndocs.getLength() == 0)			return null;		LOG.info("pre-select took " + (System.currentTimeMillis() - start) + "ms.");		Value result = expr.eval(ndocs, context, null);		LOG.info("query took " + (System.currentTimeMillis() - start) + "ms.");		return result;	}