axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <susan...@opensource.lk>
Subject RE: Problems with latest CVS Code and WSDL2Ws
Date Mon, 16 Feb 2004 11:37:33 GMT
Hi Jean-Yves,

I am working on these issues.

>
> Many thanks for you quick patch integration. I upgraded to the last CVS
> code and it is going better and better. Here my result, some others
> issues I found and some questions (all are about the doc/lit style).
>
> Malling List question
> ---------------------
> I subscribe to the axis-c-dev but I never received any mail from
> axis-c-dev. I need to go to the http://marc.theaimsgroup.com/ site to
> see if I have answer to my mail. And if I want to reply I need to cut
> and paste in my mail mailer. Is there an option to have the mail arrived
> in my mailbox ?

please try re-subscribing to list.

>
>
> Results after updated to last CVS code
> -------------------------------------
> 1 - All the exceptions traces deseappeard when generating.
>
> 2 - The extra *[unbounded].h are corrected.
>
> 3 - The element name are not renamed for reserved C++
>      keyword (corrected).
>
> 4 - The code still not compiling for this kind of schema fragment :
>
> This complexType :
>
>      <xsd:complexType name="intArrayType">
>          <xsd:sequence>
>              <xsd:element maxOccurs="unbounded" name="Item"
>
> type="xsd:int"/>
>          </xsd:sequence>
>      </xsd:complexType>
>
>
> Produces the following C++ code :
>
>      class shortArrayType
>       {
>        public:
> 	short_Array Item; // should be xsd__short_Array Item ?

yes ...I have fixed this issue but havenot yet checked in the code. For
the moment please add xsd__ for simple type arrays.

> 	shortArrayType();
> 	~shortArrayType();
>       };
>
> So I still having to add the folowing typedef in AxisUserAPI.h
>
>   /* JBY some simple types typedef
>    (avoid compilation pbs of generated cpp
>    client code) */
>
>   typedef xsd__double_Array double_Array;
>   typedef xsd__float_Array float_Array;
>   typedef xsd__boolean_Array boolean_Array;
>   typedef xsd__string_Array string_Array;
>   typedef xsd__int_Array int_Array;
>   typedef xsd__short_Array short_Array;
>   typedef xsd__long_Array long_Array;

Then you dont need these typedefs

>
>
> Other issue found since last mail
> ---------------------------------
> SOAP request is incorrect for this kind of message :
>
>      ...
>      <xsd:complexType name="SessionTokenType">
>          <xsd:sequence>
>              <xsd:element maxOccurs="1" minOccurs="1" name="SessionId"
>                    type="xsd:string"/>
>          </xsd:sequence>
>      </xsd:complexType>
>      <xsd:element name="SessionToken" type="tns:SessionTokenType"/>
>      ...
>
>      <message name="sessionLogoutInput">
>        <part name="parameters" element="ns2:SessionToken"/>
>      </message>
>      ....
>
> Axis C/C++ build this SOAP request :
>
>      ...
>      <ns1:SessionToken xmlns:ns1="http://xxx">
>        <SessionToken>
>          <SessionId>100</SessionId>
>        </SessionToken>
>      </ns1:SessionToken>
>      ...
>
> The correct syntax is (verified with Axis Java 1.1 client)
>
>      ...
>      <ns1:SessionToken xmlns:ns1="http://xxx">
>          <SessionId>100</SessionId>
>      </ns1:SessionToken>
>      ...
>
> So the portType generated code must be (for this kind of wsdl):
> 	m_pCall->SetOperation("SessionToken","http://xxx");
> 	/* WRONG : m_pCall->AddCmplxParameter(Value0,
> 		(void*)Axis_Serialize_SessionTokenType,
> 		(void*)Axis_Delete_SessionTokenType, "SessionToken",
> 		Axis_URI_SessionTokenType);*/
> 	m_pCall->
> 		AddParameter(
> 		(void*)&Value0->SessionId, "SessionId", XSD_STRING);
>
correct. But we also have to detect whether the complex type
SessionTokenType is used elsewhere or not. If it is used we should write a
complex type (class or struct) for that too.

Thanks,

Susantha.



Mime
View raw message