cancel
Showing results for 
Search instead for 
Did you mean: 

WSDL Import to generate a proxy

Former Member
0 Kudos

<b>Hi All,</b>

I<b> am trying to import a wsdl file through SE80 to generate a client proxy. The wsdl file is as follows</b>:

<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsd1="http://www.opentravel.org/OTA/2002/11" xmlns:tns="https://webservices.sabre.com/websvc" xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext" targetNamespace="https://webservices.sabre.com/websvc">
	<types>
		<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
			<xsd:import namespace="http://www.opentravel.org/OTA/2002/11" schemaLocation="SessionValidateRQRS.xsd"/>
			<xsd:import namespace="http://www.ebxml.org/namespaces/messageHeader" schemaLocation="msg-header-2_0.xsd"/>
			<xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
			<xsd:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd"/>
			<xsd:import namespace="http://schemas.xmlsoap.org/soap/envelope/" schemaLocation="envelope.xsd"/>
			<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
			<xsd:import namespace="http://schemas.xmlsoap.org/ws/2002/12/secext" schemaLocation="wsse.xsd"/>
		</xsd:schema>
	</types>
	<message name="GetSessionValidateInput">
		<part name="header" element="eb:MessageHeader"/>
		<part name="header2" element="wsse:Security"/>
		<part name="body" element="xsd1:SessionValidateRQ"/>
	</message>
	<portType name="SessionValidatePortType">
		<operation name="SessionValidateRQ">
			<input message="tns:GetSessionValidateInput"/>
		</operation>
	</portType>
	<binding name="SessionValidateSoapBinding" type="tns:SessionValidatePortType">
		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
		<operation name="SessionValidateRQ">
			<soap:operation soapAction="OTA"/>
			<input>
				<soap:header message="tns:GetSessionValidateInput" part="header" use="literal"/>
				<soap:header message="tns:GetSessionValidateInput" part="header2" use="literal"/>
				<soap:body parts="body" use="literal"/>
			</input>			
		</operation>
	</binding>
	<service name="SessionValidateRQService">
		<port name="SessionValidatePortType" binding="tns:SessionValidateSoapBinding">
			<soap:address location="https://webservices.sabre.com/websvc"/>
		</port>
	</service>
</definitions>

<b>When I tried to import this, there was an error mentioning "Proxy generation terminated: Message must have exactly one part".

Now when I removed the header and header2 from input message like below, I was able to generate the proxy. </b>


<?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:xsd1="http://www.opentravel.org/OTA/2002/11" xmlns:tns="https://webservices.sabre.com/websvc" xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext" targetNamespace="https://webservices.sabre.com/websvc">
	<types>
		<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
			<xsd:import namespace="http://www.opentravel.org/OTA/2002/11" schemaLocation="SessionValidateRQRS.xsd"/>
			<xsd:import namespace="http://www.ebxml.org/namespaces/messageHeader" schemaLocation="msg-header-2_0.xsd"/>
			<xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
			<xsd:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd"/>
			<xsd:import namespace="http://schemas.xmlsoap.org/soap/envelope/" schemaLocation="envelope.xsd"/>
			<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
			<xsd:import namespace="http://schemas.xmlsoap.org/ws/2002/12/secext" schemaLocation="wsse.xsd"/>
		</xsd:schema>
	</types>
	<message name="GetSessionValidateInput">
		<part name="body" element="xsd1:SessionValidateRQ"/>
	</message>
	<portType name="SessionValidatePortType">
		<operation name="SessionValidateRQ">
			<input message="tns:GetSessionValidateInput"/>
		</operation>
	</portType>
	<binding name="SessionValidateSoapBinding" type="tns:SessionValidatePortType">
		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
		<operation name="SessionValidateRQ">
			<soap:operation soapAction="OTA"/>
			<input>
				<soap:body parts="body" use="literal"/>
			</input>
		</operation>
	</binding>
	<service name="SessionValidateRQService">
		<port name="SessionValidatePortType" binding="tns:SessionValidateSoapBinding">
			<soap:address location="https://webservices.sabre.com/websvc"/>
		</port>
	</service>
</definitions>

<b>I would like to know, if it is possible to generate the proxy without removing these nodes since these nodes are very important for my scenario.

Thank you,

Geetha</b>

View Entire Topic
Former Member
0 Kudos

Hi Geeta,

What you can do is that as you have an .WSLDL file saved in a destination. Now goto Integration Repository of XI then under Interface Objects you have "External Definitions" import the .WSDL as an external destination then now you can find the your requirments for message interfaces are imported. Then create an Outbound or Inbound Message Interface as per your requirements. Activate it in XI

If all the connections are fine with XI system and your R/3 system, your Proxy Structure is created.

Hope this Helps you...

Regards,

KishoreJ.