for (int i = 0; i < nodelist.getLength(); i++) {
            Node node = nodelist.item(i);
            Node n = node.getAttributes().getNamedItem(WSDLConstants.ATTR_NAME);
            QName bindingName = new QName(def.getTargetNamespace(), n.getNodeValue());
            Binding binding = def.getBinding(bindingName);
            QName typeName = binding.getPortType().getQName();
            if (!portTypes.containsKey(typeName)) {
                Node errorNode = ErrNodeLocator.getNode(document, WSDLConstants.QNAME_DEFINITIONS, null,
                                                        bindingName.getLocalPart());
                schemaWSDLValidator.addError(errorNode, typeName + " is not defined");
                isValid = false;
            } else {
                Map<QName, Operation> operationMap = portTypes.get(typeName);
                // OperationList
                List<QName> operationList = new ArrayList<QName>();
                operationList.addAll(operationMap.keySet());
                // bindingOperationList
                Iterator ite = binding.getBindingOperations().iterator();
                while (ite.hasNext()) {
                    BindingOperation bop = (BindingOperation)ite.next();
                    QName bopName = new QName(def.getTargetNamespace(), bop.getName());
                    if (!operationList.contains(bopName)) {