public Value eval(DocumentSet docs, NodeSet context, NodeProxy node) {
public Value eval(StaticContext context, DocumentSet docs, NodeSet contextSet, NodeProxy contextNode) {
	public Value eval(DocumentSet docs, NodeSet context, NodeProxy node) {		Expression arg = getArgument( 0 );		Value idval = arg.eval(docs, context, node);		String id = "&" + idval.getStringValue();		DBBroker broker = null;		try {			broker = pool.get();			NodeSet attribs = (NodeSet)				broker.findElementsByTagName(docs, id);			LOG.debug("found " + attribs.getLength() + " attributes for id " +				id);			NodeProxy n, p;			ArraySet result = new ArraySet(attribs.getLength());			for(Iterator i = attribs.iterator(); i.hasNext(); ) {				n = (NodeProxy)i.next();				p = new NodeProxy(n.doc, XMLUtil.getParentId(n.doc, n.gid));				result.add(p);			}			return new ValueNodeSet(result);		} catch(EXistException e) {			LOG.warn("error getting ID values", e);			return new ValueNodeSet(NodeSet.EMPTY_SET);		} finally {			pool.release(broker);		}	}