public Sequence eval(StaticContext context, DocumentSet docs, Sequence contextSequence, Item contextItem) throws XPathException {
public Sequence eval(DocumentSet docs, Sequence contextSequence, Item contextItem) throws XPathException {
    public Sequence eval(StaticContext context, DocumentSet docs, Sequence contextSequence,     	Item contextItem) throws XPathException {        Node n = null;		if(contextItem != null)			contextSequence = contextItem.toSequence();        if(getArgumentCount() > 0) {            NodeSet result = (NodeSet)getArgument(0).eval(context, docs, contextSequence);            if(result.getLength() > 0)            	n = result.item(0);        } else {        	if(contextSequence.getLength() > 0 && contextSequence.getItemType() == Type.NODE)            	n = ((NodeSet)contextSequence).item(0);        }        if(n != null) {	        switch(n.getNodeType()) {	        	case Node.ELEMENT_NODE:	            	return new StringValue(n.getLocalName());	        	case Node.ATTRIBUTE_NODE:	            	return new StringValue(n.getLocalName());	        	default:	            	return new StringValue("");	        }        }         return new StringValue("");    }