soap4r 1.5.7 → 1.5.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/wsdl2ruby.rb +8 -2
- data/lib/soap/baseData.rb +93 -43
- data/lib/soap/element.rb +11 -8
- data/lib/soap/encodingstyle/handler.rb +15 -4
- data/lib/soap/encodingstyle/literalHandler.rb +18 -24
- data/lib/soap/encodingstyle/soapHandler.rb +34 -77
- data/lib/soap/generator.rb +74 -48
- data/lib/soap/header/handler.rb +1 -1
- data/lib/soap/header/mappinghandler.rb +47 -0
- data/lib/soap/mapping/encodedregistry.rb +19 -13
- data/lib/soap/mapping/factory.rb +19 -3
- data/lib/soap/mapping/literalregistry.rb +47 -35
- data/lib/soap/mapping/mapping.rb +92 -24
- data/lib/soap/mapping/registry.rb +34 -18
- data/lib/soap/mapping/schemadefinition.rb +8 -1
- data/lib/soap/mapping/typeMap.rb +18 -0
- data/lib/soap/mapping/wsdlencodedregistry.rb +8 -50
- data/lib/soap/mapping/wsdlliteralregistry.rb +45 -39
- data/lib/soap/nestedexception.rb +42 -0
- data/lib/soap/netHttpClient.rb +1 -0
- data/lib/soap/ns.rb +34 -0
- data/lib/soap/parser.rb +32 -29
- data/lib/soap/processor.rb +1 -1
- data/lib/soap/rpc/driver.rb +1 -0
- data/lib/soap/rpc/element.rb +18 -6
- data/lib/soap/rpc/httpserver.rb +38 -24
- data/lib/soap/rpc/proxy.rb +14 -11
- data/lib/soap/rpc/router.rb +4 -1
- data/lib/soap/soap.rb +7 -6
- data/lib/soap/wsdlDriver.rb +29 -8
- data/lib/tags +5690 -0
- data/lib/wsdl/definitions.rb +26 -40
- data/lib/wsdl/info.rb +11 -0
- data/lib/wsdl/parser.rb +2 -2
- data/lib/wsdl/soap/cgiStubCreator.rb +10 -5
- data/lib/wsdl/soap/classDefCreator.rb +140 -113
- data/lib/wsdl/soap/classDefCreatorSupport.rb +94 -12
- data/lib/wsdl/soap/classNameCreator.rb +54 -0
- data/lib/wsdl/soap/clientSkeltonCreator.rb +6 -5
- data/lib/wsdl/soap/complexType.rb +10 -1
- data/lib/wsdl/soap/definitions.rb +4 -0
- data/lib/wsdl/soap/driverCreator.rb +14 -6
- data/lib/wsdl/soap/element.rb +4 -0
- data/lib/wsdl/soap/encodedMappingRegistryCreator.rb +11 -55
- data/lib/wsdl/soap/literalMappingRegistryCreator.rb +28 -126
- data/lib/wsdl/soap/mappingRegistryCreator.rb +9 -3
- data/lib/wsdl/soap/mappingRegistryCreatorSupport.rb +209 -94
- data/lib/wsdl/soap/methodDefCreator.rb +12 -16
- data/lib/wsdl/soap/servantSkeltonCreator.rb +3 -2
- data/lib/wsdl/soap/servletStubCreator.rb +107 -0
- data/lib/wsdl/soap/standaloneServerStubCreator.rb +10 -5
- data/lib/wsdl/soap/wsdl2ruby.rb +28 -13
- data/lib/wsdl/wsdl.rb +2 -1
- data/lib/wsdl/xmlSchema/anyAttribute.rb +48 -0
- data/lib/wsdl/xmlSchema/attributeGroup.rb +86 -0
- data/lib/wsdl/xmlSchema/choice.rb +4 -1
- data/lib/wsdl/xmlSchema/complexContent.rb +1 -1
- data/lib/wsdl/xmlSchema/complexExtension.rb +9 -1
- data/lib/wsdl/xmlSchema/complexRestriction.rb +8 -0
- data/lib/wsdl/xmlSchema/complexType.rb +38 -5
- data/lib/wsdl/xmlSchema/data.rb +30 -7
- data/lib/wsdl/xmlSchema/element.rb +10 -2
- data/lib/wsdl/xmlSchema/fractiondigits.rb +37 -0
- data/lib/wsdl/xmlSchema/group.rb +118 -0
- data/lib/wsdl/xmlSchema/import.rb +11 -23
- data/lib/wsdl/xmlSchema/importHandler.rb +45 -0
- data/lib/wsdl/xmlSchema/include.rb +11 -17
- data/lib/wsdl/xmlSchema/length.rb +3 -1
- data/lib/wsdl/xmlSchema/maxexclusive.rb +37 -0
- data/lib/wsdl/xmlSchema/maxinclusive.rb +37 -0
- data/lib/wsdl/xmlSchema/maxlength.rb +3 -1
- data/lib/wsdl/xmlSchema/minexclusive.rb +37 -0
- data/lib/wsdl/xmlSchema/mininclusive.rb +37 -0
- data/lib/wsdl/xmlSchema/minlength.rb +3 -1
- data/lib/wsdl/xmlSchema/schema.rb +34 -0
- data/lib/wsdl/xmlSchema/sequence.rb +4 -1
- data/lib/wsdl/xmlSchema/simpleExtension.rb +8 -0
- data/lib/wsdl/xmlSchema/simpleRestriction.rb +49 -8
- data/lib/wsdl/xmlSchema/totaldigits.rb +37 -0
- data/lib/wsdl/xmlSchema/whitespace.rb +37 -0
- data/lib/wsdl/xmlSchema/xsd2ruby.rb +13 -4
- data/lib/xsd/charset.rb +8 -6
- data/lib/xsd/codegen/classdef.rb +5 -0
- data/lib/xsd/codegen/moduledef.rb +17 -0
- data/lib/xsd/datatypes.rb +165 -20
- data/lib/xsd/mapping.rb +13 -5
- data/lib/xsd/namedelements.rb +8 -0
- data/lib/xsd/ns.rb +50 -14
- data/lib/xsd/qname.rb +3 -2
- data/lib/xsd/xmlparser.rb +4 -3
- data/test/soap/asp.net/test_aspdotnet.rb +1 -1
- data/test/soap/auth/test_basic.rb +4 -3
- data/test/soap/auth/test_digest.rb +4 -3
- data/test/soap/calc/test_calc.rb +6 -4
- data/test/soap/calc/test_calc2.rb +6 -4
- data/test/soap/calc/test_calc_cgi.rb +6 -4
- data/test/soap/fault/test_customfault.rb +6 -4
- data/test/soap/fault/test_soaparray.rb +35 -0
- data/test/soap/filter/test_filter.rb +2 -2
- data/test/soap/header/test_authheader.rb +2 -2
- data/test/soap/header/test_authheader_cgi.rb +3 -3
- data/test/soap/header/test_simplehandler.rb +2 -2
- data/test/soap/helloworld/test_helloworld.rb +6 -4
- data/test/soap/ssl/test_ssl.rb +1 -1
- data/test/soap/struct/test_struct.rb +2 -2
- data/test/soap/swa/test_file.rb +6 -4
- data/test/soap/test_basetype.rb +4 -4
- data/test/soap/test_cookie.rb +2 -2
- data/test/soap/test_custom_ns.rb +50 -8
- data/test/soap/test_custommap.rb +6 -4
- data/test/soap/test_empty.rb +6 -4
- data/test/soap/test_envelopenamespace.rb +2 -2
- data/test/soap/test_extraattr.rb +6 -7
- data/test/soap/test_generator.rb +27 -0
- data/test/soap/test_mapping.rb +10 -0
- data/test/soap/test_nestedexception.rb +56 -0
- data/test/soap/test_nil.rb +6 -4
- data/test/soap/test_no_indent.rb +6 -4
- data/test/soap/test_response_as_xml.rb +2 -2
- data/test/soap/test_streamhandler.rb +6 -3
- data/test/soap/test_styleuse.rb +2 -2
- data/test/soap/wsdlDriver/test_calc.rb +2 -2
- data/test/soap/wsdlDriver/test_document.rb +2 -2
- data/test/soap/wsdlDriver/test_simpletype.rb +2 -2
- data/test/wsdl/abstract/test_abstract.rb +1 -1
- data/test/wsdl/anonymous/expectedClassDef.rb +128 -0
- data/test/wsdl/anonymous/expectedDriver.rb +59 -0
- data/test/wsdl/anonymous/expectedMappingRegistry.rb +176 -0
- data/test/wsdl/anonymous/lp.wsdl +147 -0
- data/test/wsdl/anonymous/test_anonymous.rb +130 -0
- data/test/wsdl/any/expectedDriver.rb +3 -2
- data/test/wsdl/any/expectedEcho.rb +22 -2
- data/test/wsdl/any/expectedMappingRegistry.rb +63 -0
- data/test/wsdl/any/expectedService.rb +3 -1
- data/test/wsdl/any/test_any.rb +2 -7
- data/test/wsdl/axisArray/axisArray.wsdl +31 -4
- data/test/wsdl/axisArray/test_axisarray.rb +58 -3
- data/test/wsdl/choice/choice.wsdl +39 -0
- data/test/wsdl/choice/test_choice.rb +134 -7
- data/test/wsdl/complexcontent/test_echo.rb +1 -1
- data/test/wsdl/datetime/test_datetime.rb +2 -2
- data/test/wsdl/document/array/double.wsdl +45 -6
- data/test/wsdl/document/array/test_array.rb +68 -1
- data/test/wsdl/document/document.wsdl +2 -0
- data/test/wsdl/document/test_nosoapaction.rb +1 -1
- data/test/wsdl/document/test_number.rb +1 -1
- data/test/wsdl/document/test_rpc.rb +78 -9
- data/test/wsdl/fault/test_fault.rb +1 -1
- data/test/wsdl/fault/test_multifault.rb +1 -1
- data/test/wsdl/group/expectedClassdef.rb +58 -0
- data/test/wsdl/group/expectedDriver.rb +51 -0
- data/test/wsdl/group/expectedMappingRegistry.rb +67 -0
- data/test/wsdl/group/group.wsdl +88 -0
- data/test/wsdl/group/test_rpc.rb +145 -0
- data/test/wsdl/list/test_list.rb +1 -1
- data/test/wsdl/map/test_map.rb +2 -2
- data/test/wsdl/marshal/person_org.rb +5 -0
- data/test/wsdl/multiplefault.wsdl +11 -4
- data/test/wsdl/oneway/test_oneway.rb +1 -1
- data/test/wsdl/overload/test_overload.rb +1 -1
- data/test/wsdl/qualified/test_qualified.rb +1 -1
- data/test/wsdl/qualified/test_unqualified.rb +1 -1
- data/test/wsdl/raa/RAAService.rb +62 -57
- data/test/wsdl/raa/expectedClassDef.rb +100 -0
- data/test/wsdl/raa/expectedDriver.rb +96 -0
- data/test/wsdl/raa/expectedMappingRegistry.rb +121 -0
- data/test/wsdl/raa/test_raa.rb +54 -19
- data/test/wsdl/ref/expectedDriver.rb +1 -1
- data/test/wsdl/ref/expectedProduct.rb +101 -16
- data/test/wsdl/ref/test_ref.rb +2 -1
- data/test/wsdl/rpc/test_rpc.rb +1 -2
- data/test/wsdl/rpc/test_rpc_lit.rb +13 -13
- data/test/wsdl/simplecontent/test_simplecontent.rb +5 -5
- data/test/wsdl/simpletype/rpc/expectedDriver.rb +3 -2
- data/test/wsdl/simpletype/rpc/expectedEchoVersion.rb +2 -0
- data/test/wsdl/simpletype/rpc/expectedMappingRegistry.rb +10 -17
- data/test/wsdl/simpletype/rpc/expectedService.rb +4 -2
- data/test/wsdl/simpletype/test_simpletype.rb +2 -2
- data/test/wsdl/soap/test_soapbodyparts.rb +2 -2
- data/test/wsdl/soap/wsdl2ruby/expectedClassdef.rb +2 -0
- data/test/wsdl/soap/wsdl2ruby/expectedDriver.rb +3 -2
- data/test/wsdl/soap/wsdl2ruby/expectedMappingRegistry.rb +5 -9
- data/test/wsdl/soap/wsdl2ruby/expectedService.cgi +4 -2
- data/test/wsdl/soap/wsdl2ruby/expectedService.rb +4 -2
- data/test/wsdl/soap/wsdl2ruby/section/expectedClassdef.rb +6 -0
- data/test/wsdl/soap/wsdl2ruby/soapenc/test_soapenc.rb +1 -1
- data/test/wsdl/soaptype/test_soaptype.rb +1 -1
- data/test/wsdl/test_multiplefault.rb +3 -1
- data/test/xsd/codegen/test_classdef.rb +30 -0
- data/test/xsd/test_ns.rb +21 -0
- data/test/xsd/test_xsd.rb +5 -4
- data/test/xsd/xsd2ruby/expected_mysample.rb +13 -2
- data/test/xsd/xsd2ruby/expected_mysample_mapping_registry.rb +5 -11
- data/test/xsd/xsd2ruby/section.xsd +8 -0
- metadata +40 -8
- data/test/wsdl/axisArray/itemList.rb +0 -14
- data/test/wsdl/raa/RAA.rb +0 -120
- data/test/wsdl/raa/RAAServant.rb +0 -107
- data/test/wsdl/raa/server.rb +0 -103
@@ -21,6 +21,7 @@
|
|
21
21
|
<xsd:sequence>
|
22
22
|
<xsd:element minOccurs="0" maxOccurs="1" name="struct1" type="tns:echo_struct" />
|
23
23
|
<xsd:element minOccurs="0" maxOccurs="1" name="struct-2" type="tns:echo_struct" />
|
24
|
+
<xsd:element minOccurs="0" maxOccurs="1" name="long" type="xsd:long" />
|
24
25
|
</xsd:sequence>
|
25
26
|
<xsd:attribute name="attr_string" type="xsd:string" />
|
26
27
|
<xsd:attribute name="attr-int" type="xsd:int" />
|
@@ -31,6 +32,7 @@
|
|
31
32
|
<xsd:sequence>
|
32
33
|
<xsd:element minOccurs="0" maxOccurs="1" name="struct1" type="tns:echo_struct" />
|
33
34
|
<xsd:element minOccurs="0" maxOccurs="1" name="struct-2" type="tns:echo_struct" />
|
35
|
+
<xsd:element minOccurs="0" maxOccurs="1" name="long" type="xsd:long" />
|
34
36
|
</xsd:sequence>
|
35
37
|
<xsd:attribute name="attr_string" type="xsd:string" />
|
36
38
|
<xsd:attribute name="attr-int" type="xsd:int" />
|
@@ -58,6 +58,7 @@ class TestRPC < Test::Unit::TestCase
|
|
58
58
|
e = Echoele.new
|
59
59
|
e.struct1 = Echo_struct.new(nil, nil)
|
60
60
|
e.struct_2 = Echo_struct.new(nil, nil)
|
61
|
+
e.long = nil
|
61
62
|
e
|
62
63
|
end
|
63
64
|
|
@@ -65,6 +66,7 @@ class TestRPC < Test::Unit::TestCase
|
|
65
66
|
e = Echoele.new
|
66
67
|
e.struct1 = Echo_struct.new("", nil)
|
67
68
|
e.struct_2 = Echo_struct.new("", nil)
|
69
|
+
e.long = 0
|
68
70
|
e
|
69
71
|
end
|
70
72
|
end
|
@@ -80,7 +82,7 @@ class TestRPC < Test::Unit::TestCase
|
|
80
82
|
end
|
81
83
|
|
82
84
|
def teardown
|
83
|
-
teardown_server
|
85
|
+
teardown_server if @server
|
84
86
|
File.unlink(pathname('echo.rb')) unless $DEBUG
|
85
87
|
File.unlink(pathname('echoMappingRegistry.rb')) unless $DEBUG
|
86
88
|
File.unlink(pathname('echoDriver.rb')) unless $DEBUG
|
@@ -123,27 +125,92 @@ class TestRPC < Test::Unit::TestCase
|
|
123
125
|
@client.endpoint_url = "http://localhost:#{Port}/"
|
124
126
|
@client.wiredump_dev = STDOUT if $DEBUG
|
125
127
|
@client.literal_mapping_registry = EchoMappingRegistry::LiteralRegistry
|
128
|
+
do_test_with_stub(@client)
|
129
|
+
end
|
130
|
+
|
131
|
+
def test_driver_stub
|
132
|
+
@client = ::WSDL::Document::Docrpc_porttype.new
|
133
|
+
@client.endpoint_url = "http://localhost:#{Port}/"
|
134
|
+
@client.wiredump_dev = STDOUT if $DEBUG
|
135
|
+
do_test_with_stub(@client)
|
136
|
+
end
|
137
|
+
|
138
|
+
def test_nil_attribute
|
139
|
+
@client = ::WSDL::Document::Docrpc_porttype.new
|
140
|
+
@client.endpoint_url = "http://localhost:#{Port}/"
|
141
|
+
@client.wiredump_dev = STDOUT if $DEBUG
|
142
|
+
struct1 = Echo_struct.new("mystring1", now1 = Time.now)
|
143
|
+
struct1.xmlattr_m_attr = nil
|
144
|
+
struct2 = Echo_struct.new("mystr<>ing2", now2 = Time.now)
|
145
|
+
struct2.xmlattr_m_attr = ''
|
146
|
+
echo = Echoele.new(struct1, struct2, 105759347)
|
147
|
+
echo.xmlattr_attr_string = ''
|
148
|
+
echo.xmlattr_attr_int = nil
|
149
|
+
ret = @client.echo(echo)
|
150
|
+
# struct1 and struct2 are swapped
|
151
|
+
assert_equal('', ret.struct1.xmlattr_m_attr)
|
152
|
+
assert_equal(nil, ret.struct_2.xmlattr_m_attr)
|
153
|
+
assert_equal('', ret.xmlattr_attr_string)
|
154
|
+
assert_equal(nil, ret.xmlattr_attr_int)
|
155
|
+
assert_equal(105759347, ret.long)
|
156
|
+
end
|
126
157
|
|
158
|
+
def do_test_with_stub(client)
|
127
159
|
struct1 = Echo_struct.new("mystring1", now1 = Time.now)
|
128
160
|
struct1.xmlattr_m_attr = 'myattr1'
|
129
|
-
struct2 = Echo_struct.new("
|
161
|
+
struct2 = Echo_struct.new("mystr<>ing2", now2 = Time.now)
|
130
162
|
struct2.xmlattr_m_attr = 'myattr2'
|
131
|
-
echo = Echoele.new(struct1, struct2)
|
132
|
-
echo.xmlattr_attr_string = '
|
163
|
+
echo = Echoele.new(struct1, struct2, 105759347)
|
164
|
+
echo.xmlattr_attr_string = 'attr_str<>ing'
|
133
165
|
echo.xmlattr_attr_int = 5
|
134
|
-
ret =
|
166
|
+
ret = client.echo(echo)
|
135
167
|
|
136
168
|
# struct#m_datetime in a response is a DateTime even though
|
137
169
|
# struct#m_datetime in a request is a Time.
|
138
170
|
timeformat = "%Y-%m-%dT%H:%M:%S"
|
139
|
-
assert_equal("
|
171
|
+
assert_equal("mystr<>ing2", ret.struct1.m_string)
|
140
172
|
assert_equal(now2.strftime(timeformat),
|
141
173
|
date2time(ret.struct1.m_datetime).strftime(timeformat))
|
142
174
|
assert_equal("mystring1", ret.struct_2.m_string)
|
143
175
|
assert_equal(now1.strftime(timeformat),
|
144
176
|
date2time(ret.struct_2.m_datetime).strftime(timeformat))
|
145
|
-
assert_equal("
|
177
|
+
assert_equal("attr_str<>ing", ret.xmlattr_attr_string)
|
146
178
|
assert_equal(5, ret.xmlattr_attr_int)
|
179
|
+
assert_equal(105759347, ret.long)
|
180
|
+
end
|
181
|
+
|
182
|
+
def test_wsdl_with_map
|
183
|
+
wsdl = File.join(DIR, 'document.wsdl')
|
184
|
+
@client = ::SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
|
185
|
+
@client.endpoint_url = "http://localhost:#{Port}/"
|
186
|
+
@client.wiredump_dev = STDOUT if $DEBUG
|
187
|
+
|
188
|
+
struct1 = {
|
189
|
+
:m_string => "mystring1",
|
190
|
+
:m_datetime => (now1 = Time.now),
|
191
|
+
:xmlattr_m_attr => "myattr1"
|
192
|
+
}
|
193
|
+
struct2 = {
|
194
|
+
"m_string" => "mystr<>ing2",
|
195
|
+
"m_datetime" => now2 = (Time.now),
|
196
|
+
"xmlattr_m_attr" => "myattr2"
|
197
|
+
}
|
198
|
+
echo = {
|
199
|
+
:struct1 => struct1,
|
200
|
+
"struct-2" => struct2,
|
201
|
+
:xmlattr_attr_string => 'attr_str<>ing',
|
202
|
+
"xmlattr_attr-int" => 5
|
203
|
+
}
|
204
|
+
ret = @client.echo(echo)
|
205
|
+
#
|
206
|
+
now1str = XSD::XSDDateTime.new(now1).to_s
|
207
|
+
now2str = XSD::XSDDateTime.new(now2).to_s
|
208
|
+
assert_equal("mystr<>ing2", ret.struct1.m_string)
|
209
|
+
assert_equal(now2str, ret.struct1.m_datetime)
|
210
|
+
assert_equal("mystring1", ret.struct_2.m_string)
|
211
|
+
assert_equal(now1str, ret.struct_2.m_datetime)
|
212
|
+
assert_equal("attr_str<>ing", ret.xmlattr_attr_string)
|
213
|
+
assert_equal("5", ret.xmlattr_attr_int)
|
147
214
|
end
|
148
215
|
|
149
216
|
def date2time(date)
|
@@ -168,7 +235,7 @@ class TestRPC < Test::Unit::TestCase
|
|
168
235
|
@client.wiredump_dev = STDOUT if $DEBUG
|
169
236
|
|
170
237
|
echo = SOAPElement.new('foo')
|
171
|
-
echo.extraattr['attr_string'] = '
|
238
|
+
echo.extraattr['attr_string'] = 'attr_str<>ing'
|
172
239
|
echo.extraattr['attr-int'] = 5
|
173
240
|
echo.add(struct1 = SOAPElement.new('struct1'))
|
174
241
|
struct1.add(SOAPElement.new('m_string', 'mystring1'))
|
@@ -186,7 +253,7 @@ class TestRPC < Test::Unit::TestCase
|
|
186
253
|
assert_equal("mystring1", ret.struct_2.m_string)
|
187
254
|
assert_equal('2005-03-17T19:47:31',
|
188
255
|
ret.struct_2.m_datetime.strftime(timeformat))
|
189
|
-
assert_equal('
|
256
|
+
assert_equal('attr_str<>ing', ret.xmlattr_attr_string)
|
190
257
|
assert_equal(5, ret.xmlattr_attr_int)
|
191
258
|
|
192
259
|
echo = {'struct1' => {'m_string' => 'mystring1', 'm_datetime' => '2005-03-17T19:47:31+01:00'},
|
@@ -266,6 +333,7 @@ __XML__
|
|
266
333
|
ret = @client.return_nil
|
267
334
|
assert_nil(ret.struct1.m_string)
|
268
335
|
assert_nil(ret.struct_2.m_string)
|
336
|
+
assert_nil(ret.long)
|
269
337
|
end
|
270
338
|
|
271
339
|
def test_empty
|
@@ -279,6 +347,7 @@ __XML__
|
|
279
347
|
ret = @client.return_empty
|
280
348
|
assert_equal("", ret.struct1.m_string)
|
281
349
|
assert_equal("", ret.struct_2.m_string)
|
350
|
+
assert_equal(0, ret.long)
|
282
351
|
end
|
283
352
|
end
|
284
353
|
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'xsd/qname'
|
2
|
+
|
3
|
+
module WSDL; module Group
|
4
|
+
|
5
|
+
|
6
|
+
# {urn:grouptype}groupele_type
|
7
|
+
# comment - SOAP::SOAPString
|
8
|
+
# element - SOAP::SOAPString
|
9
|
+
# eletype - SOAP::SOAPString
|
10
|
+
# var - SOAP::SOAPString
|
11
|
+
# xmlattr_attr_min - SOAP::SOAPDecimal
|
12
|
+
# xmlattr_attr_max - SOAP::SOAPDecimal
|
13
|
+
class Groupele_type
|
14
|
+
AttrAttr_max = XSD::QName.new(nil, "attr_max")
|
15
|
+
AttrAttr_min = XSD::QName.new(nil, "attr_min")
|
16
|
+
|
17
|
+
attr_accessor :comment
|
18
|
+
attr_reader :__xmlele_any
|
19
|
+
attr_accessor :element
|
20
|
+
attr_accessor :eletype
|
21
|
+
attr_accessor :var
|
22
|
+
|
23
|
+
def set_any(elements)
|
24
|
+
@__xmlele_any = elements
|
25
|
+
end
|
26
|
+
|
27
|
+
def __xmlattr
|
28
|
+
@__xmlattr ||= {}
|
29
|
+
end
|
30
|
+
|
31
|
+
def xmlattr_attr_min
|
32
|
+
__xmlattr[AttrAttr_min]
|
33
|
+
end
|
34
|
+
|
35
|
+
def xmlattr_attr_min=(value)
|
36
|
+
__xmlattr[AttrAttr_min] = value
|
37
|
+
end
|
38
|
+
|
39
|
+
def xmlattr_attr_max
|
40
|
+
__xmlattr[AttrAttr_max]
|
41
|
+
end
|
42
|
+
|
43
|
+
def xmlattr_attr_max=(value)
|
44
|
+
__xmlattr[AttrAttr_max] = value
|
45
|
+
end
|
46
|
+
|
47
|
+
def initialize(comment = nil, element = nil, eletype = nil, var = nil)
|
48
|
+
@comment = comment
|
49
|
+
@__xmlele_any = nil
|
50
|
+
@element = element
|
51
|
+
@eletype = eletype
|
52
|
+
@var = var
|
53
|
+
@__xmlattr = {}
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
|
58
|
+
end; end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'echo.rb'
|
2
|
+
require 'echoMappingRegistry.rb'
|
3
|
+
require 'soap/rpc/driver'
|
4
|
+
|
5
|
+
module WSDL::Group
|
6
|
+
|
7
|
+
class Group_porttype < ::SOAP::RPC::Driver
|
8
|
+
DefaultEndpointUrl = "http://localhost:17171/"
|
9
|
+
|
10
|
+
Methods = [
|
11
|
+
[ "urn:group:echo",
|
12
|
+
"echo",
|
13
|
+
[ ["in", "parameters", ["::SOAP::SOAPElement", "urn:grouptype", "groupele"]],
|
14
|
+
["out", "parameters", ["::SOAP::SOAPElement", "urn:grouptype", "groupele"]] ],
|
15
|
+
{ :request_style => :document, :request_use => :literal,
|
16
|
+
:response_style => :document, :response_use => :literal,
|
17
|
+
:faults => {} }
|
18
|
+
]
|
19
|
+
]
|
20
|
+
|
21
|
+
def initialize(endpoint_url = nil)
|
22
|
+
endpoint_url ||= DefaultEndpointUrl
|
23
|
+
super(endpoint_url, nil)
|
24
|
+
self.mapping_registry = EchoMappingRegistry::EncodedRegistry
|
25
|
+
self.literal_mapping_registry = EchoMappingRegistry::LiteralRegistry
|
26
|
+
init_methods
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def init_methods
|
32
|
+
Methods.each do |definitions|
|
33
|
+
opt = definitions.last
|
34
|
+
if opt[:request_style] == :document
|
35
|
+
add_document_operation(*definitions)
|
36
|
+
else
|
37
|
+
add_rpc_operation(*definitions)
|
38
|
+
qname = definitions[0]
|
39
|
+
name = definitions[2]
|
40
|
+
if qname.name != name and qname.name.capitalize == name.capitalize
|
41
|
+
::SOAP::Mapping.define_singleton_method(self, qname.name) do |*arg|
|
42
|
+
__send__(name, *arg)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
|
51
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'echo.rb'
|
2
|
+
require 'soap/mapping'
|
3
|
+
|
4
|
+
module WSDL; module Group
|
5
|
+
|
6
|
+
module EchoMappingRegistry
|
7
|
+
EncodedRegistry = ::SOAP::Mapping::EncodedRegistry.new
|
8
|
+
LiteralRegistry = ::SOAP::Mapping::LiteralRegistry.new
|
9
|
+
NsGrouptype = "urn:grouptype"
|
10
|
+
NsXMLSchema = "http://www.w3.org/2001/XMLSchema"
|
11
|
+
|
12
|
+
EncodedRegistry.register(
|
13
|
+
:class => WSDL::Group::Groupele_type,
|
14
|
+
:schema_type => XSD::QName.new(NsGrouptype, "groupele_type"),
|
15
|
+
:schema_element => [
|
16
|
+
["comment", "SOAP::SOAPString", [0, 1]],
|
17
|
+
["any", [nil, XSD::QName.new(NsXMLSchema, "anyType")]],
|
18
|
+
[ :choice,
|
19
|
+
["element", ["SOAP::SOAPString", XSD::QName.new(nil, "element")]],
|
20
|
+
["eletype", ["SOAP::SOAPString", XSD::QName.new(nil, "eletype")]]
|
21
|
+
],
|
22
|
+
["var", ["SOAP::SOAPString", XSD::QName.new(nil, "var")]]
|
23
|
+
],
|
24
|
+
:schema_attribute => {
|
25
|
+
XSD::QName.new(nil, "attr_min") => "SOAP::SOAPDecimal",
|
26
|
+
XSD::QName.new(nil, "attr_max") => "SOAP::SOAPDecimal"
|
27
|
+
}
|
28
|
+
)
|
29
|
+
|
30
|
+
LiteralRegistry.register(
|
31
|
+
:class => WSDL::Group::Groupele_type,
|
32
|
+
:schema_type => XSD::QName.new(NsGrouptype, "groupele_type"),
|
33
|
+
:schema_element => [
|
34
|
+
["comment", "SOAP::SOAPString", [0, 1]],
|
35
|
+
["any", [nil, XSD::QName.new(NsXMLSchema, "anyType")]],
|
36
|
+
[ :choice,
|
37
|
+
["element", ["SOAP::SOAPString", XSD::QName.new(nil, "element")]],
|
38
|
+
["eletype", ["SOAP::SOAPString", XSD::QName.new(nil, "eletype")]]
|
39
|
+
],
|
40
|
+
["var", ["SOAP::SOAPString", XSD::QName.new(nil, "var")]]
|
41
|
+
],
|
42
|
+
:schema_attribute => {
|
43
|
+
XSD::QName.new(nil, "attr_min") => "SOAP::SOAPDecimal",
|
44
|
+
XSD::QName.new(nil, "attr_max") => "SOAP::SOAPDecimal"
|
45
|
+
}
|
46
|
+
)
|
47
|
+
|
48
|
+
LiteralRegistry.register(
|
49
|
+
:class => WSDL::Group::Groupele_type,
|
50
|
+
:schema_name => XSD::QName.new(NsGrouptype, "groupele"),
|
51
|
+
:schema_element => [
|
52
|
+
["comment", "SOAP::SOAPString", [0, 1]],
|
53
|
+
["any", [nil, XSD::QName.new(NsXMLSchema, "anyType")]],
|
54
|
+
[ :choice,
|
55
|
+
["element", ["SOAP::SOAPString", XSD::QName.new(nil, "element")]],
|
56
|
+
["eletype", ["SOAP::SOAPString", XSD::QName.new(nil, "eletype")]]
|
57
|
+
],
|
58
|
+
["var", ["SOAP::SOAPString", XSD::QName.new(nil, "var")]]
|
59
|
+
],
|
60
|
+
:schema_attribute => {
|
61
|
+
XSD::QName.new(nil, "attr_min") => "SOAP::SOAPDecimal",
|
62
|
+
XSD::QName.new(nil, "attr_max") => "SOAP::SOAPDecimal"
|
63
|
+
}
|
64
|
+
)
|
65
|
+
end
|
66
|
+
|
67
|
+
end; end
|
@@ -0,0 +1,88 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<definitions
|
3
|
+
name="echo"
|
4
|
+
targetNamespace="urn:group"
|
5
|
+
xmlns:tns="urn:group"
|
6
|
+
xmlns:txd="urn:grouptype"
|
7
|
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
8
|
+
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
9
|
+
xmlns="http://schemas.xmlsoap.org/wsdl/">
|
10
|
+
<types>
|
11
|
+
<xsd:schema elementFormDefault="unqualified" targetNamespace="urn:grouptype">
|
12
|
+
|
13
|
+
<xsd:element name="comment" type="xsd:string"/>
|
14
|
+
|
15
|
+
<xsd:simpleType name="attr_type">
|
16
|
+
<xsd:restriction base="xsd:decimal">
|
17
|
+
<xsd:maxInclusive value="-50"/>
|
18
|
+
<xsd:minInclusive value="50"/>
|
19
|
+
</xsd:restriction>
|
20
|
+
</xsd:simpleType>
|
21
|
+
|
22
|
+
<xsd:group name="common">
|
23
|
+
<xsd:sequence>
|
24
|
+
<xsd:element ref="txd:comment" minOccurs="0"/>
|
25
|
+
<xsd:any namespace="##any" minOccurs="0"/>
|
26
|
+
</xsd:sequence>
|
27
|
+
</xsd:group>
|
28
|
+
|
29
|
+
<xsd:attributeGroup name="common_attr">
|
30
|
+
<xsd:attribute name="attr_min" type="txd:attr_type" default="0"/>
|
31
|
+
<xsd:attribute name="attr_max" type="txd:attr_type" default="0"/>
|
32
|
+
</xsd:attributeGroup>
|
33
|
+
|
34
|
+
<xsd:group name="common_element">
|
35
|
+
<xsd:sequence>
|
36
|
+
<xsd:group ref="txd:common"/>
|
37
|
+
<xsd:choice>
|
38
|
+
<xsd:element name="element" type="xsd:string"/>
|
39
|
+
<xsd:element name="eletype" type="xsd:string"/>
|
40
|
+
</xsd:choice>
|
41
|
+
</xsd:sequence>
|
42
|
+
</xsd:group>
|
43
|
+
|
44
|
+
<xsd:complexType name="groupele_type">
|
45
|
+
<xsd:sequence>
|
46
|
+
<xsd:group ref="txd:common_element"/>
|
47
|
+
<xsd:element name="var" type="xsd:string"/>
|
48
|
+
</xsd:sequence>
|
49
|
+
<xsd:attributeGroup ref="txd:common_attr"/>
|
50
|
+
</xsd:complexType>
|
51
|
+
|
52
|
+
<xsd:element name="groupele" type="txd:groupele_type"/>
|
53
|
+
</xsd:schema>
|
54
|
+
</types>
|
55
|
+
|
56
|
+
<message name="echo_in">
|
57
|
+
<part name="parameters" element="txd:groupele" />
|
58
|
+
</message>
|
59
|
+
<message name="echo_out">
|
60
|
+
<part name="parameters" element="txd:groupele" />
|
61
|
+
</message>
|
62
|
+
|
63
|
+
<portType name="group_porttype">
|
64
|
+
<operation name="echo">
|
65
|
+
<input message="tns:echo_in" />
|
66
|
+
<output message="tns:echo_out" />
|
67
|
+
</operation>
|
68
|
+
</portType>
|
69
|
+
|
70
|
+
<binding name="group_binding" type="tns:group_porttype">
|
71
|
+
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
|
72
|
+
<operation name="echo">
|
73
|
+
<soap:operation soapAction="urn:group:echo" style="document" />
|
74
|
+
<input>
|
75
|
+
<soap:body use="literal" />
|
76
|
+
</input>
|
77
|
+
<output>
|
78
|
+
<soap:body use="literal" />
|
79
|
+
</output>
|
80
|
+
</operation>
|
81
|
+
</binding>
|
82
|
+
|
83
|
+
<service name="group_service">
|
84
|
+
<port name="docprc_service_port" binding="tns:group_binding">
|
85
|
+
<soap:address location="http://localhost:17171/" />
|
86
|
+
</port>
|
87
|
+
</service>
|
88
|
+
</definitions>
|