Own Types in Pega service generated WSDL
Building a Pega service. Tried from scratch (classes, properties, parse, stream) as well as from XSD. After creating the service package and testing the service successfully, the generated WSDL embeds complex types instead of naming the types, example:
Generated WSDL excerpt:
<complexType name="ServiceRequest">
<sequence>
<element name="Application">
<complexType>
<sequence>
<element name="PegaID" type="string"/>
<element name="PegaApplication" type="string"/>
</sequence>
</complexType>
</element>
</sequence>
</complexType>
Desired WSDL excerpt:
<complexType name="ApplicationInformation">
<sequence>
<element name="PegaID" type="string"/>
<element name="PegaApplication" type="string"/>
</sequence>
</complexType>
<complexType name="ServiceRequest">
<sequence>
<element name="Application" type="tns:ApplicationInformation"/>
</sequence>
</complexType>
The desired WSDL allows to re-use complex types. But Pega's generated WSDL just repeats the definition, if the complex type is used in another place. The problem is then the Service client, that cannot reuse the complex types.
So, the question is how to achieve the desired WSDL.