1<?xml version="1.0" encoding="UTF-8"?>
2<definitions
3	xmlns="http://schemas.xmlsoap.org/wsdl/"
4	xmlns:tns="http://soapinterop.org/wsdl"
5	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
6	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
7	xmlns:ns2="http://soapinterop.org/types"
8	xmlns:ns3="http://soapinterop.org/types/part"
9	xmlns:ns4="http://soapinterop.org/types/requestresponse"
10	targetNamespace="http://soapinterop.org/wsdl">
11
12	<types>
13		<schema elementFormDefault="qualified"
14			xmlns="http://www.w3.org/2001/XMLSchema"
15			xmlns:tns="http://soapinterop.org/types"
16			targetNamespace="http://soapinterop.org/types">
17
18			<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
19
20			<complexType name="SOAPStruct">
21				<sequence>
22					<element name="varString" type="xsd:string"/>
23					<element name="varInt" type="xsd:int"/>
24					<element name="varFloat" type="xsd:float"/>
25				</sequence>
26			</complexType>
27
28			<complexType name="SOAPStructFault">
29				<sequence>
30					<element name="soapStruct" type="tns:SOAPStruct"/>
31				</sequence>
32			</complexType>
33
34			<complexType name="BaseStruct">
35				<sequence>
36					<element name="structMessage" type="tns:SOAPStruct"/>
37					<element name="shortMessage" type="xsd:short"/>
38				</sequence>
39			</complexType>
40
41			<complexType name="ExtendedStruct">
42				<complexContent>
43					<extension base="tns:BaseStruct">
44						<sequence>
45							<element name="stringMessage" type="xsd:string"/>
46							<element name="intMessage" type="xsd:int"/>
47							<element name="anotherIntMessage" type="xsd:int"/>
48						</sequence>
49					</extension>
50				</complexContent>
51			</complexType>
52
53			<complexType name="MoreExtendedStruct">
54				<complexContent>
55					<extension base="tns:ExtendedStruct">
56						<sequence>
57							<element name="booleanMessage" type="xsd:boolean"/>
58						</sequence>
59					</extension>
60				</complexContent>
61			</complexType>
62
63		</schema>
64
65		<schema elementFormDefault="qualified"
66			xmlns="http://www.w3.org/2001/XMLSchema"
67			xmlns:tns="http://soapinterop.org/types/part"
68			targetNamespace="http://soapinterop.org/types/part">
69
70			<element name="SOAPStructFaultPart" type="ns2:SOAPStructFault"/>
71			<element name="BaseStructPart" type="ns2:BaseStruct"/>
72			<element name="ExtendedStructPart" type="ns2:ExtendedStruct"/>
73			<element name="MoreExtendedStructPart" type="ns2:MoreExtendedStruct"/>
74
75		</schema>
76
77		<schema elementFormDefault="qualified"
78			xmlns="http://www.w3.org/2001/XMLSchema"
79			xmlns:tns="http://soapinterop.org/types/requestresponse"
80			targetNamespace="http://soapinterop.org/types/requestresponse">
81
82			<element name="echoSOAPStructFaultRequest" type="ns2:SOAPStruct"/>
83			<element name="echoSOAPStructFaultResponse">
84				<complexType/>
85			</element>
86
87			<element name="echoBaseStructFaultRequest" type="ns2:BaseStruct"/>
88			<element name="echoBaseStructFaultResponse">
89				<complexType/>
90			</element>
91
92			<element name="echoExtendedStructFaultRequest" type="ns2:ExtendedStruct"/>
93			<element name="echoExtendedStructFaultResponse">
94				<complexType/>
95			</element>
96
97			<element name="echoMultipleFaults1Request">
98				<complexType>
99					<sequence>
100						<element name="whichFault" type="xsd:int"/>
101						<element name="param1" type="ns2:SOAPStruct"/>
102						<element name="param2" type="ns2:BaseStruct"/>
103					</sequence>
104				</complexType>
105			</element>
106			<element name="echoMultipleFaults1Response">
107				<complexType/>
108			</element>
109
110			<element name="echoMultipleFaults2Request">
111				<complexType>
112					<sequence>
113						<element name="whichFault" type="xsd:int"/>
114						<element name="param1" type="ns2:BaseStruct"/>
115						<element name="param2" type="ns2:ExtendedStruct"/>
116						<element name="param3" type="ns2:MoreExtendedStruct"/>
117					</sequence>
118				</complexType>
119			</element>
120			<element name="echoMultipleFaults2Response">
121				<complexType/>
122			</element>
123
124		</schema>
125	</types>
126
127	<message name="echoSOAPStructFaultRequest">
128		<part name="param" element="ns4:echoSOAPStructFaultRequest"/>
129	</message>
130	<message name="echoSOAPStructFaultResponse">
131		<part name="param" element="ns4:echoSOAPStructFaultResponse"/>
132	</message>
133
134	<message name="echoBaseStructFaultRequest">
135		<part name="param" element="ns4:echoBaseStructFaultRequest"/>
136	</message>
137	<message name="echoBaseStructFaultResponse">
138		<part name="param" element="ns4:echoBaseStructFaultResponse"/>
139	</message>
140
141	<message name="echoExtendedStructFaultRequest">
142		<part name="param" element="ns4:echoExtendedStructFaultRequest"/>
143	</message>
144	<message name="echoExtendedStructFaultResponse">
145		<part name="param" element="ns4:echoExtendedStructFaultResponse"/>
146	</message>
147
148	<message name="echoMultipleFaults1Request">
149		<part name="param" element="ns4:echoMultipleFaults1Request"/>
150	</message>
151	<message name="echoMultipleFaults1Response">
152		<part name="param" element="ns4:echoMultipleFaults1Response"/>
153	</message>
154
155	<message name="echoMultipleFaults2Request">
156		<part name="param" element="ns4:echoMultipleFaults2Request"/>
157	</message>
158	<message name="echoMultipleFaults2Response">
159		<part name="param" element="ns4:echoMultipleFaults2Response"/>
160	</message>
161
162	<!-- Fault messages -->
163	<message name="SOAPStructFault">
164		<part name="part3" element="ns3:SOAPStructFaultPart"/>
165	</message>
166	<message name="BaseStructFault">
167		<part name="part1" element="ns3:BaseStructPart"/>
168	</message>
169	<message name="ExtendedStructFault">
170		<part name="part2" element="ns3:ExtendedStructPart"/>
171	</message>
172	<message name="MoreExtendedStructFault">
173		<part name="part5" element="ns3:MoreExtendedStructPart"/>
174	</message>
175
176	<portType name="ComplexDocLitPortType">
177		<!--
178			Throws a fault with an embedded SOAPStruct
179		-->
180		<operation name="echoSOAPStructFault" parameterOrder="">
181			<input message="tns:echoSOAPStructFaultRequest"/>
182			<output message="tns:echoSOAPStructFaultResponse"/>
183			<fault name="ComplexFault" message="tns:SOAPStructFault"/>
184		</operation>
185
186		<!--
187			Throws a fault with a base complex struct
188		-->
189		<operation name="echoBaseStructFault" parameterOrder="">
190			<input message="tns:echoBaseStructFaultRequest"/>
191			<output message="tns:echoBaseStructFaultResponse"/>
192			<fault name="ComplexFault" message="tns:BaseStructFault"/>
193		</operation>
194
195		<!--
196			Throws a fault with an en extended complex type
197		-->
198		<operation name="echoExtendedStructFault" parameterOrder="">
199			<input message="tns:echoExtendedStructFaultRequest"/>
200			<output message="tns:echoExtendedStructFaultResponse"/>
201			<fault name="ComplexFault" message="tns:ExtendedStructFault"/>
202		</operation>
203
204		<!--
205			Throws a fault with embedded complex type, fault with an
206			extended complex type and fault with an array of a base
207			complex type
208		-->
209		<operation name="echoMultipleFaults1" parameterOrder="param">
210			<input message="tns:echoMultipleFaults1Request"/>
211			<output message="tns:echoMultipleFaults1Response"/>
212			<fault name="ComplexFault1" message="tns:SOAPStructFault"/>
213			<fault name="ComplexFault2" message="tns:BaseStructFault"/>
214		</operation>
215
216		<!--
217			Throws a fault with an array of base complex type and
218			a fault with doubly extended complex type
219		-->
220		<operation name="echoMultipleFaults2" parameterOrder="param">
221			<input message="tns:echoMultipleFaults2Request"/>
222			<output message="tns:echoMultipleFaults2Response"/>
223			<fault name="ComplexFault1" message="tns:BaseStructFault"/>
224			<fault name="ComplexFault2" message="tns:ExtendedStructFault"/>
225			<fault name="ComplexFault3" message="tns:MoreExtendedStructFault"/>
226		</operation>
227	</portType>
228
229	<binding name="ComplexDocLitBinding" type="tns:ComplexDocLitPortType">
230		<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
231		<operation name="echoSOAPStructFault">
232			<input>
233				<soap:body use="literal"/>
234			</input>
235			<output>
236				<soap:body use="literal"/>
237			</output>
238			<fault name="ComplexFault">
239				<soap:fault
240					name="ComplexFault"
241					use="literal"/>
242			</fault>
243			<soap:operation soapAction=""/>
244		</operation>
245
246		<operation name="echoBaseStructFault">
247			<input>
248				<soap:body use="literal"/>
249			</input>
250			<output>
251				<soap:body use="literal"/>
252			</output>
253			<fault name="ComplexFault">
254				<soap:fault
255					name="ComplexFault"
256					use="literal"/>
257			</fault>
258			<soap:operation soapAction=""/>
259		</operation>
260
261		<operation name="echoExtendedStructFault">
262			<input>
263				<soap:body use="literal"/>
264			</input>
265			<output>
266				<soap:body use="literal"/>
267			</output>
268			<fault name="ComplexFault">
269				<soap:fault
270					name="ComplexFault"
271					use="literal"/>
272			</fault>
273			<soap:operation soapAction=""/>
274		</operation>
275
276		<operation name="echoMultipleFaults1">
277			<input>
278				<soap:body use="literal"/>
279			</input>
280			<output>
281				<soap:body use="literal"/>
282			</output>
283			<fault name="ComplexFault1">
284				<soap:fault
285					name="ComplexFault1"
286					use="literal"/>
287			</fault>
288			<fault name="ComplexFault2">
289				<soap:fault
290					name="ComplexFault2"
291					use="literal"/>
292			</fault>
293			<soap:operation soapAction=""/>
294		</operation>
295
296		<operation name="echoMultipleFaults2">
297			<input>
298				<soap:body use="literal"/>
299			</input>
300			<output>
301				<soap:body use="literal"/>
302			</output>
303			<fault name="ComplexFault1">
304				<soap:fault
305					name="ComplexFault1"
306					use="literal"/>
307			</fault>
308			<fault name="ComplexFault2">
309				<soap:fault
310					name="ComplexFault2"
311					use="literal"/>
312			</fault>
313			<fault name="ComplexFault3">
314				<soap:fault
315					name="ComplexFault3"
316					use="literal"/>
317			</fault>
318			<soap:operation soapAction=""/>
319		</operation>
320	</binding>
321
322	<service name="ComplexDocLitService">
323		<port name="ComplexDocLitPort" binding="tns:ComplexDocLitBinding">
324			<soap:address
325				location="test://"/>
326		</port>
327	</service>
328</definitions>
329
330