Как заставить gsoap генерировать чистый код c сложными структурами из wsdl, не меняя их на char *? - PullRequest
0 голосов
/ 10 января 2012

У меня есть wsdl-shema со сложным типом:

<complexType name="stringArray">
  <sequence>
    <element name="strings" type="xsd:string" minOccurs="0" 
             maxOccurs="unbounded"/>
  </sequence>
</complexType>

Этот сложный тип используется в сообщении:

<message name="insertResponse">
    <part name="err" type="xsd:int"/>
    <part name="title" type="xsd:string"/>
    <part name="text" type="xsd:string"/>
    <part name="date" type="xsd:dateTime"/>
    <part name="authors" type="stringArray"/>
    <part name="topics" type="intArray"/>
</message>

Когда я генерирую файл заголовка с помощью wsdl2h,Я получаю:

struct ns2__insertResponse
{
    int                                 err;
    char*                               title;
    char*                               text;
    time_t                              date;
    wsdl__stringArray                   authors;
    wsdl__intArray                      topics;
};

Но когда я пытаюсь сгенерировать код с помощью soapcpp2, я получаю следующее в soapStub.h:

struct ns2__insertResponse
{
    int err;        /* SOAP 1.2 RPC return element (when namespace qualified)     */    /* required element of type xsd:int */
    char *title;    /* optional element of type xsd:string */
    char *text;     /* optional element of type xsd:string */
    time_t date;    /* required element of type xsd:dateTime */
    char *authors;  /* optional element of type wsdl:stringArray */
    char *topics;   /* optional element of type wsdl:intArray */
};

Почему он заменяет wsdl__stringArray на char * икак заставить его сохранить собственную структуру?

...