Welcome to the "trac"-ing site of soap4r!
[soap4r] [httpclient] [openpgp4u] [pkcs1] [logger] [csv] [vtr]

root/trunk/test/wsdl/choice/choice.wsdl

Revision 1897, 5.3 kB (checked in by nahi, 1 year ago)
  • choice handling bug fixed according to a patch from KR, Vesa Varimo. If there was choice element in complex type, soap4r didn't process all elements if the first element was an empty array. closes #382.
Line 
1 <?xml version="1.0" encoding="utf-8"?>
2 <definitions
3     name="choice"
4     targetNamespace="urn:choice"
5     xmlns:tns="urn:choice"
6     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
7     xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
8     xmlns="http://schemas.xmlsoap.org/wsdl/">
9   <types>
10     <xsd:schema elementFormDefault="unqualified" targetNamespace="urn:choice">
11       <xsd:complexType name="andor">
12         <xsd:sequence>
13           <xsd:element name="A" type="xsd:string"/>
14           <xsd:choice>
15             <xsd:element name="B1" type="xsd:string"/>
16             <xsd:sequence>
17               <xsd:element name="B2a" type="xsd:string"/>
18               <xsd:element name="B2b" type="xsd:string"/>
19             </xsd:sequence>
20             <xsd:choice>
21               <xsd:element name="B3a" type="xsd:string"/>
22               <xsd:element name="B3b" type="xsd:string"/>
23             </xsd:choice>
24           </xsd:choice>
25           <xsd:sequence>
26             <xsd:element name="C1" type="xsd:string"/>
27             <xsd:element name="C2" type="xsd:string"/>
28           </xsd:sequence>
29         </xsd:sequence>
30       </xsd:complexType>
31
32       <xsd:complexType name="emptyArrayAtFirst">
33         <xsd:sequence>
34           <xsd:choice>
35             <xsd:element name="A" maxOccurs="unbounded" type="xsd:string"/>
36             <xsd:element name="B1" type="xsd:string"/>
37             <xsd:element name="B2" type="xsd:string"/>
38           </xsd:choice>
39         </xsd:sequence>
40       </xsd:complexType>
41
42       <xsd:element name="terminalID" minOccurs="1" maxOccurs="1">
43         <xsd:complexType>
44           <xsd:choice>
45             <xsd:element name="imei" type="xsd:string"/>
46             <xsd:element name="devId" type="xsd:string"/>
47           </xsd:choice>
48         </xsd:complexType>
49       </xsd:element>
50
51       <xsd:element name="echoele">
52         <xsd:complexType>
53           <xsd:sequence>
54             <xsd:element minOccurs="0" maxOccurs="1" ref="tns:terminalID" />
55           </xsd:sequence>
56         </xsd:complexType>
57       </xsd:element>
58
59       <xsd:element name="echo_response">
60         <xsd:complexType>
61           <xsd:sequence>
62             <xsd:element minOccurs="0" maxOccurs="1" ref="tns:terminalID" />
63           </xsd:sequence>
64         </xsd:complexType>
65       </xsd:element>
66
67       <xsd:element name="echoele_complex">
68         <xsd:complexType>
69           <xsd:sequence>
70             <xsd:element name="data" type="tns:andor"/>
71           </xsd:sequence>
72         </xsd:complexType>
73       </xsd:element>
74
75       <xsd:element name="echo_complex_response">
76         <xsd:complexType>
77           <xsd:sequence>
78             <xsd:element name="data" type="tns:andor"/>
79           </xsd:sequence>
80         </xsd:complexType>
81       </xsd:element>
82
83       <xsd:element name="echoele_complex_emptyArrayAtFirst">
84         <xsd:complexType>
85           <xsd:sequence>
86             <xsd:element name="data" type="tns:emptyArrayAtFirst"/>
87           </xsd:sequence>
88         </xsd:complexType>
89       </xsd:element>
90     </xsd:schema>
91   </types>
92
93   <message name="echo_in">
94     <part name="parameters" element="tns:echoele" />
95   </message>
96   <message name="echo_out">
97     <part name="parameters" element="tns:echo_response" />
98   </message>
99   <message name="echo_complex_in">
100     <part name="parameters" element="tns:echoele_complex" />
101   </message>
102   <message name="echo_complex_out">
103     <part name="parameters" element="tns:echo_complex_response" />
104   </message>
105   <message name="echo_complex_emptyArrayAtFirst_in">
106     <part name="parameters" element="tns:echoele_complex_emptyArrayAtFirst" />
107   </message>
108   <message name="echo_complex_emptyArrayAtFirst_out">
109     <part name="parameters" element="tns:echoele_complex_emptyArrayAtFirst" />
110   </message>
111
112   <portType name="choice_porttype">
113     <operation name="echo">
114       <input message="tns:echo_in" />
115       <output message="tns:echo_out" />
116     </operation>
117
118     <operation name="echo_complex">
119       <input message="tns:echo_complex_in" />
120       <output message="tns:echo_complex_out" />
121     </operation>
122
123     <operation name="echo_complex_emptyArrayAtFirst">
124       <input message="tns:echo_complex_emptyArrayAtFirst_in" />
125       <output message="tns:echo_complex_emptyArrayAtFirst_out" />
126     </operation>
127   </portType>
128
129   <binding name="choice_binding" type="tns:choice_porttype">
130     <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
131     <operation name="echo">
132       <soap:operation soapAction="urn:choice:echo" style="document" />
133       <input>
134         <soap:body use="literal" />
135       </input>
136       <output>
137         <soap:body use="literal" />
138       </output>
139     </operation>
140
141     <operation name="echo_complex">
142       <soap:operation soapAction="urn:choice:echo_complex" style="document" />
143       <input>
144         <soap:body use="literal" />
145       </input>
146       <output>
147         <soap:body use="literal" />
148       </output>
149     </operation>
150
151     <operation name="echo_complex_emptyArrayAtFirst">
152       <soap:operation soapAction="urn:choice:echo_complex_emptyArrayAtFirst" style="document" />
153       <input>
154         <soap:body use="literal" />
155       </input>
156       <output>
157         <soap:body use="literal" />
158       </output>
159     </operation>
160   </binding>
161
162   <service name="choice_service">
163     <port name="choice_service_port" binding="tns:choice_binding">
164       <soap:address location="http://localhost:17171/" />
165     </port>
166   </service>
167 </definitions>
Note: See TracBrowser for help on using the browser.