private Node evaluateXPathNode( Node bindings, Node target, String expression, NamespaceContext namespaceContext) { NodeList nlst; try { xpath.setNamespaceContext(namespaceContext); nlst = (NodeList) xpath.evaluate(expression, target, XPathConstants.NODESET); } catch (XPathExpressionException e) { reportError( (Element) bindings, WsdlMessages.INTERNALIZER_X_PATH_EVALUATION_ERROR(e.getMessage()), e); return null; // abort processing this <jaxb:bindings> } if (nlst.getLength() == 0) { reportError( (Element) bindings, WsdlMessages.INTERNALIZER_X_PATH_EVALUATES_TO_NO_TARGET(expression)); return null; // abort } if (nlst.getLength() != 1) { reportError( (Element) bindings, WsdlMessages.INTERNALIZER_X_PATH_EVAULATES_TO_TOO_MANY_TARGETS( expression, nlst.getLength())); return null; // abort } Node rnode = nlst.item(0); if (!(rnode instanceof Element)) { reportError( (Element) bindings, WsdlMessages.INTERNALIZER_X_PATH_EVALUATES_TO_NON_ELEMENT(expression)); return null; // abort } return rnode; }