final Sequence nodes = getArgument(1).eval(contextSequence);
if (nodes.isEmpty()) {
logger.error(ErrorCodes.XPDY0002 + " No node or context item for fn:id");
throw new XPathException(this, ErrorCodes.XPDY0002, "XPDY0002: no node or context item for fn:id", nodes);
}
if (!Type.subTypeOf(nodes.itemAt(0).getType(), Type.NODE)) {
logger.error(ErrorCodes.XPTY0004 + " fn:id() argument is not a node");
throw new XPathException(this, ErrorCodes.XPTY0004, "XPTY0004: fn:id() argument is not a node", nodes);
}
NodeValue node = (NodeValue)nodes.itemAt(0);
if (node.getImplementationType() == NodeValue.IN_MEMORY_NODE)