/** Evaluate the expression as a variable value usable by Saxon in further XPath expressions. */ public static SequenceExtent evaluateAsExtent( PropertyContext propertyContext, List<Item> contextItems, int contextPosition, String xpathString, Map<String, String> prefixToURIMap, Map<String, ValueRepresentation> variableToValueMap, FunctionLibrary functionLibrary, FunctionContext functionContext, String baseURI, LocationData locationData) { final PooledXPathExpression xpathExpression = XPathCache.getXPathExpression( propertyContext, contextItems, contextPosition, xpathString, prefixToURIMap, variableToValueMap, functionLibrary, baseURI, false, false, locationData); try { return xpathExpression.evaluateAsExtent(functionContext); } catch (Exception e) { throw handleXPathException(e, xpathString, "evaluating XPath expression", locationData); } finally { if (xpathExpression != null) xpathExpression.returnToPool(); } }