Hashtable namespaceMap = new Hashtable();
String namespacePrefix = null;
String namespaceURI = null;
QName messagePartType = null;
for (int i = 0; i < method.length; i++) {
JMethod jmethod = method[i];
// only if a type for the message part has already been defined
if ((messagePartType = typeTable.getComplexSchemaType(jmethod
.getSimpleName())) != null) {
namespaceURI = messagePartType.getNamespaceURI();
// avoid duplicate namespaces
if ((namespacePrefix = (String) namespaceMap.get(namespaceURI)) == null) {
namespacePrefix = generatePrefix();
namespaceMap.put(namespaceURI, namespacePrefix);
}
//Request Message
OMElement requestMessge = fac.createOMElement(
MESSAGE_LOCAL_NAME, wsdl);
requestMessge.addAttribute(ATTRIBUTE_NAME, jmethod
.getSimpleName()
+ MESSAGE_SUFFIX, null);
definitions.addChild(requestMessge);
OMElement requestPart = fac.createOMElement(
PART_ATTRIBUTE_NAME, wsdl);
requestMessge.addChild(requestPart);
requestPart.addAttribute(ATTRIBUTE_NAME, "part1", null);
requestPart.addAttribute(ELEMENT_ATTRIBUTE_NAME,
namespacePrefix + COLON_SEPARATOR
+ jmethod.getSimpleName(), null);
}
// only if a type for the message part has already been defined
if ((messagePartType = typeTable.getComplexSchemaType(jmethod
.getSimpleName()
+ RESPONSE)) != null) {
namespaceURI = messagePartType.getNamespaceURI();
if ((namespacePrefix = (String) namespaceMap.get(namespaceURI)) == null) {
namespacePrefix = generatePrefix();
namespaceMap.put(namespaceURI, namespacePrefix);
}
//Response Message
OMElement responseMessge = fac.createOMElement(
MESSAGE_LOCAL_NAME, wsdl);
responseMessge.addAttribute(ATTRIBUTE_NAME, jmethod
.getSimpleName()
+ RESPONSE_MESSAGE, null);
definitions.addChild(responseMessge);
OMElement responsePart = fac.createOMElement(
PART_ATTRIBUTE_NAME, wsdl);
responseMessge.addChild(responsePart);
responsePart.addAttribute(ATTRIBUTE_NAME, "part1", null);
responsePart.addAttribute(ELEMENT_ATTRIBUTE_NAME,
namespacePrefix + COLON_SEPARATOR
+ jmethod.getSimpleName() + RESPONSE, null);
}
}
// now add these unique namespaces to the the definitions element
Enumeration enumeration = namespaceMap.keys();