soap4r 1.5.5.20061022

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.
Files changed (440) hide show
  1. data/bin/wsdl2ruby.rb +131 -0
  2. data/bin/xsd2ruby.rb +82 -0
  3. data/lib/soap/XMLSchemaDatatypes.rb +9 -0
  4. data/lib/soap/XMLSchemaDatatypes1999.rb +10 -0
  5. data/lib/soap/attachment.rb +108 -0
  6. data/lib/soap/baseData.rb +992 -0
  7. data/lib/soap/cgistub.rb +9 -0
  8. data/lib/soap/charset.rb +9 -0
  9. data/lib/soap/compat.rb +182 -0
  10. data/lib/soap/driver.rb +9 -0
  11. data/lib/soap/element.rb +266 -0
  12. data/lib/soap/encodingstyle/aspDotNetHandler.rb +207 -0
  13. data/lib/soap/encodingstyle/handler.rb +109 -0
  14. data/lib/soap/encodingstyle/literalHandler.rb +241 -0
  15. data/lib/soap/encodingstyle/soapHandler.rb +598 -0
  16. data/lib/soap/generator.rb +264 -0
  17. data/lib/soap/header/handler.rb +60 -0
  18. data/lib/soap/header/handlerset.rb +70 -0
  19. data/lib/soap/header/simplehandler.rb +44 -0
  20. data/lib/soap/httpconfigloader.rb +119 -0
  21. data/lib/soap/mapping.rb +12 -0
  22. data/lib/soap/mapping/encodedregistry.rb +531 -0
  23. data/lib/soap/mapping/factory.rb +372 -0
  24. data/lib/soap/mapping/literalregistry.rb +321 -0
  25. data/lib/soap/mapping/mapping.rb +561 -0
  26. data/lib/soap/mapping/registry.rb +258 -0
  27. data/lib/soap/mapping/rubytypeFactory.rb +475 -0
  28. data/lib/soap/mapping/typeMap.rb +82 -0
  29. data/lib/soap/mapping/wsdlencodedregistry.rb +253 -0
  30. data/lib/soap/mapping/wsdlliteralregistry.rb +246 -0
  31. data/lib/soap/mappingRegistry.rb +9 -0
  32. data/lib/soap/marshal.rb +59 -0
  33. data/lib/soap/mimemessage.rb +241 -0
  34. data/lib/soap/namespace.rb +9 -0
  35. data/lib/soap/netHttpClient.rb +204 -0
  36. data/lib/soap/parser.rb +251 -0
  37. data/lib/soap/processor.rb +66 -0
  38. data/lib/soap/property.rb +333 -0
  39. data/lib/soap/proxy.rb +14 -0
  40. data/lib/soap/qname.rb +9 -0
  41. data/lib/soap/rpc/cgistub.rb +214 -0
  42. data/lib/soap/rpc/driver.rb +245 -0
  43. data/lib/soap/rpc/element.rb +330 -0
  44. data/lib/soap/rpc/httpserver.rb +143 -0
  45. data/lib/soap/rpc/proxy.rb +563 -0
  46. data/lib/soap/rpc/router.rb +602 -0
  47. data/lib/soap/rpc/rpc.rb +25 -0
  48. data/lib/soap/rpc/soaplet.rb +162 -0
  49. data/lib/soap/rpc/standaloneServer.rb +43 -0
  50. data/lib/soap/rpcRouter.rb +9 -0
  51. data/lib/soap/rpcUtils.rb +9 -0
  52. data/lib/soap/server.rb +9 -0
  53. data/lib/soap/soap.rb +150 -0
  54. data/lib/soap/standaloneServer.rb +9 -0
  55. data/lib/soap/streamHandler.rb +258 -0
  56. data/lib/soap/wsdlDriver.rb +580 -0
  57. data/lib/wsdl/binding.rb +65 -0
  58. data/lib/wsdl/data.rb +64 -0
  59. data/lib/wsdl/definitions.rb +250 -0
  60. data/lib/wsdl/documentation.rb +32 -0
  61. data/lib/wsdl/import.rb +80 -0
  62. data/lib/wsdl/importer.rb +38 -0
  63. data/lib/wsdl/info.rb +39 -0
  64. data/lib/wsdl/message.rb +54 -0
  65. data/lib/wsdl/operation.rb +175 -0
  66. data/lib/wsdl/operationBinding.rb +116 -0
  67. data/lib/wsdl/param.rb +85 -0
  68. data/lib/wsdl/parser.rb +163 -0
  69. data/lib/wsdl/part.rb +52 -0
  70. data/lib/wsdl/port.rb +84 -0
  71. data/lib/wsdl/portType.rb +75 -0
  72. data/lib/wsdl/service.rb +61 -0
  73. data/lib/wsdl/soap/address.rb +40 -0
  74. data/lib/wsdl/soap/binding.rb +49 -0
  75. data/lib/wsdl/soap/body.rb +56 -0
  76. data/lib/wsdl/soap/cgiStubCreator.rb +88 -0
  77. data/lib/wsdl/soap/classDefCreator.rb +340 -0
  78. data/lib/wsdl/soap/classDefCreatorSupport.rb +131 -0
  79. data/lib/wsdl/soap/clientSkeltonCreator.rb +93 -0
  80. data/lib/wsdl/soap/complexType.rb +166 -0
  81. data/lib/wsdl/soap/data.rb +42 -0
  82. data/lib/wsdl/soap/definitions.rb +151 -0
  83. data/lib/wsdl/soap/driverCreator.rb +110 -0
  84. data/lib/wsdl/soap/element.rb +28 -0
  85. data/lib/wsdl/soap/encodedMappingRegistryCreator.rb +117 -0
  86. data/lib/wsdl/soap/fault.rb +56 -0
  87. data/lib/wsdl/soap/header.rb +86 -0
  88. data/lib/wsdl/soap/headerfault.rb +56 -0
  89. data/lib/wsdl/soap/literalMappingRegistryCreator.rb +188 -0
  90. data/lib/wsdl/soap/mappingRegistryCreator.rb +53 -0
  91. data/lib/wsdl/soap/mappingRegistryCreatorSupport.rb +233 -0
  92. data/lib/wsdl/soap/methodDefCreator.rb +253 -0
  93. data/lib/wsdl/soap/operation.rb +122 -0
  94. data/lib/wsdl/soap/servantSkeltonCreator.rb +78 -0
  95. data/lib/wsdl/soap/standaloneServerStubCreator.rb +98 -0
  96. data/lib/wsdl/soap/wsdl2ruby.rb +196 -0
  97. data/lib/wsdl/types.rb +44 -0
  98. data/lib/wsdl/wsdl.rb +23 -0
  99. data/lib/wsdl/xmlSchema/all.rb +24 -0
  100. data/lib/wsdl/xmlSchema/annotation.rb +34 -0
  101. data/lib/wsdl/xmlSchema/any.rb +56 -0
  102. data/lib/wsdl/xmlSchema/attribute.rb +123 -0
  103. data/lib/wsdl/xmlSchema/choice.rb +55 -0
  104. data/lib/wsdl/xmlSchema/complexContent.rb +88 -0
  105. data/lib/wsdl/xmlSchema/complexExtension.rb +104 -0
  106. data/lib/wsdl/xmlSchema/complexRestriction.rb +92 -0
  107. data/lib/wsdl/xmlSchema/complexType.rb +152 -0
  108. data/lib/wsdl/xmlSchema/content.rb +74 -0
  109. data/lib/wsdl/xmlSchema/data.rb +90 -0
  110. data/lib/wsdl/xmlSchema/element.rb +158 -0
  111. data/lib/wsdl/xmlSchema/enumeration.rb +36 -0
  112. data/lib/wsdl/xmlSchema/import.rb +65 -0
  113. data/lib/wsdl/xmlSchema/importer.rb +87 -0
  114. data/lib/wsdl/xmlSchema/include.rb +54 -0
  115. data/lib/wsdl/xmlSchema/length.rb +35 -0
  116. data/lib/wsdl/xmlSchema/list.rb +48 -0
  117. data/lib/wsdl/xmlSchema/maxlength.rb +35 -0
  118. data/lib/wsdl/xmlSchema/minlength.rb +35 -0
  119. data/lib/wsdl/xmlSchema/parser.rb +166 -0
  120. data/lib/wsdl/xmlSchema/pattern.rb +36 -0
  121. data/lib/wsdl/xmlSchema/schema.rb +144 -0
  122. data/lib/wsdl/xmlSchema/sequence.rb +51 -0
  123. data/lib/wsdl/xmlSchema/simpleContent.rb +69 -0
  124. data/lib/wsdl/xmlSchema/simpleExtension.rb +54 -0
  125. data/lib/wsdl/xmlSchema/simpleRestriction.rb +91 -0
  126. data/lib/wsdl/xmlSchema/simpleType.rb +80 -0
  127. data/lib/wsdl/xmlSchema/unique.rb +34 -0
  128. data/lib/wsdl/xmlSchema/xsd2ruby.rb +107 -0
  129. data/lib/xsd/charset.rb +187 -0
  130. data/lib/xsd/codegen.rb +12 -0
  131. data/lib/xsd/codegen/classdef.rb +203 -0
  132. data/lib/xsd/codegen/commentdef.rb +34 -0
  133. data/lib/xsd/codegen/gensupport.rb +168 -0
  134. data/lib/xsd/codegen/methoddef.rb +70 -0
  135. data/lib/xsd/codegen/moduledef.rb +191 -0
  136. data/lib/xsd/datatypes.rb +1282 -0
  137. data/lib/xsd/datatypes1999.rb +20 -0
  138. data/lib/xsd/iconvcharset.rb +33 -0
  139. data/lib/xsd/mapping.rb +42 -0
  140. data/lib/xsd/namedelements.rb +124 -0
  141. data/lib/xsd/ns.rb +146 -0
  142. data/lib/xsd/qname.rb +78 -0
  143. data/lib/xsd/xmlparser.rb +61 -0
  144. data/lib/xsd/xmlparser/parser.rb +96 -0
  145. data/lib/xsd/xmlparser/rexmlparser.rb +54 -0
  146. data/lib/xsd/xmlparser/xmlparser.rb +50 -0
  147. data/lib/xsd/xmlparser/xmlscanner.rb +147 -0
  148. data/test/16runner.rb +68 -0
  149. data/test/interopR2/README.txt +2 -0
  150. data/test/interopR2/SOAPBuildersInterop_R2.wsdl +461 -0
  151. data/test/interopR2/SOAPBuildersInterop_R2GrB.wsdl +19 -0
  152. data/test/interopR2/base.rb +288 -0
  153. data/test/interopR2/client.NetRemoting.rb +17 -0
  154. data/test/interopR2/client.NetRemoting.rb.result +3410 -0
  155. data/test/interopR2/client.NetRemoting_Base.log +6279 -0
  156. data/test/interopR2/client.NetRemoting_GroupB.log +1188 -0
  157. data/test/interopR2/client.rb +1228 -0
  158. data/test/interopR2/client4S4C.rb +15 -0
  159. data/test/interopR2/client4S4C2.rb +14 -0
  160. data/test/interopR2/client4S4C2_Base.log +4955 -0
  161. data/test/interopR2/client4S4C2_GroupB.log +1000 -0
  162. data/test/interopR2/client4S4C_Base.log +4635 -0
  163. data/test/interopR2/client4S4C_GroupB.log +900 -0
  164. data/test/interopR2/clientASP.NET.rb +17 -0
  165. data/test/interopR2/clientASP.NET_Base.log +5468 -0
  166. data/test/interopR2/clientASP.NET_GroupB.log +977 -0
  167. data/test/interopR2/clientApacheAxis.rb +16 -0
  168. data/test/interopR2/clientApacheAxis_Base.log +3171 -0
  169. data/test/interopR2/clientApacheAxis_GroupB.log +498 -0
  170. data/test/interopR2/clientApacheSOAP.rb +17 -0
  171. data/test/interopR2/clientApacheSOAP_Base.log +3171 -0
  172. data/test/interopR2/clientBEAWebLogic.rb +17 -0
  173. data/test/interopR2/clientBEAWebLogic_Base.log +3171 -0
  174. data/test/interopR2/clientBEAWebLogic_GroupB.log +498 -0
  175. data/test/interopR2/clientBase.rb +1970 -0
  176. data/test/interopR2/clientCapeConnect.rb +18 -0
  177. data/test/interopR2/clientCapeConnect_Base.log +2126 -0
  178. data/test/interopR2/clientDelphi.rb +19 -0
  179. data/test/interopR2/clientDelphi_Base.log +0 -0
  180. data/test/interopR2/clientEasySoap.rb +14 -0
  181. data/test/interopR2/clientEasySoap_Base.log +6187 -0
  182. data/test/interopR2/clientEasySoap_GroupB.log +1076 -0
  183. data/test/interopR2/clientFrontier.rb +25 -0
  184. data/test/interopR2/clientFrontier_Base.log +5188 -0
  185. data/test/interopR2/clientGLUE.rb +32 -0
  186. data/test/interopR2/clientHP.rb +13 -0
  187. data/test/interopR2/clientHP_Base.log +3171 -0
  188. data/test/interopR2/clientHP_GroupB.log +498 -0
  189. data/test/interopR2/clientJAX-RPC.rb +19 -0
  190. data/test/interopR2/clientJSOAP.rb +14 -0
  191. data/test/interopR2/clientJSOAP_Base.log +4465 -0
  192. data/test/interopR2/clientJSOAP_GroupB.log +824 -0
  193. data/test/interopR2/clientKafkaXSLT.rb +15 -0
  194. data/test/interopR2/clientKafkaXSLT_Base.log +10299 -0
  195. data/test/interopR2/clientKafkaXSLT_GroupB.log +1739 -0
  196. data/test/interopR2/clientMSSOAPToolkit2.0.rb +17 -0
  197. data/test/interopR2/clientMSSOAPToolkit2.0_Base.log +4805 -0
  198. data/test/interopR2/clientMSSOAPToolkit2.0_GroupB.log +871 -0
  199. data/test/interopR2/clientMSSOAPToolkit3.0.rb +17 -0
  200. data/test/interopR2/clientMSSOAPToolkit3.0_Base.log +5076 -0
  201. data/test/interopR2/clientMSSOAPToolkit3.0_GroupB.log +908 -0
  202. data/test/interopR2/clientNuSOAP.rb +19 -0
  203. data/test/interopR2/clientNuSOAP_Base.log +5076 -0
  204. data/test/interopR2/clientNuSOAP_GroupB.log +958 -0
  205. data/test/interopR2/clientNuWave.rb +15 -0
  206. data/test/interopR2/clientNuWave_Base.log +2019 -0
  207. data/test/interopR2/clientOpenLink.rb +15 -0
  208. data/test/interopR2/clientOpenLink_Base.log +6171 -0
  209. data/test/interopR2/clientOpenLink_GroupB.log +1094 -0
  210. data/test/interopR2/clientOracle.rb +15 -0
  211. data/test/interopR2/clientOracle_Base.log +5594 -0
  212. data/test/interopR2/clientPEAR.rb +18 -0
  213. data/test/interopR2/clientPEAR_Base.log +6261 -0
  214. data/test/interopR2/clientPEAR_GroupB.log +1106 -0
  215. data/test/interopR2/clientPhalanx.rb +18 -0
  216. data/test/interopR2/clientPhalanx_Base.log +41036 -0
  217. data/test/interopR2/clientPhalanx_GroupB.log +6519 -0
  218. data/test/interopR2/clientSIMACE.rb +18 -0
  219. data/test/interopR2/clientSIMACE_Base.log +6171 -0
  220. data/test/interopR2/clientSIMACE_GroupB.log +1093 -0
  221. data/test/interopR2/clientSOAP4R.rb +18 -0
  222. data/test/interopR2/clientSOAP4R.rb.result +3409 -0
  223. data/test/interopR2/clientSOAP4R_Base.log +6366 -0
  224. data/test/interopR2/clientSOAP4R_GroupB.log +1112 -0
  225. data/test/interopR2/clientSOAP__Lite.rb +14 -0
  226. data/test/interopR2/clientSQLData.rb +18 -0
  227. data/test/interopR2/clientSQLData_Base.log +4857 -0
  228. data/test/interopR2/clientSQLData_GroupB.log +770 -0
  229. data/test/interopR2/clientSilverStream.rb +17 -0
  230. data/test/interopR2/clientSilverStream_Base.log +3171 -0
  231. data/test/interopR2/clientSpray2001.rb +17 -0
  232. data/test/interopR2/clientSpray2001_Base.log +8187 -0
  233. data/test/interopR2/clientSpray2001_GroupB.log +1408 -0
  234. data/test/interopR2/clientSun.rb +19 -0
  235. data/test/interopR2/clientSun_Base.log +4641 -0
  236. data/test/interopR2/clientSun_GroupB.log +856 -0
  237. data/test/interopR2/clientVWOpentalkSoap.rb +19 -0
  238. data/test/interopR2/clientVWOpentalkSoap_Base.log +5402 -0
  239. data/test/interopR2/clientVWOpentalkSoap_GroupB.log +972 -0
  240. data/test/interopR2/clientWASP.rb +19 -0
  241. data/test/interopR2/clientWASPC.rb +18 -0
  242. data/test/interopR2/clientWASPC_Base.log +4187 -0
  243. data/test/interopR2/clientWASPC_GroupB.log +763 -0
  244. data/test/interopR2/clientWASP_Base.log +5414 -0
  245. data/test/interopR2/clientWASP_GroupB.log +970 -0
  246. data/test/interopR2/clientWebMethods.rb +15 -0
  247. data/test/interopR2/clientWebMethods_Base.log +3075 -0
  248. data/test/interopR2/clientWebMethods_GroupB.log +483 -0
  249. data/test/interopR2/clientWhiteMesa.rb +28 -0
  250. data/test/interopR2/clientWhiteMesa_Base.log +4359 -0
  251. data/test/interopR2/clientWhiteMesa_GroupB.log +808 -0
  252. data/test/interopR2/clientWingfoot.rb +15 -0
  253. data/test/interopR2/clientWingfoot_Base.log +4445 -0
  254. data/test/interopR2/clientWingfoot_GroupB.log +848 -0
  255. data/test/interopR2/clientXMLBus.rb +19 -0
  256. data/test/interopR2/clientXMLBus_Base.log +3075 -0
  257. data/test/interopR2/clientXMLBus_GroupB.log +483 -0
  258. data/test/interopR2/clientXMLRPC-EPI.rb +17 -0
  259. data/test/interopR2/clientXSOAP.rb +14 -0
  260. data/test/interopR2/clientXSOAP_Base.log +4445 -0
  261. data/test/interopR2/clientZSI.rb +19 -0
  262. data/test/interopR2/clienteSOAP.rb +18 -0
  263. data/test/interopR2/clienteSOAP_Base.log +8728 -0
  264. data/test/interopR2/clientgSOAP.rb +18 -0
  265. data/test/interopR2/clientgSOAP_Base.log +4689 -0
  266. data/test/interopR2/clientgSOAP_GroupB.log +1014 -0
  267. data/test/interopR2/clientkSOAP.rb +17 -0
  268. data/test/interopR2/clientkSOAP_Base.log +5625 -0
  269. data/test/interopR2/iSimonReg.rb +112 -0
  270. data/test/interopR2/interopResultBase.rb +114 -0
  271. data/test/interopR2/interopService.rb +247 -0
  272. data/test/interopR2/result_client.NetRemoting.txt +4593 -0
  273. data/test/interopR2/rwikiInteropService.rb +105 -0
  274. data/test/interopR2/server.cgi +270 -0
  275. data/test/interopR2/server.rb +274 -0
  276. data/test/interopR2/simonReg.rb +123 -0
  277. data/test/interopR2/test.sh +49 -0
  278. data/test/interopR4/client.rb +112 -0
  279. data/test/runner.rb +9 -0
  280. data/test/sm11/classDef.rb +156 -0
  281. data/test/sm11/client.rb +542 -0
  282. data/test/sm11/driver.rb +183 -0
  283. data/test/sm11/servant.rb +1067 -0
  284. data/test/sm11/server.rb +25 -0
  285. data/test/soap/asp.net/hello.wsdl +96 -0
  286. data/test/soap/asp.net/test_aspdotnet.rb +112 -0
  287. data/test/soap/calc/calc.rb +17 -0
  288. data/test/soap/calc/calc2.rb +29 -0
  289. data/test/soap/calc/server.cgi +13 -0
  290. data/test/soap/calc/server.rb +17 -0
  291. data/test/soap/calc/server2.rb +20 -0
  292. data/test/soap/calc/test_calc.rb +49 -0
  293. data/test/soap/calc/test_calc2.rb +53 -0
  294. data/test/soap/calc/test_calc_cgi.rb +69 -0
  295. data/test/soap/fault/test_customfault.rb +58 -0
  296. data/test/soap/header/server.cgi +119 -0
  297. data/test/soap/header/test_authheader.rb +240 -0
  298. data/test/soap/header/test_authheader_cgi.rb +121 -0
  299. data/test/soap/header/test_simplehandler.rb +116 -0
  300. data/test/soap/helloworld/hw_s.rb +16 -0
  301. data/test/soap/helloworld/test_helloworld.rb +41 -0
  302. data/test/soap/literalArrayMapping/amazonEc.rb +4778 -0
  303. data/test/soap/literalArrayMapping/amazonEcDriver.rb +172 -0
  304. data/test/soap/literalArrayMapping/amazonresponse.xml +100 -0
  305. data/test/soap/literalArrayMapping/test_definedarray.rb +36 -0
  306. data/test/soap/marshal/marshaltestlib.rb +494 -0
  307. data/test/soap/marshal/test_digraph.rb +56 -0
  308. data/test/soap/marshal/test_marshal.rb +26 -0
  309. data/test/soap/marshal/test_struct.rb +47 -0
  310. data/test/soap/ssl/README +1 -0
  311. data/test/soap/ssl/ca.cert +23 -0
  312. data/test/soap/ssl/client.cert +19 -0
  313. data/test/soap/ssl/client.key +15 -0
  314. data/test/soap/ssl/server.cert +19 -0
  315. data/test/soap/ssl/server.key +15 -0
  316. data/test/soap/ssl/sslsvr.rb +57 -0
  317. data/test/soap/ssl/subca.cert +21 -0
  318. data/test/soap/ssl/test_ssl.rb +245 -0
  319. data/test/soap/struct/test_struct.rb +77 -0
  320. data/test/soap/styleuse/client.rb +20 -0
  321. data/test/soap/styleuse/server.rb +86 -0
  322. data/test/soap/swa/test_file.rb +73 -0
  323. data/test/soap/test_basetype.rb +976 -0
  324. data/test/soap/test_custommap.rb +108 -0
  325. data/test/soap/test_empty.rb +79 -0
  326. data/test/soap/test_envelopenamespace.rb +92 -0
  327. data/test/soap/test_httpconfigloader.rb +39 -0
  328. data/test/soap/test_mapping.rb +59 -0
  329. data/test/soap/test_no_indent.rb +86 -0
  330. data/test/soap/test_property.rb +424 -0
  331. data/test/soap/test_response_as_xml.rb +95 -0
  332. data/test/soap/test_soapelement.rb +120 -0
  333. data/test/soap/test_streamhandler.rb +262 -0
  334. data/test/soap/test_styleuse.rb +333 -0
  335. data/test/soap/wsdlDriver/README.txt +2 -0
  336. data/test/soap/wsdlDriver/calc.wsdl +126 -0
  337. data/test/soap/wsdlDriver/document.wsdl +54 -0
  338. data/test/soap/wsdlDriver/echo_version.rb +29 -0
  339. data/test/soap/wsdlDriver/simpletype.wsdl +63 -0
  340. data/test/soap/wsdlDriver/test_calc.rb +100 -0
  341. data/test/soap/wsdlDriver/test_document.rb +78 -0
  342. data/test/soap/wsdlDriver/test_simpletype.rb +87 -0
  343. data/test/wsdl/abstract/abstract.wsdl +97 -0
  344. data/test/wsdl/abstract/test_abstract.rb +130 -0
  345. data/test/wsdl/any/any.wsdl +51 -0
  346. data/test/wsdl/any/expectedDriver.rb +46 -0
  347. data/test/wsdl/any/expectedEcho.rb +18 -0
  348. data/test/wsdl/any/expectedService.rb +42 -0
  349. data/test/wsdl/any/test_any.rb +193 -0
  350. data/test/wsdl/axisArray/axisArray.wsdl +60 -0
  351. data/test/wsdl/axisArray/itemList.rb +14 -0
  352. data/test/wsdl/axisArray/test_axisarray.rb +69 -0
  353. data/test/wsdl/choice/choice.wsdl +91 -0
  354. data/test/wsdl/choice/test_choice.rb +134 -0
  355. data/test/wsdl/complexcontent/complexContent.wsdl +83 -0
  356. data/test/wsdl/complexcontent/test_echo.rb +101 -0
  357. data/test/wsdl/datetime/DatetimeService.rb +44 -0
  358. data/test/wsdl/datetime/datetime.rb +0 -0
  359. data/test/wsdl/datetime/datetime.wsdl +45 -0
  360. data/test/wsdl/datetime/datetimeServant.rb +21 -0
  361. data/test/wsdl/datetime/test_datetime.rb +82 -0
  362. data/test/wsdl/document/array/double.wsdl +72 -0
  363. data/test/wsdl/document/array/test_array.rb +117 -0
  364. data/test/wsdl/document/document.wsdl +74 -0
  365. data/test/wsdl/document/number.wsdl +54 -0
  366. data/test/wsdl/document/ping_nosoapaction.wsdl +66 -0
  367. data/test/wsdl/document/test_nosoapaction.rb +109 -0
  368. data/test/wsdl/document/test_number.rb +99 -0
  369. data/test/wsdl/document/test_rpc.rb +211 -0
  370. data/test/wsdl/emptycomplextype.wsdl +31 -0
  371. data/test/wsdl/list/list.wsdl +93 -0
  372. data/test/wsdl/list/test_list.rb +134 -0
  373. data/test/wsdl/map/map.wsdl +92 -0
  374. data/test/wsdl/map/map.xml +43 -0
  375. data/test/wsdl/map/test_map.rb +99 -0
  376. data/test/wsdl/marshal/person.wsdl +21 -0
  377. data/test/wsdl/marshal/person_org.rb +18 -0
  378. data/test/wsdl/marshal/test_wsdlmarshal.rb +79 -0
  379. data/test/wsdl/multiplefault.wsdl +68 -0
  380. data/test/wsdl/overload/overload.wsdl +80 -0
  381. data/test/wsdl/overload/test_overload.rb +118 -0
  382. data/test/wsdl/qualified/lp.wsdl +47 -0
  383. data/test/wsdl/qualified/lp.xsd +26 -0
  384. data/test/wsdl/qualified/np.wsdl +51 -0
  385. data/test/wsdl/qualified/test_qualified.rb +145 -0
  386. data/test/wsdl/qualified/test_unqualified.rb +159 -0
  387. data/test/wsdl/raa/RAA.rb +120 -0
  388. data/test/wsdl/raa/RAAServant.rb +107 -0
  389. data/test/wsdl/raa/RAAService.rb +120 -0
  390. data/test/wsdl/raa/README.txt +8 -0
  391. data/test/wsdl/raa/raa.wsdl +264 -0
  392. data/test/wsdl/raa/server.rb +103 -0
  393. data/test/wsdl/raa/test_raa.rb +91 -0
  394. data/test/wsdl/ref/expectedProduct.rb +158 -0
  395. data/test/wsdl/ref/product.wsdl +147 -0
  396. data/test/wsdl/ref/test_ref.rb +289 -0
  397. data/test/wsdl/rpc/rpc.wsdl +83 -0
  398. data/test/wsdl/rpc/test-rpc-lit.wsdl +364 -0
  399. data/test/wsdl/rpc/test_rpc.rb +173 -0
  400. data/test/wsdl/rpc/test_rpc_lit.rb +407 -0
  401. data/test/wsdl/simplecontent/simplecontent.wsdl +83 -0
  402. data/test/wsdl/simplecontent/test_simplecontent.rb +116 -0
  403. data/test/wsdl/simpletype/rpc/expectedClient.rb +34 -0
  404. data/test/wsdl/simpletype/rpc/expectedDriver.rb +55 -0
  405. data/test/wsdl/simpletype/rpc/expectedEchoVersion.rb +19 -0
  406. data/test/wsdl/simpletype/rpc/expectedServant.rb +32 -0
  407. data/test/wsdl/simpletype/rpc/expectedService.rb +51 -0
  408. data/test/wsdl/simpletype/rpc/rpc.wsdl +80 -0
  409. data/test/wsdl/simpletype/rpc/test_rpc.rb +62 -0
  410. data/test/wsdl/simpletype/simpletype.wsdl +95 -0
  411. data/test/wsdl/simpletype/test_simpletype.rb +99 -0
  412. data/test/wsdl/soap/soapbodyparts.wsdl +103 -0
  413. data/test/wsdl/soap/test_soapbodyparts.rb +79 -0
  414. data/test/wsdl/soap/wsdl2ruby/expectedClassdef.rb +19 -0
  415. data/test/wsdl/soap/wsdl2ruby/expectedClient.rb +34 -0
  416. data/test/wsdl/soap/wsdl2ruby/expectedDriver.rb +55 -0
  417. data/test/wsdl/soap/wsdl2ruby/expectedServant.rb +32 -0
  418. data/test/wsdl/soap/wsdl2ruby/expectedService.cgi +44 -0
  419. data/test/wsdl/soap/wsdl2ruby/expectedService.rb +51 -0
  420. data/test/wsdl/soap/wsdl2ruby/rpc.wsdl +80 -0
  421. data/test/wsdl/soap/wsdl2ruby/section/expectedClassdef.rb +31 -0
  422. data/test/wsdl/soap/wsdl2ruby/section/section.xsd +31 -0
  423. data/test/wsdl/soap/wsdl2ruby/section/test_section.rb +54 -0
  424. data/test/wsdl/soap/wsdl2ruby/soapenc/soapenc.wsdl +64 -0
  425. data/test/wsdl/soap/wsdl2ruby/soapenc/test_soapenc.rb +96 -0
  426. data/test/wsdl/soap/wsdl2ruby/test_wsdl2ruby.rb +79 -0
  427. data/test/wsdl/soaptype/soaptype.wsdl +61 -0
  428. data/test/wsdl/soaptype/test_soaptype.rb +160 -0
  429. data/test/wsdl/test_emptycomplextype.rb +21 -0
  430. data/test/wsdl/test_fault.rb +50 -0
  431. data/test/wsdl/test_multiplefault.rb +39 -0
  432. data/test/xsd/codegen/test_classdef.rb +214 -0
  433. data/test/xsd/noencoding.xml +4 -0
  434. data/test/xsd/test_noencoding.rb +32 -0
  435. data/test/xsd/test_ns.rb +20 -0
  436. data/test/xsd/test_xmlschemaparser.rb +22 -0
  437. data/test/xsd/test_xsd.rb +1523 -0
  438. data/test/xsd/xmllang.xml +43 -0
  439. data/test/xsd/xmlschema.xml +12 -0
  440. metadata +539 -0
@@ -0,0 +1,563 @@
1
+ # SOAP4R - RPC Proxy library.
2
+ # Copyright (C) 2000, 2003-2006 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
3
+
4
+ # This program is copyrighted free software by NAKAMURA, Hiroshi. You can
5
+ # redistribute it and/or modify it under the same terms of Ruby's license;
6
+ # either the dual license version in 2003, or any later version.
7
+
8
+
9
+ require 'soap/soap'
10
+ require 'soap/processor'
11
+ require 'soap/mapping'
12
+ require 'soap/mapping/literalregistry'
13
+ require 'soap/rpc/rpc'
14
+ require 'soap/rpc/element'
15
+ require 'soap/streamHandler'
16
+ require 'soap/mimemessage'
17
+
18
+
19
+ module SOAP
20
+ module RPC
21
+
22
+
23
+ class Proxy
24
+ include SOAP
25
+
26
+ public
27
+
28
+ attr_accessor :soapaction
29
+ attr_accessor :mandatorycharset
30
+ attr_accessor :allow_unqualified_element
31
+ attr_accessor :default_encodingstyle
32
+ attr_accessor :generate_explicit_type
33
+ attr_accessor :return_response_as_xml
34
+ attr_reader :headerhandler
35
+ attr_reader :streamhandler
36
+
37
+ attr_accessor :mapping_registry
38
+ attr_accessor :literal_mapping_registry
39
+
40
+ attr_reader :operation
41
+
42
+ def initialize(endpoint_url, soapaction, options)
43
+ @endpoint_url = endpoint_url
44
+ @soapaction = soapaction
45
+ @options = options
46
+ @protocol_option = options["protocol"] ||= ::SOAP::Property.new
47
+ initialize_streamhandler(@protocol_option)
48
+ @operation = {}
49
+ @operation_by_qname = {}
50
+ @operation_by_soapaction = {}
51
+ @mandatorycharset = nil
52
+ @allow_unqualified_element = true
53
+ @default_encodingstyle = nil
54
+ @generate_explicit_type = true
55
+ @return_response_as_xml = false
56
+ @headerhandler = Header::HandlerSet.new
57
+ @mapping_registry = nil
58
+ @literal_mapping_registry = ::SOAP::Mapping::LiteralRegistry.new
59
+ end
60
+
61
+ def inspect
62
+ "#<#{self.class}:#{@endpoint_url}>"
63
+ end
64
+
65
+ def endpoint_url
66
+ @endpoint_url
67
+ end
68
+
69
+ def endpoint_url=(endpoint_url)
70
+ @endpoint_url = endpoint_url
71
+ reset_stream
72
+ end
73
+
74
+ def reset_stream
75
+ @streamhandler.reset(@endpoint_url)
76
+ end
77
+
78
+ def set_wiredump_file_base(wiredump_file_base)
79
+ @streamhandler.wiredump_file_base = wiredump_file_base
80
+ end
81
+
82
+ def test_loopback_response
83
+ @streamhandler.test_loopback_response
84
+ end
85
+
86
+ def add_rpc_operation(qname, soapaction, name, param_def, opt = {})
87
+ opt[:request_qname] = qname
88
+ opt[:request_style] ||= :rpc
89
+ opt[:response_style] ||= :rpc
90
+ opt[:request_use] ||= :encoded
91
+ opt[:response_use] ||= :encoded
92
+ op = Operation.new(soapaction, param_def, opt)
93
+ assign_operation(name, qname, soapaction, op)
94
+ end
95
+
96
+ def add_document_operation(soapaction, name, param_def, opt = {})
97
+ opt[:request_style] ||= :document
98
+ opt[:response_style] ||= :document
99
+ opt[:request_use] ||= :literal
100
+ opt[:response_use] ||= :literal
101
+ op = Operation.new(soapaction, param_def, opt)
102
+ assign_operation(name, nil, soapaction, op)
103
+ end
104
+
105
+ # add_method is for shortcut of typical rpc/encoded method definition.
106
+ alias add_method add_rpc_operation
107
+ alias add_rpc_method add_rpc_operation
108
+ alias add_document_method add_document_operation
109
+
110
+ def invoke(req_header, req_body, opt = nil)
111
+ opt ||= create_encoding_opt
112
+ env = route(req_header, req_body, opt, opt)
113
+ if @return_response_as_xml
114
+ opt[:response_as_xml]
115
+ else
116
+ env
117
+ end
118
+ end
119
+
120
+ def call(name, *params)
121
+ # name must be used only for lookup
122
+ op_info = lookup_operation(name)
123
+ mapping_opt = create_mapping_opt
124
+ req_header = create_request_header
125
+ req_body = SOAPBody.new(
126
+ op_info.request_body(params, @mapping_registry,
127
+ @literal_mapping_registry, mapping_opt)
128
+ )
129
+ reqopt = create_encoding_opt(
130
+ :soapaction => op_info.soapaction || @soapaction,
131
+ :envelopenamespace => @options["soap.envelope.requestnamespace"],
132
+ :default_encodingstyle =>
133
+ @default_encodingstyle || op_info.request_default_encodingstyle,
134
+ :elementformdefault => op_info.elementformdefault,
135
+ :attributeformdefault => op_info.attributeformdefault
136
+ )
137
+ resopt = create_encoding_opt(
138
+ :envelopenamespace => @options["soap.envelope.responsenamespace"],
139
+ :default_encodingstyle =>
140
+ @default_encodingstyle || op_info.response_default_encodingstyle,
141
+ :elementformdefault => op_info.elementformdefault,
142
+ :attributeformdefault => op_info.attributeformdefault
143
+ )
144
+ env = route(req_header, req_body, reqopt, resopt)
145
+ raise EmptyResponseError unless env
146
+ receive_headers(env.header)
147
+ begin
148
+ check_fault(env.body)
149
+ rescue ::SOAP::FaultError => e
150
+ op_info.raise_fault(e, @mapping_registry, @literal_mapping_registry)
151
+ end
152
+ if @return_response_as_xml
153
+ resopt[:response_as_xml]
154
+ else
155
+ op_info.response_obj(env.body, @mapping_registry,
156
+ @literal_mapping_registry, mapping_opt)
157
+ end
158
+ end
159
+
160
+ def route(req_header, req_body, reqopt, resopt)
161
+ req_env = ::SOAP::SOAPEnvelope.new(req_header, req_body)
162
+ unless reqopt[:envelopenamespace].nil?
163
+ set_envelopenamespace(req_env, reqopt[:envelopenamespace])
164
+ end
165
+ reqopt[:external_content] = nil
166
+ conn_data = marshal(req_env, reqopt)
167
+ if ext = reqopt[:external_content]
168
+ mime = MIMEMessage.new
169
+ ext.each do |k, v|
170
+ mime.add_attachment(v.data)
171
+ end
172
+ mime.add_part(conn_data.send_string + "\r\n")
173
+ mime.close
174
+ conn_data.send_string = mime.content_str
175
+ conn_data.send_contenttype = mime.headers['content-type'].str
176
+ end
177
+ conn_data = @streamhandler.send(@endpoint_url, conn_data,
178
+ reqopt[:soapaction])
179
+ if conn_data.receive_string.empty?
180
+ return nil
181
+ end
182
+ unmarshal(conn_data, resopt)
183
+ end
184
+
185
+ def check_fault(body)
186
+ if body.fault
187
+ raise SOAP::FaultError.new(body.fault)
188
+ end
189
+ end
190
+
191
+ private
192
+
193
+ def initialize_streamhandler(options)
194
+ value = options["streamhandler"]
195
+ if value and !value.empty?
196
+ factory = Property::Util.const_from_name(value)
197
+ else
198
+ factory = HTTPStreamHandler
199
+ end
200
+ @streamhandler = factory.create(options)
201
+ options.add_hook("streamhandler") do |key, value|
202
+ @streamhandler.reset
203
+ if value.respond_to?(:create)
204
+ factory = value
205
+ elsif value and !value.to_str.empty?
206
+ factory = Property::Util.const_from_name(value.to_str)
207
+ else
208
+ factory = HTTPStreamHandler
209
+ end
210
+ options.unlock(true)
211
+ @streamhandler = factory.create(options)
212
+ end
213
+ end
214
+
215
+ def set_envelopenamespace(env, namespace)
216
+ env.elename = XSD::QName.new(namespace, env.elename.name)
217
+ if env.header
218
+ env.header.elename = XSD::QName.new(namespace, env.header.elename.name)
219
+ end
220
+ if env.body
221
+ env.body.elename = XSD::QName.new(namespace, env.body.elename.name)
222
+ end
223
+ end
224
+
225
+ def create_request_header
226
+ headers = @headerhandler.on_outbound
227
+ if headers.empty?
228
+ nil
229
+ else
230
+ h = ::SOAP::SOAPHeader.new
231
+ headers.each do |header|
232
+ h.add(header.elename.name, header)
233
+ end
234
+ h
235
+ end
236
+ end
237
+
238
+ def receive_headers(headers)
239
+ @headerhandler.on_inbound(headers) if headers
240
+ end
241
+
242
+ def marshal(env, opt)
243
+ send_string = Processor.marshal(env, opt)
244
+ StreamHandler::ConnectionData.new(send_string)
245
+ end
246
+
247
+ def unmarshal(conn_data, opt)
248
+ contenttype = conn_data.receive_contenttype
249
+ if /#{MIMEMessage::MultipartContentType}/i =~ contenttype
250
+ opt[:external_content] = {}
251
+ mime = MIMEMessage.parse("Content-Type: " + contenttype,
252
+ conn_data.receive_string)
253
+ mime.parts.each do |part|
254
+ value = Attachment.new(part.content)
255
+ value.contentid = part.contentid
256
+ obj = SOAPAttachment.new(value)
257
+ opt[:external_content][value.contentid] = obj if value.contentid
258
+ end
259
+ opt[:charset] = @mandatorycharset ||
260
+ StreamHandler.parse_media_type(mime.root.headers['content-type'].str)
261
+ env = Processor.unmarshal(mime.root.content, opt)
262
+ if @return_response_as_xml
263
+ opt[:response_as_xml] = mime.root.content
264
+ end
265
+ else
266
+ opt[:charset] = @mandatorycharset ||
267
+ ::SOAP::StreamHandler.parse_media_type(contenttype)
268
+ env = Processor.unmarshal(conn_data.receive_string, opt)
269
+ if @return_response_as_xml
270
+ opt[:response_as_xml] = conn_data.receive_string
271
+ end
272
+ end
273
+ unless env.is_a?(::SOAP::SOAPEnvelope)
274
+ raise ResponseFormatError.new("response is not a SOAP envelope: #{env}")
275
+ end
276
+ env
277
+ end
278
+
279
+ def create_encoding_opt(hash = nil)
280
+ opt = {}
281
+ opt[:default_encodingstyle] = @default_encodingstyle
282
+ opt[:allow_unqualified_element] = @allow_unqualified_element
283
+ opt[:generate_explicit_type] = @generate_explicit_type
284
+ opt[:no_indent] = @options["soap.envelope.no_indent"]
285
+ opt[:use_numeric_character_reference] =
286
+ @options["soap.envelope.use_numeric_character_reference"]
287
+ opt.update(hash) if hash
288
+ opt
289
+ end
290
+
291
+ def create_mapping_opt(hash = nil)
292
+ opt = {
293
+ :external_ces => @options["soap.mapping.external_ces"]
294
+ }
295
+ opt.update(hash) if hash
296
+ opt
297
+ end
298
+
299
+ def assign_operation(name, qname, soapaction, op)
300
+ assigned = false
301
+ if name and !name.empty?
302
+ @operation[name] = op
303
+ assigned = true
304
+ end
305
+ if qname
306
+ @operation_by_qname[qname] = op
307
+ assigned = true
308
+ end
309
+ if soapaction and !soapaction.empty?
310
+ @operation_by_soapaction[soapaction] = op
311
+ assigned = true
312
+ end
313
+ unless assigned
314
+ raise MethodDefinitionError.new("cannot assign operation")
315
+ end
316
+ end
317
+
318
+ def lookup_operation(name_or_qname_or_soapaction)
319
+ if op = @operation[name_or_qname_or_soapaction]
320
+ return op
321
+ end
322
+ if op = @operation_by_qname[name_or_qname_or_soapaction]
323
+ return op
324
+ end
325
+ if op = @operation_by_soapaction[name_or_qname_or_soapaction]
326
+ return op
327
+ end
328
+ raise MethodDefinitionError.new(
329
+ "operation: #{name_or_qname_or_soapaction} not supported")
330
+ end
331
+
332
+ class Operation
333
+ attr_reader :soapaction
334
+ attr_reader :request_style
335
+ attr_reader :response_style
336
+ attr_reader :request_use
337
+ attr_reader :response_use
338
+ attr_reader :elementformdefault
339
+ attr_reader :attributeformdefault
340
+
341
+ def initialize(soapaction, param_def, opt)
342
+ @soapaction = soapaction
343
+ @request_style = opt[:request_style]
344
+ @response_style = opt[:response_style]
345
+ @request_use = opt[:request_use]
346
+ @response_use = opt[:response_use]
347
+ # set nil(unqualified) by default
348
+ @elementformdefault = opt[:elementformdefault]
349
+ @attributeformdefault = opt[:attributeformdefault]
350
+ check_style(@request_style)
351
+ check_style(@response_style)
352
+ check_use(@request_use)
353
+ check_use(@response_use)
354
+ if @request_style == :rpc
355
+ @rpc_request_qname = opt[:request_qname]
356
+ if @rpc_request_qname.nil?
357
+ raise MethodDefinitionError.new("rpc_request_qname must be given")
358
+ end
359
+ @rpc_method_factory =
360
+ RPC::SOAPMethodRequest.new(@rpc_request_qname, param_def, @soapaction)
361
+ else
362
+ @doc_request_qnames = []
363
+ @doc_request_qualified = []
364
+ @doc_response_qnames = []
365
+ @doc_response_qualified = []
366
+ param_def.each do |inout, paramname, typeinfo, eleinfo|
367
+ klass_not_used, nsdef, namedef = typeinfo
368
+ qualified = eleinfo
369
+ if namedef.nil?
370
+ raise MethodDefinitionError.new("qname must be given")
371
+ end
372
+ case inout
373
+ when SOAPMethod::IN
374
+ @doc_request_qnames << XSD::QName.new(nsdef, namedef)
375
+ @doc_request_qualified << qualified
376
+ when SOAPMethod::OUT
377
+ @doc_response_qnames << XSD::QName.new(nsdef, namedef)
378
+ @doc_response_qualified << qualified
379
+ else
380
+ raise MethodDefinitionError.new(
381
+ "illegal inout definition for document style: #{inout}")
382
+ end
383
+ end
384
+ end
385
+ end
386
+
387
+ def request_default_encodingstyle
388
+ (@request_use == :encoded) ? EncodingNamespace : LiteralNamespace
389
+ end
390
+
391
+ def response_default_encodingstyle
392
+ (@response_use == :encoded) ? EncodingNamespace : LiteralNamespace
393
+ end
394
+
395
+ def request_body(values, mapping_registry, literal_mapping_registry, opt)
396
+ if @request_style == :rpc
397
+ request_rpc(values, mapping_registry, literal_mapping_registry, opt)
398
+ else
399
+ request_doc(values, mapping_registry, literal_mapping_registry, opt)
400
+ end
401
+ end
402
+
403
+ def response_obj(body, mapping_registry, literal_mapping_registry, opt)
404
+ if @response_style == :rpc
405
+ response_rpc(body, mapping_registry, literal_mapping_registry, opt)
406
+ else
407
+ unique_result_for_one_element_array(
408
+ response_doc(body, mapping_registry, literal_mapping_registry, opt))
409
+ end
410
+ end
411
+
412
+ def raise_fault(e, mapping_registry, literal_mapping_registry)
413
+ if @response_style == :rpc
414
+ Mapping.fault2exception(e, mapping_registry)
415
+ else
416
+ Mapping.fault2exception(e, literal_mapping_registry)
417
+ end
418
+ end
419
+
420
+ private
421
+
422
+ # nil for [] / 1 for [1] / [1, 2] for [1, 2]
423
+ def unique_result_for_one_element_array(ary)
424
+ ary.size <= 1 ? ary[0] : ary
425
+ end
426
+
427
+ def check_style(style)
428
+ unless [:rpc, :document].include?(style)
429
+ raise MethodDefinitionError.new("unknown style: #{style}")
430
+ end
431
+ end
432
+
433
+ def check_use(use)
434
+ unless [:encoded, :literal].include?(use)
435
+ raise MethodDefinitionError.new("unknown use: #{use}")
436
+ end
437
+ end
438
+
439
+ def request_rpc(values, mapping_registry, literal_mapping_registry, opt)
440
+ if @request_use == :encoded
441
+ request_rpc_enc(values, mapping_registry, opt)
442
+ else
443
+ request_rpc_lit(values, literal_mapping_registry, opt)
444
+ end
445
+ end
446
+
447
+ def request_doc(values, mapping_registry, literal_mapping_registry, opt)
448
+ if @request_use == :encoded
449
+ request_doc_enc(values, mapping_registry, opt)
450
+ else
451
+ request_doc_lit(values, literal_mapping_registry, opt)
452
+ end
453
+ end
454
+
455
+ def request_rpc_enc(values, mapping_registry, opt)
456
+ method = @rpc_method_factory.dup
457
+ names = method.input_params
458
+ obj = create_request_obj(names, values)
459
+ soap = Mapping.obj2soap(obj, mapping_registry, @rpc_request_qname, opt)
460
+ method.set_param(soap)
461
+ method
462
+ end
463
+
464
+ def request_rpc_lit(values, mapping_registry, opt)
465
+ method = @rpc_method_factory.dup
466
+ names = method.input_params
467
+ types = method.get_paramtypes(names)
468
+ params = {}
469
+ idx = 0
470
+ names.each do |name|
471
+ params[name] = Mapping.obj2soap(values[idx], mapping_registry,
472
+ types[idx] || XSD::QName.new, opt)
473
+ idx += 1
474
+ end
475
+ method.set_param(params)
476
+ method
477
+ end
478
+
479
+ def request_doc_enc(values, mapping_registry, opt)
480
+ (0...values.size).collect { |idx|
481
+ ele = Mapping.obj2soap(values[idx], mapping_registry, nil, opt)
482
+ ele.elename = @doc_request_qnames[idx]
483
+ ele.qualified = @doc_request_qualified[idx]
484
+ ele
485
+ }
486
+ end
487
+
488
+ def request_doc_lit(values, mapping_registry, opt)
489
+ (0...values.size).collect { |idx|
490
+ ele = Mapping.obj2soap(values[idx], mapping_registry,
491
+ @doc_request_qnames[idx], opt)
492
+ ele.encodingstyle = LiteralNamespace
493
+ ele.qualified = @doc_request_qualified[idx]
494
+ ele
495
+ }
496
+ end
497
+
498
+ def response_rpc(body, mapping_registry, literal_mapping_registry, opt)
499
+ if @response_use == :encoded
500
+ response_rpc_enc(body, mapping_registry, opt)
501
+ else
502
+ response_rpc_lit(body, literal_mapping_registry, opt)
503
+ end
504
+ end
505
+
506
+ def response_doc(body, mapping_registry, literal_mapping_registry, opt)
507
+ if @response_use == :encoded
508
+ response_doc_enc(body, mapping_registry, opt)
509
+ else
510
+ response_doc_lit(body, literal_mapping_registry, opt)
511
+ end
512
+ end
513
+
514
+ def response_rpc_enc(body, mapping_registry, opt)
515
+ ret = nil
516
+ if body.response
517
+ ret = Mapping.soap2obj(body.response, mapping_registry,
518
+ @rpc_method_factory.retval_class_name, opt)
519
+ end
520
+ if body.outparams
521
+ outparams = body.outparams.collect { |outparam|
522
+ Mapping.soap2obj(outparam, mapping_registry, nil, opt)
523
+ }
524
+ [ret].concat(outparams)
525
+ else
526
+ ret
527
+ end
528
+ end
529
+
530
+ def response_rpc_lit(body, mapping_registry, opt)
531
+ body.root_node.collect { |key, value|
532
+ Mapping.soap2obj(value, mapping_registry,
533
+ @rpc_method_factory.retval_class_name, opt)
534
+ }
535
+ end
536
+
537
+ def response_doc_enc(body, mapping_registry, opt)
538
+ body.collect { |key, value|
539
+ Mapping.soap2obj(value, mapping_registry, nil, opt)
540
+ }
541
+ end
542
+
543
+ def response_doc_lit(body, mapping_registry, opt)
544
+ body.collect { |key, value|
545
+ Mapping.soap2obj(value, mapping_registry)
546
+ }
547
+ end
548
+
549
+ def create_request_obj(names, params)
550
+ o = Object.new
551
+ idx = 0
552
+ while idx < params.length
553
+ o.instance_variable_set('@' + names[idx], params[idx])
554
+ idx += 1
555
+ end
556
+ o
557
+ end
558
+ end
559
+ end
560
+
561
+
562
+ end
563
+ end