Как заставить веб-сервис C # создавать пространство имен soapenv вместо мыла? - PullRequest
4 голосов
/ 25 февраля 2010

Есть ли способ сделать веб-сервис на C # / .NET, который обычно генерирует XML, как этот

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
 <DHeader xmlns="http://www.abc.com" />
</soap:Header>
  <soap:Body>
    <Response xmlns="http://www.abc.com">
      <Result>
        <ErrorObject ObjectID="string" ErrorCode=""  />          
      </Result>
     </Response>
   </soap:Body>
</soap:Envelope>

для создания XML, подобного этому.

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapv:Header>
    <DHeader xmlns="http://www.abc.com" />
  </soapenv:Header>
  <soapenv:Body>
    <Response xmlns="http://www.abc.com">
      <Result>
        <ErrorObject ObjectID="string" ErrorCode=""  />          
      </Result>
    </Response>
  </soapenv:Body>
</soapenv:Envelope>

Эта попытка решить проблему с клиентом AXIS, использующим веб-сервис .NET. ОСЬ задыхается в пространстве имен soap и нуждается в пространстве имен soapenv. Изменение стороны оси невозможно.

любые мысли или комментарии будут великолепны.

Вот точная ошибка в соответствии с запросом.

line -1: Element Envelope@http://www.w3.org/2003/05/soap-envelope is not a valid Envelope@http://schemas.xmlsoap.org/soap/envelope/ document or a valid substitution. 

1 Ответ

1 голос
/ 25 февраля 2010

soapenv это не пространство имен - это префикс пространства имен.

Пока префиксы относятся к одному и тому же пространству имен, soap и soapenv относятся к одной и той же вещи и имеют одинаковое значение.

Кажется крайне маловероятным, что какая-либо версия AXIS так сильно сломана, что специально обрабатывает префиксы. Вы должны предположить, что у вас другая проблема. Пожалуйста, напишите точную ошибку, которую вы получаете.

...