If you are sure this is a gsoap fault I think it should be better to open a bug report with you patch as attachment.
Bye Stefano On 16 August 2010 10:09, Rolf Ackermann <r...@weon.ch> wrote: > > > Hi all > > I've searched around the code and found that "wsdl2h" creates the following > code: > > SOAP_FMAC3 int SOAP_FMAC4 soap_out_msex07t__FolderChangeType(struct soap > *soap, const char *tag, int > id, const msex07t__FolderChangeType *a, const char *type) > { > if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, > SOAP_TYPE_msex07t__FolderChangeType), type)) > return soap->error; > if > (soap_out_PointerTomsex07t__NonEmptyArrayOfFolderChangeDescriptionsType(soap, > "msex07t:Updates", > -1, &(a->msex07t__FolderChangeType::Updates), "")) > return soap->error; > if (soap_out__msex07t__union_FolderChangeType(soap, > a->msex07t__FolderChangeType::__union_FolderChangeType, > &a->msex07t__FolderChangeType::union_FolderChangeType)) > return soap->error; > /* transient soap skipped */ > return soap_element_end_out(soap, tag); > } > > The correct code is: > > SOAP_FMAC3 int SOAP_FMAC4 soap_out_msex07t__FolderChangeType(struct soap > *soap, const char *tag, int > id, const msex07t__FolderChangeType *a, const char *type) > { > if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, > SOAP_TYPE_msex07t__FolderChangeType), type)) > return soap->error; > if (soap_out__msex07t__union_FolderChangeType(soap, > a->msex07t__FolderChangeType::__union_FolderChangeType, > &a->msex07t__FolderChangeType::union_FolderChangeType)) > return soap->error; > if > (soap_out_PointerTomsex07t__NonEmptyArrayOfFolderChangeDescriptionsType(soap, > "msex07t:Updates", > -1, &(a->msex07t__FolderChangeType::Updates), "")) > return soap->error; > /* transient soap skipped */ > return soap_element_end_out(soap, tag); > } > > The generated header file of wsdl2h is also wrong. > > > Kind regards > > Rolf (aka spieler67) > > > Hi Kathryn > > > > First of all: Thanks for the link. > > > > The problem is I have the following types.xsd: > > > > <xs:complexType name="FolderChangeType"> > > <xs:sequence> > > <xs:choice> > > <xs:element name="FolderId" type="t:FolderIdType" /> > > <xs:element name="DistinguishedFolderId" > type="t:DistinguishedFolderIdType"/> > > </xs:choice> > > <xs:element name="Updates" > type="t:NonEmptyArrayOfFolderChangeDescriptionsType" /> > > </xs:sequence> > > </xs:complexType> > > > > If I complile it with wdsl2h of gSOAP 2.7.17 the output of XML looks > like: > > > > <FolderChange> > > <Updates> > > . > > . > > . > > </Updates> > > <FolderID ...></FolderID> > > </FolderChange> > > > > The problem with this output is that Exchange 2007 Web Service shows an > error while > > checking the schema. > > > > Is there a parameter which can be given in the call to wsdl2h to fix the > element sequence? > > > > Kind regards > > > > Rolf (aka spieler67) > > > >> > >> > >> > >> Rolf Ackermann wrote: > >> > >> > I have a strange problem. I'm using gSOAP 2.7.17 for accessing > Microsoft > >> > Exchange 2007 Web Service. > >> > While using a specific function I receive a fault saying there is an > >> > element missing. I've searching > >> > for that element and found out that Exchange 2007 makes a schema > testing > >> > which needs the XML tags in > >> > a specific sequence. > >> > > >> > Is there a way to define the order of the XML tags? For example: > >> > >> xsd:sequence defines a container with children that must appear in the > >> specified order: > >> > >> http://www.w3schools.com/Schema/schema_complex_indicators.asp > >> > >> > > >> > gSOAP produces > >> > > >> > <TAG A> > >> > <TAG A, Part B>Value 2</TAG A, Part B> > >> > <TAG A, Part A>Value 1</TAG A, Part A> > >> > </TAG A> > >> > > >> > but Exchange 2007 Web Services needs the sequence > >> > > >> > <TAG A> > >> > <TAG A, Part A>Value 1</TAG A, Part A> > >> > <TAG A, Part B>Value 2</TAG A, Part B> > >> > </TAG A> > >> > > >> > With the gSOAP produces output I receive an error from Exchange 2007 > Web > >> > Services called > >> > > >> > Error while checking schema. Invalid Tag 'TAG A, Part B' needs either > >> 'TAG > >> > A, Part A' or ... > >> > > >> > I'm happy with any ideas in this case. > >> > > >> > Kind regards > >> > > >> > Rolf (aka spieler67) > >> > > >> > > >> > ------------------------------------ > >> > > >> > Yahoo! Groups Links > >> > > >> > > >> > > >> > >> -- > >> Kathryn > >> http://womensfooty.com > >> National Team Donation - http://womensfooty.com/freedom/donate > >> > >> > > > > > > > > > > ------------------------------------ > > > > Yahoo! Groups Links > > > > > > > > > -- Stefano Canepa aka sc: s...@linux.it - http://www.stefanocanepa.it Three great virtues of a programmer: laziness, impatience and hubris. Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall)