kdwsdl2cpp generates an invalid class name
when wsdl contains a namespace with a prefix.
For example, the code
class AGREGAT.GETAGGREGATES__GetAggregates
{
public:
void setLaunchId( qint64 _launchId );
qint64 launchId() const;
KDSoapValue serialize( const QString& valueName ) const;
void deserialize( const KDSoapValue& mainValue );
AGREGAT.GETAGGREGATES__GetAggregates();
~AGREGAT.GETAGGREGATES__GetAggregates();
public:
AGREGAT.GETAGGREGATES__GetAggregates( const AGREGAT.GETAGGREGATES__GetAggregates& );
AGREGAT.GETAGGREGATES__GetAggregates &operator=( const AGREGAT.GETAGGREGATES__GetAggregates& );
private:
class PrivateDPtr;
QSharedDataPointer<PrivateDPtr> d_ptr;
};
} // namespace end
is generated from
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:PandaRt="http://nicetu.spb.ru/panda/ws/rt/methods"
xmlns:agregat.getAggregates="http://nicetu.spb.ru/panda/types/vti/agregat/getAggregates/methods"
name="PandaRtService" targetNamespace="http://nicetu.spb.ru/panda/ws/rt">
<wsdl:types>
<xsd:schema targetNamespace="http://nicetu.spb.ru/panda/ws/rt" elementFormDefault="qualified">
<xsd:import namespace="http://nicetu.spb.ru/panda/types/vti/agregat/getAggregates/methods" schemaLocation="../xsd/vti/agregat.getAggregates.methods.xsd" />
<xsd:import namespace="http://nicetu.spb.ru/panda/ws/rt/methods" schemaLocation="../xsd/PandaRt.methods.xsd" />
</xsd:schema>
</wsdl:types>
<wsdl:message name="getAggregatesRequest">
<wsdl:part name="parameters" element="agregat.getAggregates:getAggregates" />
</wsdl:message>
<wsdl:message name="getAggregatesResponse">
<wsdl:part name="parameters" element="agregat.getAggregates:getAggregatesResponse" />
</wsdl:message>
<wsdl:portType name="PandaRt">
<wsdl:documentation>Сервис для ПК РМВ</wsdl:documentation>
<wsdl:operation name="getAggregates">
<wsdl:documentation>Возвращает состав агрегатов изделия на пуске</wsdl:documentation>
<wsdl:input message="tns:getAggregatesRequest" />
<wsdl:output message="tns:getAggregatesResponse" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="PandaRtPortBinding" type="tns:PandaRt">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="getAggregates">
<soap:operation soapAction="http://nicetu.spb.ru/panda/ws/rt/getAggregates" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="PandaRtService">
<wsdl:documentation>Сервис для ПК РМВ</wsdl:documentation>
<wsdl:port name="PandaRtPort" binding="tns:PandaRtPortBinding">
<soap:address location="http://as.panda.nicetu.spb.ru:9080/panda-server/ws/contract/PandaRt" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
The problem is that according to Namespaces in XML and XML xmlns : prefix may contain "." and other chars.
kdwsdl2cpp generates an invalid class name
when wsdl contains a namespace with a prefix.
For example, the code
is generated from
The problem is that according to Namespaces in XML and XML xmlns : prefix may contain "." and other chars.