[ http://issues.apache.org/jira/browse/AXISCPP-862?page=all ]
Fred Preston updated AXISCPP-862:
---------------------------------
Description:
The created client stub for the following WSDL is incorrect
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://webservices.com/CommerceService"
targetNamespace="http://webservices.com/CommerceService">
<types>
<xs:schema targetNamespace="http://webservices.com/CommerceService"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://webservices.com/CommerceService"
elementFormDefault="qualified">
<xs:element name="ItemSearch">
<xs:complexType>
<xs:sequence>
<xs:element name="SubscriptionId" type="xs:string" minOccurs="0"/>
<xs:element name="AssociateTag" type="xs:string" minOccurs="0"/>
<xs:element name="XMLEscaping" type="xs:string" minOccurs="0"/>
<xs:element name="Validate" type="xs:string" minOccurs="0"/>
<xs:element name="Shared" type="tns:ItemSearchRequest"
minOccurs="0"/>
<xs:element name="Request" type="tns:ItemSearchRequest"
minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="ItemSearchRequest">
<xs:sequence>
<xs:element name="Keywords" type="xs:string" minOccurs="0"/>
<xs:element name="SearchIndex" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:element name="ItemSearchResponse">
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:OperationRequest" minOccurs="0"/>
<xs:element ref="tns:Items" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="OperationRequest">
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:HTTPHeaders" minOccurs="0"/>
<xs:element name="RequestId" type="xs:string" minOccurs="0"/>
<xs:element ref="tns:Arguments" minOccurs="0"/>
<xs:element ref="tns:Errors" minOccurs="0"/>
<xs:element name="RequestProcessingTime" type="xs:float"
minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Request">
<xs:complexType>
<xs:sequence>
<xs:element name="IsValid" type="xs:string" minOccurs="0"/>
<xs:element name="ItemSearchRequest" type="tns:ItemSearchRequest"
minOccurs="0"/>
<xs:element ref="tns:Errors" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Arguments">
<xs:complexType>
<xs:sequence>
<xs:element name="Argument" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="Name" type="xs:string" use="required"/>
<xs:attribute name="Value" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="HTTPHeaders">
<xs:complexType>
<xs:sequence>
<xs:element name="Header" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="Name" type="xs:string" use="required"/>
<xs:attribute name="Value" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Items">
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:Request" minOccurs="0"/>
<xs:element ref="tns:CorrectedQuery" minOccurs="0"/>
<xs:element name="TotalResults" type="xs:nonNegativeInteger"
minOccurs="0"/>
<xs:element name="TotalPages" type="xs:nonNegativeInteger"
minOccurs="0"/>
<xs:element ref="tns:Item" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="CorrectedQuery">
<xs:complexType>
<xs:sequence>
<xs:element name="Keywords" type="xs:string" minOccurs="0"/>
<xs:element name="Message" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Item">
<xs:complexType>
<xs:sequence>
<xs:element name="ASIN" type="xs:string"/>
<xs:element ref="tns:Errors" minOccurs="0"/>
<xs:element name="DetailPageURL" type="xs:string" minOccurs="0"/>
<xs:element ref="tns:ItemAttributes" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ItemAttributes">
<xs:complexType>
<xs:sequence>
<xs:element name="Author" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="ProductGroup" type="xs:string" minOccurs="0"/>
<xs:element name="Title" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</types>
<message name="ItemSearchRequestMsg">
<part name="body" element="tns:ItemSearch"/>
</message>
<message name="ItemSearchResponseMsg">
<part name="body" element="tns:ItemSearchResponse"/>
</message>
<portType name="CommerceServicePortType">
<operation name="ItemSearch">
<input message="tns:ItemSearchRequestMsg"/>
<output message="tns:ItemSearchResponseMsg"/>
</operation>
</portType>
<binding name="CommerceServiceBinding" type="tns:CommerceServicePortType">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="ItemSearch">
<soap:operation soapAction="http://soap.com"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="CommerceService">
<port name="CommerceServicePort" binding="tns:CommerceServiceBinding">
<soap:address
location="http://soap.com/onca/soap?Service=CommerceService"/>
</port>
</service>
</definitions>
Produces the following header files:-
--------------------------------------------------
_Items_Array.hpp
==============
/*
* Copyright 2003-2004 The Apache Software Foundation.
*/
#if !defined(___ITEMS_ARRAY_ARRAY_H__INCLUDED_)
#define ___ITEMS_ARRAY_ARRAY_H__INCLUDED_
class >Items;
typedef struct _Items_ArrayTag
{
>Items* m_Array;
int m_Size;
} _Items_Array;
#endif /* !defined(___ITEMS_ARRAY_ARRAY_H__INCLUDED_)*/
CommerceServicePortType.hpp
=========================
STORAGE_CLASS_INFO void ItemSearch(xsd__string Value0, xsd__string Value1,
xsd__string Value2, xsd__string Value3, ItemSearchRequest* Value4,
ItemSearchRequest_Array Value5, AXIS_OUT_PARAM >OperationRequest* *OutValue0,
AXIS_OUT_PARAM _Items_Array *OutValue1);
There are four problems with the file:-
1. The type 'Items' is prefixed with a '>' character.
2. The class name should not be prefixed with a '>' character (see
_Items_Array.hpp).
3. The filename should not be prefixed with a '_' character.
4. Some of the output parameters are prefixed with a '>' character (see
CommerceServicePortType.hpp).
was:
The created client stub for the following WSDL is incorrect
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://webservices.com/CommerceService"
targetNamespace="http://webservices.com/CommerceService">
<types>
<xs:schema targetNamespace="http://webservices.com/CommerceService"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://webservices.com/CommerceService"
elementFormDefault="qualified">
<xs:element name="ItemSearch">
<xs:complexType>
<xs:sequence>
<xs:element name="SubscriptionId" type="xs:string" minOccurs="0"/>
<xs:element name="AssociateTag" type="xs:string" minOccurs="0"/>
<xs:element name="XMLEscaping" type="xs:string" minOccurs="0"/>
<xs:element name="Validate" type="xs:string" minOccurs="0"/>
<xs:element name="Shared" type="tns:ItemSearchRequest"
minOccurs="0"/>
<xs:element name="Request" type="tns:ItemSearchRequest"
minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="ItemSearchRequest">
<xs:sequence>
<xs:element name="Keywords" type="xs:string" minOccurs="0"/>
<xs:element name="SearchIndex" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:element name="ItemSearchResponse">
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:OperationRequest" minOccurs="0"/>
<xs:element ref="tns:Items" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="OperationRequest">
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:HTTPHeaders" minOccurs="0"/>
<xs:element name="RequestId" type="xs:string" minOccurs="0"/>
<xs:element ref="tns:Arguments" minOccurs="0"/>
<xs:element ref="tns:Errors" minOccurs="0"/>
<xs:element name="RequestProcessingTime" type="xs:float"
minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Request">
<xs:complexType>
<xs:sequence>
<xs:element name="IsValid" type="xs:string" minOccurs="0"/>
<xs:element name="ItemSearchRequest" type="tns:ItemSearchRequest"
minOccurs="0"/>
<xs:element ref="tns:Errors" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Arguments">
<xs:complexType>
<xs:sequence>
<xs:element name="Argument" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="Name" type="xs:string" use="required"/>
<xs:attribute name="Value" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="HTTPHeaders">
<xs:complexType>
<xs:sequence>
<xs:element name="Header" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="Name" type="xs:string" use="required"/>
<xs:attribute name="Value" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Items">
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:Request" minOccurs="0"/>
<xs:element ref="tns:CorrectedQuery" minOccurs="0"/>
<xs:element name="TotalResults" type="xs:nonNegativeInteger"
minOccurs="0"/>
<xs:element name="TotalPages" type="xs:nonNegativeInteger"
minOccurs="0"/>
<xs:element ref="tns:Item" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="CorrectedQuery">
<xs:complexType>
<xs:sequence>
<xs:element name="Keywords" type="xs:string" minOccurs="0"/>
<xs:element name="Message" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Item">
<xs:complexType>
<xs:sequence>
<xs:element name="ASIN" type="xs:string"/>
<xs:element ref="tns:Errors" minOccurs="0"/>
<xs:element name="DetailPageURL" type="xs:string" minOccurs="0"/>
<xs:element ref="tns:ItemAttributes" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ItemAttributes">
<xs:complexType>
<xs:sequence>
<xs:element name="Author" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="ProductGroup" type="xs:string" minOccurs="0"/>
<xs:element name="Title" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</types>
<message name="ItemSearchRequestMsg">
<part name="body" element="tns:ItemSearch"/>
</message>
<message name="ItemSearchResponseMsg">
<part name="body" element="tns:ItemSearchResponse"/>
</message>
<portType name="CommerceServicePortType">
<operation name="ItemSearch">
<input message="tns:ItemSearchRequestMsg"/>
<output message="tns:ItemSearchResponseMsg"/>
</operation>
</portType>
<binding name="CommerceServiceBinding" type="tns:CommerceServicePortType">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="ItemSearch">
<soap:operation soapAction="http://soap.com"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="CommerceService">
<port name="CommerceServicePort" binding="tns:CommerceServiceBinding">
<soap:address
location="http://soap.com/onca/soap?Service=CommerceService"/>
</port>
</service>
</definitions>
Produces the following header file (_Items_Array.hpp)
-------------------------------------------------------------------------
/*
* Copyright 2003-2004 The Apache Software Foundation.
*/
#if !defined(___ITEMS_ARRAY_ARRAY_H__INCLUDED_)
#define ___ITEMS_ARRAY_ARRAY_H__INCLUDED_
class >Items;
typedef struct _Items_ArrayTag
{
>Items* m_Array;
int m_Size;
} _Items_Array;
#endif /* !defined(___ITEMS_ARRAY_ARRAY_H__INCLUDED_)*/
There are two problems with the file:-
1. The type 'Items' is prefixed with a '>' character.
2. The class name should not be prefixed with a '>' character.
3. The filename should not be prefixed with a '_' character.
> '>' symbol in front of type not being removed by WSDL2Ws from type or class
> defintion and the header filename as an unnecessary '_' prefix character.
> -----------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: AXISCPP-862
> URL: http://issues.apache.org/jira/browse/AXISCPP-862
> Project: Axis-C++
> Type: Bug
> Components: WSDL processing - Doc
> Environment: n/a
> Reporter: Fred Preston
>
> The created client stub for the following WSDL is incorrect
> <?xml version="1.0" encoding="UTF-8"?>
> <definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:tns="http://webservices.com/CommerceService"
> targetNamespace="http://webservices.com/CommerceService">
> <types>
> <xs:schema targetNamespace="http://webservices.com/CommerceService"
>
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
> xmlns:tns="http://webservices.com/CommerceService"
> elementFormDefault="qualified">
> <xs:element name="ItemSearch">
> <xs:complexType>
> <xs:sequence>
> <xs:element name="SubscriptionId" type="xs:string" minOccurs="0"/>
> <xs:element name="AssociateTag" type="xs:string" minOccurs="0"/>
> <xs:element name="XMLEscaping" type="xs:string" minOccurs="0"/>
> <xs:element name="Validate" type="xs:string" minOccurs="0"/>
> <xs:element name="Shared" type="tns:ItemSearchRequest"
> minOccurs="0"/>
> <xs:element name="Request" type="tns:ItemSearchRequest"
> minOccurs="0" maxOccurs="unbounded"/>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
>
> <xs:complexType name="ItemSearchRequest">
> <xs:sequence>
> <xs:element name="Keywords" type="xs:string" minOccurs="0"/>
> <xs:element name="SearchIndex" type="xs:string" minOccurs="0"/>
> </xs:sequence>
> </xs:complexType>
>
> <xs:element name="ItemSearchResponse">
> <xs:complexType>
> <xs:sequence>
> <xs:element ref="tns:OperationRequest" minOccurs="0"/>
> <xs:element ref="tns:Items" minOccurs="0" maxOccurs="unbounded"/>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
>
> <xs:element name="OperationRequest">
> <xs:complexType>
> <xs:sequence>
> <xs:element ref="tns:HTTPHeaders" minOccurs="0"/>
> <xs:element name="RequestId" type="xs:string" minOccurs="0"/>
> <xs:element ref="tns:Arguments" minOccurs="0"/>
> <xs:element ref="tns:Errors" minOccurs="0"/>
> <xs:element name="RequestProcessingTime" type="xs:float"
> minOccurs="0" maxOccurs="1"/>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
>
> <xs:element name="Request">
> <xs:complexType>
> <xs:sequence>
> <xs:element name="IsValid" type="xs:string" minOccurs="0"/>
> <xs:element name="ItemSearchRequest" type="tns:ItemSearchRequest"
> minOccurs="0"/>
> <xs:element ref="tns:Errors" minOccurs="0"/>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
>
> <xs:element name="Arguments">
> <xs:complexType>
> <xs:sequence>
> <xs:element name="Argument" maxOccurs="unbounded">
> <xs:complexType>
> <xs:attribute name="Name" type="xs:string" use="required"/>
> <xs:attribute name="Value" type="xs:string" use="required"/>
> </xs:complexType>
> </xs:element>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
>
> <xs:element name="HTTPHeaders">
> <xs:complexType>
> <xs:sequence>
> <xs:element name="Header" minOccurs="0" maxOccurs="unbounded">
> <xs:complexType>
> <xs:attribute name="Name" type="xs:string" use="required"/>
> <xs:attribute name="Value" type="xs:string" use="required"/>
> </xs:complexType>
> </xs:element>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
>
> <xs:element name="Items">
> <xs:complexType>
> <xs:sequence>
> <xs:element ref="tns:Request" minOccurs="0"/>
> <xs:element ref="tns:CorrectedQuery" minOccurs="0"/>
> <xs:element name="TotalResults" type="xs:nonNegativeInteger"
> minOccurs="0"/>
> <xs:element name="TotalPages" type="xs:nonNegativeInteger"
> minOccurs="0"/>
> <xs:element ref="tns:Item" minOccurs="0" maxOccurs="unbounded"/>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
>
> <xs:element name="CorrectedQuery">
> <xs:complexType>
> <xs:sequence>
> <xs:element name="Keywords" type="xs:string" minOccurs="0"/>
> <xs:element name="Message" type="xs:string" minOccurs="0"/>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
>
> <xs:element name="Item">
> <xs:complexType>
> <xs:sequence>
> <xs:element name="ASIN" type="xs:string"/>
> <xs:element ref="tns:Errors" minOccurs="0"/>
> <xs:element name="DetailPageURL" type="xs:string" minOccurs="0"/>
> <xs:element ref="tns:ItemAttributes" minOccurs="0"/>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
>
> <xs:element name="ItemAttributes">
> <xs:complexType>
> <xs:sequence>
> <xs:element name="Author" type="xs:string" minOccurs="0"
> maxOccurs="unbounded"/>
> <xs:element name="ProductGroup" type="xs:string" minOccurs="0"/>
> <xs:element name="Title" type="xs:string" minOccurs="0"/>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
> </xs:schema>
> </types>
>
> <message name="ItemSearchRequestMsg">
> <part name="body" element="tns:ItemSearch"/>
> </message>
>
> <message name="ItemSearchResponseMsg">
> <part name="body" element="tns:ItemSearchResponse"/>
> </message>
>
> <portType name="CommerceServicePortType">
> <operation name="ItemSearch">
> <input message="tns:ItemSearchRequestMsg"/>
> <output message="tns:ItemSearchResponseMsg"/>
> </operation>
> </portType>
>
> <binding name="CommerceServiceBinding" type="tns:CommerceServicePortType">
> <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
> <operation name="ItemSearch">
> <soap:operation soapAction="http://soap.com"/>
> <input>
> <soap:body use="literal"/>
> </input>
> <output>
> <soap:body use="literal"/>
> </output>
> </operation>
> </binding>
>
> <service name="CommerceService">
> <port name="CommerceServicePort" binding="tns:CommerceServiceBinding">
> <soap:address
> location="http://soap.com/onca/soap?Service=CommerceService"/>
> </port>
> </service>
> </definitions>
> Produces the following header files:-
> --------------------------------------------------
> _Items_Array.hpp
> ==============
> /*
> * Copyright 2003-2004 The Apache Software Foundation.
> */
> #if !defined(___ITEMS_ARRAY_ARRAY_H__INCLUDED_)
> #define ___ITEMS_ARRAY_ARRAY_H__INCLUDED_
> class >Items;
> typedef struct _Items_ArrayTag
> {
> >Items* m_Array;
> int m_Size;
> } _Items_Array;
> #endif /* !defined(___ITEMS_ARRAY_ARRAY_H__INCLUDED_)*/
> CommerceServicePortType.hpp
> =========================
> STORAGE_CLASS_INFO void ItemSearch(xsd__string Value0, xsd__string Value1,
> xsd__string Value2, xsd__string Value3, ItemSearchRequest* Value4,
> ItemSearchRequest_Array Value5, AXIS_OUT_PARAM >OperationRequest* *OutValue0,
> AXIS_OUT_PARAM _Items_Array *OutValue1);
> There are four problems with the file:-
> 1. The type 'Items' is prefixed with a '>' character.
> 2. The class name should not be prefixed with a '>' character (see
> _Items_Array.hpp).
> 3. The filename should not be prefixed with a '_' character.
> 4. Some of the output parameters are prefixed with a '>' character (see
> CommerceServicePortType.hpp).
--
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