QName qname = ((QNameable) n).getQName();
qname = ((QNameable) n).getQName(); result = new QNameValue(context, qname); break; case Node.PROCESSING_INSTRUCTION_NODE : qname = new QName(((ProcessingInstruction)n).getTarget(), "", "");
	public Sequence eval(Sequence contextSequence, Item contextItem) throws XPathException {        if (context.getProfiler().isEnabled()) {            context.getProfiler().start(this);                   context.getProfiler().message(this, Profiler.DEPENDENCIES, "DEPENDENCIES", Dependency.getDependenciesName(this.getDependencies()));            if (contextSequence != null)                context.getProfiler().message(this, Profiler.START_SEQUENCES, "CONTEXT SEQUENCE", contextSequence);            if (contextItem != null)                context.getProfiler().message(this, Profiler.START_SEQUENCES, "CONTEXT ITEM", contextItem.toSequence());        }                if(contextItem != null)            contextSequence = contextItem.toSequence();                Sequence result;        Sequence seq = getArgument(0).eval(contextSequence);        if(seq.isEmpty())            result = Sequence.EMPTY_SEQUENCE;        else {            Item item = seq.itemAt(0);            if(!Type.subTypeOf(item.getType(), Type.NODE))                throw new XPathException(getASTNode(), "argument is not a node; got: " +                        Type.getTypeName(item.getType()));            //TODO : how to improve performance ?            Node n = ((NodeValue)item).getNode();            switch(n.getNodeType()) {                case Node.ELEMENT_NODE:                case Node.ATTRIBUTE_NODE:                    QName qname = ((QNameable) n).getQName();                    result = new QNameValue(context, qname);                    break;                default:                    // return empty sequence for all other nodes                    result = Sequence.EMPTY_SEQUENCE;//                	LOG.warn("Tried to obtain node name for node type " + n.getNodeType());//                    result = new QNameValue(context, QName.EMPTY_QNAME);            }        }                if (context.getProfiler().isEnabled())             context.getProfiler().end(this, "", result);                 return result;               }