name));
}
context.push();
context.registerNamespaces(e2);
Input input = new Input(forest.locatorTable.getStartLocation(e2), errReceiver);
input.setParent(operation);
String messageAttr =
Util.getRequiredAttribute(e2, Constants.ATTR_MESSAGE);
input.setMessage(context.translateQualifiedName(context.getLocation(e2), messageAttr));
String nameAttr =
XmlUtil.getAttributeOrNull(e2, Constants.ATTR_NAME);
input.setName(nameAttr);
operation.setInput(input);
gotInput = true;
if (gotOutput) {
inputBeforeOutput = false;
}
// check for extensiblity attributes
for (Iterator iter2 = XmlUtil.getAllAttributes(e2);
iter2.hasNext();
) {
Attr e3 = (Attr)iter2.next();
if (e3.getLocalName().equals(Constants.ATTR_MESSAGE) ||
e3.getLocalName().equals(Constants.ATTR_NAME))
continue;
// possible extensibility element -- must live outside the WSDL namespace
checkNotWsdlAttribute(e3);
if (!handleExtension(context, input, e3, e2)) {
// ignore the extensiblity attribute
// TODO throw a WARNING
}
}
// verify that there is at most one child element and it is a documentation element
boolean gotDocumentation2 = false;
for (Iterator iter2 = XmlUtil.getAllChildren(e2);
iter2.hasNext();
) {
Element e3 = Util.nextElement(iter2);
if (e3 == null)
break;
if (XmlUtil
.matchesTagNS(e3, WSDLConstants.QNAME_DOCUMENTATION)) {
if (gotDocumentation2) {
errReceiver.error(forest.locatorTable.getStartLocation(e), WsdlMessages.PARSING_ONLY_ONE_DOCUMENTATION_ALLOWED(e.getLocalName()));
}
gotDocumentation2 = true;
input.setDocumentation(getDocumentationFor(e3));
} else {
errReceiver.error(forest.locatorTable.getStartLocation(e3), WsdlMessages.PARSING_INVALID_ELEMENT(e3.getTagName(),
e3.getNamespaceURI()));
}
}