Как заставить массив строк возвращать значение в gsoap

Я борюсь с привязкой параметров возврата gsoap. У меня есть функция, которая возвращает char** который составлен так: {char*, ..., char*, NULL}, Я хочу, чтобы сгенерированный веб-сервис мог передавать и обрабатывать несколько строк в одном параметре. Gsoap, однако, генерирует только:
<element name="retVal" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/>

Я хотел бы, чтобы он возвращал массив строк, а не одну строку.

-2

Решение

Если я понимаю ваш вопрос

Вы можете разработать свою собственную функцию, которая вызывает функцию gSoap, чтобы получить возвращенную строку из функции gSoap, затем разделить строку gSoap на подстроки и поместить их в массив, а затем вернуть свой массив строк.

0

Другие решения

Я нашел ответ в документация. Оказывается, мне пришлось создать структуру, которая будет использоваться для возврата значения и присвоения имен переменным соответствующим образом. В моем случае:

struct ns_cl_get_indexes_retVal {
int __sizeIndex;
char** index;
};

и функция в заголовке WS-base:

int ns__cl_get_indexes ( int32_t db_id,  struct ns_cl_get_indexes_retVal& retVal );

Что привело к правильной генерации XML, как видно из wsdl:

<element name="index" type="xsd:string" minOccurs="0" maxOccurs="unbounded" nillable="true"/>
0