В WSDL, если вы посмотрите на раздел Binding , вы четко увидите, что мыльная привязка явно упоминается, если служба использует soap 1.2. см. образец ниже.
<binding name="EmployeeServiceImplPortBinding" type="tns:EmployeeServiceImpl">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<operation name="findEmployeeById">
<soap12:operation soapAction=""/>
<input><soap12:body use="literal"/></input>
<output><soap12:body use="literal"/></output>
</operation><operation name="create">
<soap12:operation soapAction=""/>
<input><soap12:body use="literal"/></input>
<output><soap12:body use="literal"/></output>
</operation>
</binding>
если веб-служба использует soap 1.1, она не будет явно определять какую-либо версию soap в файле WSDL в разделе привязки. см. образец ниже.
<binding name="EmployeeServiceImplPortBinding" type="tns:EmployeeServiceImpl">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
<operation name="findEmployeeById">
<soap:operation soapAction=""/>
<input><soap:body use="literal" namespace="http://jaxb.ws.jax.samples.chathurangaonline.com/"/></input>
<output><soap:body use="literal" namespace="http://jaxb.ws.jax.samples.chathurangaonline.com/"/></output>
</operation><operation name="create">
<soap:operation soapAction=""/>
<input><soap:body use="literal" namespace="http://jaxb.ws.jax.samples.chathurangaonline.com/"/></input>
<output><soap:body use="literal" namespace="http://jaxb.ws.jax.samples.chathurangaonline.com/"/></output>
</operation>
</binding>
Как определить версию SOAP сообщения SOAP?
но помните, что это не очень рекомендуемый способ определения версии мыла, которую используют ваши веб-сервисы. версию сообщения мыла можно определить одним из следующих способов.
1. проверка пространства имен мыльного сообщения
SOAP 1.1 namespace : http://schemas.xmlsoap.org/soap/envelope
SOAP 1.2 namespace : http://www.w3.org/2003/05/soap-envelope
2. проверка информации о транспортном связывании (информация заголовка http) мыльного сообщения
SOAP 1.1: текст пользователя / xml для типа контекста
POST /MyService HTTP/1.1
Content-Type: text/xml; charset="utf-8"
Content-Length: xxx
SOAPAction: "urn:uuid:myaction"
SOAP 1.2: пользовательское приложение / soap + xml для типа контекста
POST /MyService HTTP/1.1
Content-Type: application/soap+xml; charset="utf-8"
Content-Length: xxx
SOAPAction: "urn:uuid:myaction"
3. используя информацию о сбое SOAP
Структура сообщения о сбое SOAP между двумя версиями различна.