Это стандартная или распространенная кодировка для SOAP-запроса? - PullRequest
1 голос
/ 31 октября 2009

Я использую веб-сервис, где WSDL описывает один строковый элемент в каждом запросе и ответе.

<s:element name="SERVICE">
  <s:complexType>
    <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="SERVICERequest" type="s:string" />
    </s:sequence>
  </s:complexType>
</s:element>

В эту строку встроен ряд простых XML-элементов, у которых экранированы теги.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope 
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
      <SERVICE xmlns="https://services.transcard.com/">
        &lt;SERVICERequest&gt;
          &lt;SERVICE_REQ&gt;
            &lt;PARAM_1&gt;
              Value1
            &lt;/PARAM_1&gt;
            &lt;PARAM_2&gt;
              Value2
            &lt;/PARAM_2&gt;
            &lt;PARAM_3&gt;
              Value3
            &lt;/PARAM_3&gt;
          &lt;/SERVICE_REQ&gt;
        &lt;/SERVICERequest&gt;
      </SERVICE>
    </soap:Body>
</soap:Envelope>

Это формат ответов службы и формат, ожидаемый для входящих запросов.

Это часто встречается в интерфейсах SOAP? На практике это делает внутренние параметры недоступными для библиотеки SOAP, которую я использую. (soap4r) Любые отзывы от ветеранов SOAP приветствуются.

1 Ответ

3 голосов
/ 31 октября 2009

Нет. Это не часто.

Это полностью игнорирует использование фактической схемы (которая определяет тип данных, подлежащий возврату) и заменяет ее гигантской строкой, которую вам придется анализировать, как только вы получите ответ.

... Грозный.

...