boolean (PsiElement child) { if (child instanceof XPathFunctionCall call) { final XPathExpression[] arguments = call.getArgumentList(); if ("id".equals(call.getFunctionName())) { if (arguments.length != 1) return false; return isIdValue(arguments[0]) ; } else if ("key".equals(call.getFunctionName())) { if (arguments.length != 2) return false; return arguments[0] instanceof XPathString && isKeyValue(arguments[1]); } } return false; }