You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by "John Hawkins (JIRA)" <ax...@ws.apache.org> on 2006/01/03 16:13:01 UTC

[jira] Reopened: (AXISCPP-753) WSDL2Ws can't handle complexTypes?

     [ http://issues.apache.org/jira/browse/AXISCPP-753?page=all ]
     
John Hawkins reopened AXISCPP-753:
----------------------------------


>From Franz   

Dr. Franz Fehringer (Dipl. Math.)
____________________________________
ISO Software Systeme
Eichendorffstrasse 29
90491 Nürnberg
Deutschland

Tel. : +49/(911) - 99594-0
Fax  : +49/(911) - 99594-580

mailto:feh@isogmbh.de
http://www.isogmbh.de


....................................................................................................................................................................................

Hello John,

According to my investigations AXISCPP-753 regarding anonymous types is
solved only for special cases.
The working case is
         <xs:element name="PruebaDatosCabecera"> 
            <xs:complexType> 
            ...
            </xs:complexType> 
         </xs:element> 
But if this construct is contained in another complexType wsdl2ws does it
all wrong.
With
    <xsd:complexType
xmlns="http://www.pegs-pegstour.com/API/XMLSchema/1.0.1" name="t_Warning">
           ...
           <xsd:element name="Description">
                <xsd:complexType>
                ...
               </xsd:complexType>
           </xsd:element>
           ...
    </xsd:complexType>
wsdl2ws tries to generate an artificial type t_Warning_Description.
This fails in at least two ways:
*		 The infamous gt sign reappears:
#include ">t_Warning_Description.hpp"
class >t_Warning_Description;
>t_Warning_Description* Description;
>t_Warning_Description* getDescription();
void setDescription(>t_Warning_Description* InValue);
*		 Code generation is completely omitted for this artificial type, i.e.
there is no t_Warning_Description.hpp ore something alike.
The content of the "Description" element is therefore not accessible from
Axis generated source code.


> WSDL2Ws can't handle complexTypes?
> ----------------------------------
>
>          Key: AXISCPP-753
>          URL: http://issues.apache.org/jira/browse/AXISCPP-753
>      Project: Axis-C++
>         Type: Bug
>   Components: WSDL processing - RPC
>     Versions: 1.5 Final
>  Environment: Linux
>     Reporter: jose
>     Assignee: John Hawkins
>      Fix For: 1.6 Alpha

>
> WSDL2Ws can't handle complexTypes.
> With this wsdl:
> =============================
> <?xml version="1.0" encoding="UTF-8"?>
> <definitions
>     name="PruebasBug"
>     targetNamespace="http://www.abysal.com/soap/PruebasBug.wsdl"
>     xmlns="http://schemas.xmlsoap.org/wsdl/"
>     xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>     xmlns:tns="http://www.abysal.com/soap/PruebasBug.wsdl"
>     xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>    <types>
>       <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
>          <xs:element name="PruebaDatosCabecera">
>             <xs:complexType>
>                <xs:sequence>
>                   <xs:element name="IdenOrgNac" type="xsd:string"/>
>                   <xs:element name="NumSec"     type="xsd:string"/>
>                </xs:sequence>
>             </xs:complexType>
>          </xs:element>
>       </xs:schema>
>    </types>
>    <message name="PruebasBugInput">
>       <part name="PruebasBugId" element="tns:PruebaDatosCabecera"></part>
>    </message>
>    <message name="PruebasBugResponse">
>       <part name="PruebasBugReturn" type="xsd:int"></part>
>    </message>
>    <portType name="PruebasBugPortType">
>       <operation name="AbySend" parameterOrder="PruebasBugId">
>          <input message="tns:PruebasBugInput"/>
>          <output message="tns:PruebasBugResponse"/>
>       </operation>
>    </portType>
>    <binding name="PruebasBugBinding" type="tns:PruebasBugPortType">
>         <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
>         <operation name="AbySend">
>             <soap:operation soapAction=""/>
>             <input>
>                 <soap:body
>                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
>                     namespace="http://www.abysal.com/Abysal-webDTP"
>                     use="encoded"/>
>             </input>
>             <output>
>                 <soap:body
>                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
>                     namespace="http://www.abysal.com/Abysal-webDTP"
>                     use="encoded"/>
>             </output>
>         </operation>
>     </binding>
>     <service name="PruebasBugService">
>         <port binding="tns:PruebasBugBinding" name="PruebasBugPort">
>             <soap:address location="http://aries:8080/axis/services/PruebasBug"/>
>         </port>
>     </service>
> </definitions>
> ===================================
> the result for client is in verbose mode:
> ---------{http://www.abysal.com/soap/PruebasBug.wsdl}>PruebaDatosCabecera------------
> languageSpecificName = >PruebaDatosCabecera
> isArray =false
> Elements[
> ,java.util.Hashtable$Enumerator@1549f94:(>PruebaDatosCabecera>IdenOrgNac,{http://www.w3.org/2001/XMLSchema}string| max = 1 min =1|)
> ,java.util.Hashtable$Enumerator@1549f94:(>PruebaDatosCabecera>NumSec,{http://www.w3.org/2001/XMLSchema}string| max = 1 min =1|)
> ]
> Attributes[
> ]
> ------------------------------------------------------
> xsd__intLanguageName  ....................
> Output Parameter type Name :xsd__int
> /home/jaa/axisc++/pruebas/pp/PruebasBugPortType.cpp created.....
> /home/jaa/axisc++/pruebas/pp/PruebasBugPortType.hpp created.....
> ignoring anonymous type >PruebaDatosCabecera
> Code generation completed.
> The file .hpp generated is:
> /*
>  * This file was auto-generated by the Axis C++ Web Service Generator (WSDL2Ws)
>  * This file contains Client Stub Class for remote web service
>  */
> #if !defined(__PRUEBASBUGPORTTYPE_CLIENTSTUB_H__INCLUDED_)
> #define __PRUEBASBUGPORTTYPE_CLIENTSTUB_H__INCLUDED_
> #include <axis/client/Stub.hpp>
> #include <axis/SoapFaultException.hpp>
> #include <axis/ISoapFault.hpp>
> AXIS_CPP_NAMESPACE_USE
> class PruebasBugPortType :public Stub
> {
> public:
>    STORAGE_CLASS_INFO PruebasBugPortType(const char* pchEndpointUri, AXIS_PROTOCOL_TYPE eProtocol=APTHTTP1_1);
>    STORAGE_CLASS_INFO PruebasBugPortType();
> public:
>    STORAGE_CLASS_INFO virtual ~PruebasBugPortType();
> public:
>    STORAGE_CLASS_INFO xsd__int AbySend(>PruebaDatosCabecera* Value0);
> };
> #endif /* !defined(__PRUEBASBUGPORTTYPE_CLIENTSTUB_H__INCLUDED_)*/
> What ">PruebasDatosCabecera" means?
> Thanks...

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira