Support Article
Generate WSDL declaring complex types globally
SA-10548
Summary
How to get a global type rather than a local type in WSDL generated by PRPC?
We are using a SOAOP service in PRPC.
The out-of-the-box generated WSDL via PRPC declares many complex types locally.
We're recreating an existing web service on the PRPC platform, we need types to be declared globally rather than locally for legacy reasons.
Is there any way to force PRPC to generate the WSDL with the desired behaviour?
Resolution
If you wish to declare type globally rather than locally, then your Parse-XML rule used by your SOAP service must use a mapping of "Apply Rule" rather than "Standard" for each element you want to be declared globally.
The "Apply Rule" means your Parse XML rule will be referencing another Parse-XML rule.
For instance, in the screen shot below, I'm referencing a "movie" element with a "Apply Rule" to another Parse-XML rule.
Here is the resulting WSDL file being generated, defining 2 types globally (moviestype and listtype):
<schema elementFormDefault="unqualified" targetNamespace="http://xxxx" xmlns="http://yyyy">
<complexType name="listtype">
<sequence><element from="qualified" maxOccurs="unbounded" name="movie" type="nslt3:movietype"/>
</sequence></complexType>
<complexType name="movietype
sequence><element from="qualified" name="title" type="xsd:string"/>
<element from="qualified" maxOccurs="unbounded" name="genre" type="xsd:string"/>
</sequence>
</complexType>
<element name="list" type="nslt3:listtype"/>
</schema>
Published June 12, 2015 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.