categoryBag.getKeyedReference().add(typesReferenceBackwardsCompatible);
// One or two keyedReferences as required to capture the protocol
for (Object object : binding.getExtensibilityElements()) {
SOAPBinding sb = null;
SOAP12Binding sb12 = null;
HTTPBinding hb = null;
try {
hb = (HTTPBinding) object;
} catch (Exception x) {
}
try {
sb = (SOAPBinding) object;
} catch (Exception x) {
}
try {
sb12 = (SOAP12Binding) object;
} catch (Exception x) {
}
if (sb != null) {
// If the wsdl:binding contains a soap:binding extensibility element from the
// 'http://schemas.xmlsoap.org/wsdl/soap/' namespace then the categoryBag MUST
//include a keyedReference with a tModelKey of the Protocol Categorization
// category system and a keyValue of the tModelKey of the SOAP Protocol tModel.
SOAPBinding soapBinding = sb;
KeyedReference soapProtocol = newKeyedReference(
"uddi:uddi.org:wsdl:categorization:protocol", "uddi-org:protocol:soap", "uddi:uddi.org:protocol:soap");
categoryBag.getKeyedReference().add(soapProtocol);
// If the value of the transport attribute of the soap:binding element
// is 'http://schemas.xmlsoap.org/soap/http' then the categoryBag MUST
// include a keyedReference with a tModelKey of the Transport Categorization
// category system and a keyValue of the tModelKey of the HTTP Transport tModel.
if ("http://schemas.xmlsoap.org/soap/http".equals(soapBinding.getTransportURI())) {
KeyedReference httpTransport = newKeyedReference(
"uddi:uddi.org:wsdl:categorization:transport", "uddi-org:http", "uddi:uddi.org:transport:http");
categoryBag.getKeyedReference().add(httpTransport);
} else if (soapBinding.getTransportURI() != null) {
// TODO If the value of the transport attribute is anything else,
// then the bindingTemplate MUST include an additional keyedReference with a tModelKey
// of the Transport Categorization category system and a keyValue of the tModelKey of
// an appropriate transport tModel.
log.warn("not implemented, binding transport is " + soapBinding.getTransportURI());
}
} else if (hb != null) {
// If the wsdl:binding contains an http:binding extensibility element from the
// http://schemas.xmlsoap.org/wsdl/http/ namespace then the categoryBag MUST
// include a keyedReference with a tModelKey of the Protocol Categorization
// category system and a keyValue of the tModelKey of the HTTP Protocol tModel.
KeyedReference soapProtocol = newKeyedReference(
"uddi:uddi.org:wsdl:categorization:protocol", "uddi-org:protocol:http", "uddi:uddi.org:protocol:http");
categoryBag.getKeyedReference().add(soapProtocol);
} else if (sb12 != null) {
// If the wsdl:binding contains a soap:binding extensibility element from the
// 'http://schemas.xmlsoap.org/wsdl/soap/' namespace then the categoryBag MUST
//include a keyedReference with a tModelKey of the Protocol Categorization
// category system and a keyValue of the tModelKey of the SOAP Protocol tModel.
KeyedReference soapProtocol = newKeyedReference(
"uddi:uddi.org:wsdl:categorization:protocol", "uddi-org:protocol:soap", "uddi:uddi.org:protocol:soap");
categoryBag.getKeyedReference().add(soapProtocol);
// If the value of the transport attribute of the soap:binding element
// is 'http://schemas.xmlsoap.org/soap/http' then the categoryBag MUST
// include a keyedReference with a tModelKey of the Transport Categorization
// category system and a keyValue of the tModelKey of the HTTP Transport tModel.
if ("http://schemas.xmlsoap.org/soap/http".equals(sb12.getTransportURI())) {
KeyedReference httpTransport = newKeyedReference(
"uddi:uddi.org:wsdl:categorization:transport", "uddi-org:http", "uddi:uddi.org:transport:http");
categoryBag.getKeyedReference().add(httpTransport);
} else if (sb12.getTransportURI() != null) {
// TODO If the value of the transport attribute is anything else,
// then the bindingTemplate MUST include an additional keyedReference with a tModelKey
// of the Transport Categorization category system and a keyValue of the tModelKey of
// an appropriate transport tModel.
log.warn("not implemented, binding transport is " + sb12.getTransportURI());
}
} else {
log.warn("Unrecongnized binding type: " + object.getClass().getCanonicalName() + ". Generated"
+ "binding tModel may be missing the required (according to WSDL2UDDI spec) "