{
QName xmlName;
// R2306 A wsdl:message in a DESCRIPTION MUST NOT specify both type and element attributes on the same wsdl:part
if (srcPart.getTypeName() != null && srcPart.getElementName() != null)
throw new WSDLException(WSDLException.INVALID_WSDL, "Message parts must not define an element name and type name: " + srcMessage.getQName());
String style = destOperation.getStyle();
if (Constants.URI_STYLE_RPC.equals(style))
{
// R2203 An rpc-literal binding in a DESCRIPTION MUST refer, in its soapbind:body element(s),
// only to wsdl:part element(s) that have been defined using the type attribute.
if (srcPart.getName() == null)
throw new WSDLException(WSDLException.INVALID_WSDL, "RPC style message parts must define a typy name: " + srcMessage.getQName());
// <part name="param" element="tns:SomeType" />
// Headers do have an element name even in rpc
xmlName = srcPart.getElementName();
// <part name="param" type="xsd:string" />
if (xmlName == null)
xmlName = new QName(srcPart.getName());
}
else
{
// R2204 A document-literal binding in a DESCRIPTION MUST refer, in each of its soapbind:body element(s),
// only to wsdl:part element(s) that have been defined using the element attribute
// [hb] do this only for non swa porttypes
if (srcPart.getElementName() == null)
throw new WSDLException(WSDLException.INVALID_WSDL, "Document style message parts must define an element name: " + srcMessage.getQName());
// <part name="param" element="tns:SomeType" />
xmlName = srcPart.getElementName();
}