Возврат нескольких элементов в ответе SOAP - PullRequest
0 голосов
/ 20 апреля 2020

Я использую:

  • . NET Core 3.0 (C#)
  • SOAPCore для сериализации
  • SQL Сервер

У меня есть предварительно созданная служба SOAP из устаревшей системы, которая предоставляет запрос, структурированный из двух (2) элементов (RequestHeader и SearchPolicyDetails):

<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:Body>
    <RequestHeader xmlns="http://xxx">
       <RequestDate>2019-11-18+05:30</RequestDate>
       <SourceSystemRequestNo>1001</SourceSystemRequestNo>
    </RequestHeader>
    <SearchPolicyDetails xmlns="http://xxx">
       <policyNumber>xxxxxxxx</policyNumber>
       <asOfDate>2019-12-24</asOfDate>
    </SearchPolicyDetails>
  </soap:Body>
</soap:Envelope>

Я могу получить и то и другое, если я использую единственную конечную точку на своих SOAP конечных точках (т. е. RequestHeader возвращает нужные мне данные или SearchPolicyDetails возвращает нужные мне данные. Однако я бы хотел, чтобы они выполнялись последовательно, чтобы я мог возвращать данные из каждой в один ответ:

<s:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
            xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Body>
        <RequestHeaderResponse>
           {{DATA}}
        </RequestHeaderResponse>
        <SearchPolicyDetailsResponse>
           {{DATA}}
        </SearchPolicyDetailsResponse>
    </s:Body>
</s:Envelope>

Возможно ли это, поскольку я не знаю, удастся ли получить команду, которая создала устаревшую систему, для обновления объектов запроса. В настоящее время, если я выполню их в том же запросе полезная нагрузка возвращает только данные первого элемента.

...