Мы работаем над сторонней интеграцией с использованием предоставленных нам WSDL и XSD.Мы использовали svcutil для генерации всех прокси-классов, что прекрасно работает.Когда мы тестируем с помощью SoapUi, все работает нормально, однако, когда мы пытаемся отправить ответ нашему партнеру, он отклоняет сообщение SOAP, поскольку пространства имен определяются в заголовке и теле сообщения, а не в конверте SOAP.
К сожалению, я не могу заставить нашего партнера изменить свой процесс, чтобы он принимал наши сообщения (хотя я считаю, что они технически верны, поскольку мы определяем пространства имен до того, как мы используем их в XML, а не там, где они ожидают).Я знаю, что мог бы добавить инспектор сообщений, чтобы обработать SOAP-сообщение до того, как оно выйдет, но я бы не хотел переходить на этот уровень обработки.что мы могли бы установить, чтобы WCF выводил пространства имен на конверте вместо этого?
Что они хотят:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:h="http://theirdomain.org/service">
<s:Header>
<h:myType>
<version>V1.0</version>
</h:myType>
</s:Header>
<s:Body>
<h:someElement />
</s:Body>
</s:Envelope>
Что мы отправляем:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" >
<s:Header>
<h:myType xmlns:h="http://theirdomain.org/service">
<version>V1.0</version>
</h:myType>
</s:Header>
<s:Body>
<h:someElement xmlns:h="http://theirdomain.org/service"/>
</s:Body>
</s:Envelope>