tomdz-soap4r 1.5.8.20111103171510

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 (427) hide show
  1. data/bin/wsdl2ruby.rb +139 -0
  2. data/bin/xsd2ruby.rb +91 -0
  3. data/lib/soap/attachment.rb +109 -0
  4. data/lib/soap/attrproxy.rb +35 -0
  5. data/lib/soap/baseData.rb +1095 -0
  6. data/lib/soap/element.rb +278 -0
  7. data/lib/soap/encodingstyle/aspDotNetHandler.rb +208 -0
  8. data/lib/soap/encodingstyle/handler.rb +121 -0
  9. data/lib/soap/encodingstyle/literalHandler.rb +196 -0
  10. data/lib/soap/encodingstyle/soapHandler.rb +560 -0
  11. data/lib/soap/filter.rb +14 -0
  12. data/lib/soap/filter/filterchain.rb +52 -0
  13. data/lib/soap/filter/handler.rb +32 -0
  14. data/lib/soap/filter/streamhandler.rb +30 -0
  15. data/lib/soap/generator.rb +299 -0
  16. data/lib/soap/header/handler.rb +62 -0
  17. data/lib/soap/header/handlerset.rb +71 -0
  18. data/lib/soap/header/mappinghandler.rb +48 -0
  19. data/lib/soap/header/simplehandler.rb +45 -0
  20. data/lib/soap/httpconfigloader.rb +140 -0
  21. data/lib/soap/mapping.rb +13 -0
  22. data/lib/soap/mapping/encodedregistry.rb +539 -0
  23. data/lib/soap/mapping/factory.rb +389 -0
  24. data/lib/soap/mapping/literalregistry.rb +392 -0
  25. data/lib/soap/mapping/mapping.rb +577 -0
  26. data/lib/soap/mapping/registry.rb +296 -0
  27. data/lib/soap/mapping/rubytypeFactory.rb +446 -0
  28. data/lib/soap/mapping/schemadefinition.rb +171 -0
  29. data/lib/soap/mapping/typeMap.rb +107 -0
  30. data/lib/soap/mapping/wsdlencodedregistry.rb +212 -0
  31. data/lib/soap/mapping/wsdlliteralregistry.rb +249 -0
  32. data/lib/soap/marshal.rb +60 -0
  33. data/lib/soap/mimemessage.rb +243 -0
  34. data/lib/soap/nestedexception.rb +43 -0
  35. data/lib/soap/netHttpClient.rb +242 -0
  36. data/lib/soap/ns.rb +39 -0
  37. data/lib/soap/parser.rb +253 -0
  38. data/lib/soap/processor.rb +67 -0
  39. data/lib/soap/property.rb +340 -0
  40. data/lib/soap/proxy.rb +15 -0
  41. data/lib/soap/rpc/cgistub.rb +248 -0
  42. data/lib/soap/rpc/driver.rb +222 -0
  43. data/lib/soap/rpc/element.rb +375 -0
  44. data/lib/soap/rpc/httpserver.rb +143 -0
  45. data/lib/soap/rpc/methodDef.rb +69 -0
  46. data/lib/soap/rpc/proxy.rb +573 -0
  47. data/lib/soap/rpc/router.rb +663 -0
  48. data/lib/soap/rpc/rpc.rb +26 -0
  49. data/lib/soap/rpc/soaplet.rb +201 -0
  50. data/lib/soap/rpc/standaloneServer.rb +44 -0
  51. data/lib/soap/soap.rb +154 -0
  52. data/lib/soap/streamHandler.rb +302 -0
  53. data/lib/soap/version.rb +9 -0
  54. data/lib/soap/wsdlDriver.rb +165 -0
  55. data/lib/wsdl/binding.rb +66 -0
  56. data/lib/wsdl/data.rb +65 -0
  57. data/lib/wsdl/definitions.rb +237 -0
  58. data/lib/wsdl/documentation.rb +33 -0
  59. data/lib/wsdl/import.rb +81 -0
  60. data/lib/wsdl/importer.rb +39 -0
  61. data/lib/wsdl/info.rb +51 -0
  62. data/lib/wsdl/message.rb +55 -0
  63. data/lib/wsdl/operation.rb +152 -0
  64. data/lib/wsdl/operationBinding.rb +241 -0
  65. data/lib/wsdl/param.rb +94 -0
  66. data/lib/wsdl/parser.rb +165 -0
  67. data/lib/wsdl/part.rb +53 -0
  68. data/lib/wsdl/port.rb +67 -0
  69. data/lib/wsdl/portType.rb +76 -0
  70. data/lib/wsdl/service.rb +62 -0
  71. data/lib/wsdl/soap/address.rb +41 -0
  72. data/lib/wsdl/soap/binding.rb +50 -0
  73. data/lib/wsdl/soap/body.rb +59 -0
  74. data/lib/wsdl/soap/cgiStubCreator.rb +93 -0
  75. data/lib/wsdl/soap/classDefCreator.rb +434 -0
  76. data/lib/wsdl/soap/classDefCreatorSupport.rb +241 -0
  77. data/lib/wsdl/soap/classNameCreator.rb +55 -0
  78. data/lib/wsdl/soap/clientSkeltonCreator.rb +107 -0
  79. data/lib/wsdl/soap/complexType.rb +174 -0
  80. data/lib/wsdl/soap/data.rb +43 -0
  81. data/lib/wsdl/soap/definitions.rb +201 -0
  82. data/lib/wsdl/soap/driverCreator.rb +121 -0
  83. data/lib/wsdl/soap/element.rb +34 -0
  84. data/lib/wsdl/soap/encodedMappingRegistryCreator.rb +74 -0
  85. data/lib/wsdl/soap/fault.rb +57 -0
  86. data/lib/wsdl/soap/header.rb +87 -0
  87. data/lib/wsdl/soap/headerfault.rb +57 -0
  88. data/lib/wsdl/soap/literalMappingRegistryCreator.rb +116 -0
  89. data/lib/wsdl/soap/mappingRegistryCreator.rb +59 -0
  90. data/lib/wsdl/soap/mappingRegistryCreatorSupport.rb +377 -0
  91. data/lib/wsdl/soap/methodDefCreator.rb +200 -0
  92. data/lib/wsdl/soap/operation.rb +113 -0
  93. data/lib/wsdl/soap/servantSkeltonCreator.rb +92 -0
  94. data/lib/wsdl/soap/servletStubCreator.rb +105 -0
  95. data/lib/wsdl/soap/standaloneServerStubCreator.rb +101 -0
  96. data/lib/wsdl/soap/wsdl2ruby.rb +226 -0
  97. data/lib/wsdl/types.rb +45 -0
  98. data/lib/wsdl/wsdl.rb +25 -0
  99. data/lib/wsdl/xmlSchema/all.rb +25 -0
  100. data/lib/wsdl/xmlSchema/annotation.rb +35 -0
  101. data/lib/wsdl/xmlSchema/any.rb +62 -0
  102. data/lib/wsdl/xmlSchema/anyAttribute.rb +49 -0
  103. data/lib/wsdl/xmlSchema/attribute.rb +105 -0
  104. data/lib/wsdl/xmlSchema/attributeGroup.rb +69 -0
  105. data/lib/wsdl/xmlSchema/choice.rb +59 -0
  106. data/lib/wsdl/xmlSchema/complexContent.rb +98 -0
  107. data/lib/wsdl/xmlSchema/complexExtension.rb +120 -0
  108. data/lib/wsdl/xmlSchema/complexRestriction.rb +105 -0
  109. data/lib/wsdl/xmlSchema/complexType.rb +194 -0
  110. data/lib/wsdl/xmlSchema/content.rb +96 -0
  111. data/lib/wsdl/xmlSchema/data.rb +117 -0
  112. data/lib/wsdl/xmlSchema/element.rb +154 -0
  113. data/lib/wsdl/xmlSchema/enumeration.rb +37 -0
  114. data/lib/wsdl/xmlSchema/fractiondigits.rb +38 -0
  115. data/lib/wsdl/xmlSchema/group.rb +101 -0
  116. data/lib/wsdl/xmlSchema/import.rb +54 -0
  117. data/lib/wsdl/xmlSchema/importHandler.rb +46 -0
  118. data/lib/wsdl/xmlSchema/importer.rb +103 -0
  119. data/lib/wsdl/xmlSchema/include.rb +49 -0
  120. data/lib/wsdl/xmlSchema/length.rb +38 -0
  121. data/lib/wsdl/xmlSchema/list.rb +49 -0
  122. data/lib/wsdl/xmlSchema/maxexclusive.rb +38 -0
  123. data/lib/wsdl/xmlSchema/maxinclusive.rb +38 -0
  124. data/lib/wsdl/xmlSchema/maxlength.rb +38 -0
  125. data/lib/wsdl/xmlSchema/minexclusive.rb +38 -0
  126. data/lib/wsdl/xmlSchema/mininclusive.rb +38 -0
  127. data/lib/wsdl/xmlSchema/minlength.rb +38 -0
  128. data/lib/wsdl/xmlSchema/parser.rb +168 -0
  129. data/lib/wsdl/xmlSchema/pattern.rb +37 -0
  130. data/lib/wsdl/xmlSchema/ref.rb +34 -0
  131. data/lib/wsdl/xmlSchema/schema.rb +179 -0
  132. data/lib/wsdl/xmlSchema/sequence.rb +55 -0
  133. data/lib/wsdl/xmlSchema/simpleContent.rb +70 -0
  134. data/lib/wsdl/xmlSchema/simpleExtension.rb +63 -0
  135. data/lib/wsdl/xmlSchema/simpleRestriction.rb +133 -0
  136. data/lib/wsdl/xmlSchema/simpleType.rb +88 -0
  137. data/lib/wsdl/xmlSchema/totaldigits.rb +38 -0
  138. data/lib/wsdl/xmlSchema/union.rb +36 -0
  139. data/lib/wsdl/xmlSchema/unique.rb +35 -0
  140. data/lib/wsdl/xmlSchema/whitespace.rb +38 -0
  141. data/lib/wsdl/xmlSchema/xsd2ruby.rb +176 -0
  142. data/lib/xsd/charset.rb +190 -0
  143. data/lib/xsd/codegen.rb +13 -0
  144. data/lib/xsd/codegen/classdef.rb +209 -0
  145. data/lib/xsd/codegen/commentdef.rb +35 -0
  146. data/lib/xsd/codegen/gensupport.rb +277 -0
  147. data/lib/xsd/codegen/methoddef.rb +71 -0
  148. data/lib/xsd/codegen/moduledef.rb +209 -0
  149. data/lib/xsd/datatypes.rb +1466 -0
  150. data/lib/xsd/datatypes1999.rb +21 -0
  151. data/lib/xsd/iconvcharset.rb +34 -0
  152. data/lib/xsd/mapping.rb +69 -0
  153. data/lib/xsd/namedelements.rb +133 -0
  154. data/lib/xsd/ns.rb +183 -0
  155. data/lib/xsd/qname.rb +80 -0
  156. data/lib/xsd/xmlparser.rb +77 -0
  157. data/lib/xsd/xmlparser/libxmlparser.rb +116 -0
  158. data/lib/xsd/xmlparser/parser.rb +101 -0
  159. data/lib/xsd/xmlparser/rexmlparser.rb +59 -0
  160. data/lib/xsd/xmlparser/xmlparser.rb +51 -0
  161. data/lib/xsd/xmlparser/xmlscanner.rb +150 -0
  162. data/test/16runner.rb +69 -0
  163. data/test/helper.rb +7 -0
  164. data/test/interopR2/README.txt +2 -0
  165. data/test/interopR2/SOAPBuildersInterop_R2.wsdl +461 -0
  166. data/test/interopR2/SOAPBuildersInterop_R2GrB.wsdl +19 -0
  167. data/test/interopR2/base.rb +289 -0
  168. data/test/interopR2/client.NetRemoting.rb +18 -0
  169. data/test/interopR2/client.rb +1235 -0
  170. data/test/interopR2/client4S4C.rb +16 -0
  171. data/test/interopR2/client4S4C2.rb +15 -0
  172. data/test/interopR2/clientASP.NET.rb +18 -0
  173. data/test/interopR2/clientApacheAxis.rb +17 -0
  174. data/test/interopR2/clientApacheSOAP.rb +18 -0
  175. data/test/interopR2/clientBEAWebLogic.rb +18 -0
  176. data/test/interopR2/clientBase.rb +1968 -0
  177. data/test/interopR2/clientCapeConnect.rb +19 -0
  178. data/test/interopR2/clientDelphi.rb +20 -0
  179. data/test/interopR2/clientEasySoap.rb +15 -0
  180. data/test/interopR2/clientFrontier.rb +26 -0
  181. data/test/interopR2/clientGLUE.rb +33 -0
  182. data/test/interopR2/clientHP.rb +14 -0
  183. data/test/interopR2/clientJAX-RPC.rb +20 -0
  184. data/test/interopR2/clientJSOAP.rb +15 -0
  185. data/test/interopR2/clientKafkaXSLT.rb +16 -0
  186. data/test/interopR2/clientMSSOAPToolkit2.0.rb +18 -0
  187. data/test/interopR2/clientMSSOAPToolkit3.0.rb +18 -0
  188. data/test/interopR2/clientNuSOAP.rb +20 -0
  189. data/test/interopR2/clientNuWave.rb +16 -0
  190. data/test/interopR2/clientOpenLink.rb +16 -0
  191. data/test/interopR2/clientOracle.rb +16 -0
  192. data/test/interopR2/clientPEAR.rb +19 -0
  193. data/test/interopR2/clientPhalanx.rb +19 -0
  194. data/test/interopR2/clientSIMACE.rb +19 -0
  195. data/test/interopR2/clientSOAP4R.rb +19 -0
  196. data/test/interopR2/clientSOAP__Lite.rb +15 -0
  197. data/test/interopR2/clientSQLData.rb +19 -0
  198. data/test/interopR2/clientSilverStream.rb +18 -0
  199. data/test/interopR2/clientSpray2001.rb +18 -0
  200. data/test/interopR2/clientSun.rb +20 -0
  201. data/test/interopR2/clientVWOpentalkSoap.rb +20 -0
  202. data/test/interopR2/clientWASP.rb +20 -0
  203. data/test/interopR2/clientWASPC.rb +19 -0
  204. data/test/interopR2/clientWebMethods.rb +16 -0
  205. data/test/interopR2/clientWhiteMesa.rb +29 -0
  206. data/test/interopR2/clientWingfoot.rb +16 -0
  207. data/test/interopR2/clientXMLBus.rb +20 -0
  208. data/test/interopR2/clientXMLRPC-EPI.rb +18 -0
  209. data/test/interopR2/clientXSOAP.rb +15 -0
  210. data/test/interopR2/clientZSI.rb +20 -0
  211. data/test/interopR2/clienteSOAP.rb +19 -0
  212. data/test/interopR2/clientgSOAP.rb +19 -0
  213. data/test/interopR2/clientkSOAP.rb +18 -0
  214. data/test/interopR2/iSimonReg.rb +113 -0
  215. data/test/interopR2/interopResultBase.rb +115 -0
  216. data/test/interopR2/interopService.rb +248 -0
  217. data/test/interopR2/rwikiInteropService.rb +106 -0
  218. data/test/interopR2/server.cgi +271 -0
  219. data/test/interopR2/server.rb +276 -0
  220. data/test/interopR2/simonReg.rb +124 -0
  221. data/test/interopR2/test.sh +49 -0
  222. data/test/interopR4/client.rb +113 -0
  223. data/test/runner.rb +8 -0
  224. data/test/sm11/classDef.rb +157 -0
  225. data/test/sm11/client.rb +543 -0
  226. data/test/sm11/driver.rb +184 -0
  227. data/test/sm11/servant.rb +1068 -0
  228. data/test/sm11/server.rb +26 -0
  229. data/test/soap/asp.net/hello.wsdl +96 -0
  230. data/test/soap/asp.net/test_aspdotnet.rb +124 -0
  231. data/test/soap/auth/htdigest +2 -0
  232. data/test/soap/auth/htpasswd +2 -0
  233. data/test/soap/auth/test_basic.rb +118 -0
  234. data/test/soap/auth/test_digest.rb +119 -0
  235. data/test/soap/calc/calc.rb +18 -0
  236. data/test/soap/calc/calc2.rb +30 -0
  237. data/test/soap/calc/server.cgi +16 -0
  238. data/test/soap/calc/server.rb +18 -0
  239. data/test/soap/calc/server2.rb +21 -0
  240. data/test/soap/calc/test_calc.rb +53 -0
  241. data/test/soap/calc/test_calc2.rb +57 -0
  242. data/test/soap/calc/test_calc_cgi.rb +72 -0
  243. data/test/soap/case/test_mapping.rb +58 -0
  244. data/test/soap/fault/test_customfault.rb +61 -0
  245. data/test/soap/fault/test_fault.rb +47 -0
  246. data/test/soap/fault/test_soaparray.rb +36 -0
  247. data/test/soap/filter/test_filter.rb +147 -0
  248. data/test/soap/header/server.cgi +121 -0
  249. data/test/soap/header/test_authheader.rb +241 -0
  250. data/test/soap/header/test_authheader_cgi.rb +122 -0
  251. data/test/soap/header/test_simplehandler.rb +117 -0
  252. data/test/soap/helloworld/hw_s.rb +17 -0
  253. data/test/soap/helloworld/test_helloworld.rb +45 -0
  254. data/test/soap/htpasswd +2 -0
  255. data/test/soap/literalArrayMapping/amazonEc.rb +4779 -0
  256. data/test/soap/literalArrayMapping/amazonEcDriver.rb +173 -0
  257. data/test/soap/literalArrayMapping/amazonresponse.xml +100 -0
  258. data/test/soap/literalArrayMapping/test_definedarray.rb +35 -0
  259. data/test/soap/marshal/marshaltestlib.rb +498 -0
  260. data/test/soap/marshal/test_digraph.rb +57 -0
  261. data/test/soap/marshal/test_marshal.rb +28 -0
  262. data/test/soap/marshal/test_struct.rb +48 -0
  263. data/test/soap/ssl/README +1 -0
  264. data/test/soap/ssl/ca.cert +23 -0
  265. data/test/soap/ssl/client.cert +19 -0
  266. data/test/soap/ssl/client.key +15 -0
  267. data/test/soap/ssl/server.cert +19 -0
  268. data/test/soap/ssl/server.key +15 -0
  269. data/test/soap/ssl/sslsvr.rb +59 -0
  270. data/test/soap/ssl/subca.cert +21 -0
  271. data/test/soap/ssl/test_ssl.rb +236 -0
  272. data/test/soap/struct/test_struct.rb +71 -0
  273. data/test/soap/styleuse/client.rb +21 -0
  274. data/test/soap/styleuse/server.rb +87 -0
  275. data/test/soap/swa/test_file.rb +76 -0
  276. data/test/soap/test_basetype.rb +1091 -0
  277. data/test/soap/test_cookie.rb +113 -0
  278. data/test/soap/test_custom_ns.rb +106 -0
  279. data/test/soap/test_custommap.rb +111 -0
  280. data/test/soap/test_empty.rb +106 -0
  281. data/test/soap/test_envelopenamespace.rb +86 -0
  282. data/test/soap/test_extraattr.rb +55 -0
  283. data/test/soap/test_generator.rb +32 -0
  284. data/test/soap/test_httpconfigloader.rb +72 -0
  285. data/test/soap/test_mapping.rb +132 -0
  286. data/test/soap/test_nestedexception.rb +71 -0
  287. data/test/soap/test_nil.rb +71 -0
  288. data/test/soap/test_no_indent.rb +89 -0
  289. data/test/soap/test_property.rb +429 -0
  290. data/test/soap/test_response_as_xml.rb +118 -0
  291. data/test/soap/test_soapelement.rb +139 -0
  292. data/test/soap/test_streamhandler.rb +271 -0
  293. data/test/soap/test_styleuse.rb +327 -0
  294. data/test/soap/wsdlDriver/README.txt +2 -0
  295. data/test/soap/wsdlDriver/calc.wsdl +126 -0
  296. data/test/soap/wsdlDriver/document.wsdl +54 -0
  297. data/test/soap/wsdlDriver/echo_version.rb +30 -0
  298. data/test/soap/wsdlDriver/simpletype.wsdl +63 -0
  299. data/test/soap/wsdlDriver/test_calc.rb +72 -0
  300. data/test/soap/wsdlDriver/test_document.rb +72 -0
  301. data/test/soap/wsdlDriver/test_simpletype.rb +82 -0
  302. data/test/testutil.rb +55 -0
  303. data/test/wsdl/abstract/abstract.wsdl +176 -0
  304. data/test/wsdl/abstract/test_abstract.rb +160 -0
  305. data/test/wsdl/anonymous/expectedClassDef.rb +129 -0
  306. data/test/wsdl/anonymous/expectedDriver.rb +60 -0
  307. data/test/wsdl/anonymous/expectedMappingRegistry.rb +177 -0
  308. data/test/wsdl/anonymous/lp.wsdl +147 -0
  309. data/test/wsdl/anonymous/test_anonymous.rb +131 -0
  310. data/test/wsdl/any/any.wsdl +114 -0
  311. data/test/wsdl/any/expectedDriver.rb +69 -0
  312. data/test/wsdl/any/expectedEcho.rb +58 -0
  313. data/test/wsdl/any/expectedMappingRegistry.rb +64 -0
  314. data/test/wsdl/any/expectedService.rb +70 -0
  315. data/test/wsdl/any/test_any.rb +194 -0
  316. data/test/wsdl/axisArray/axisArray.wsdl +87 -0
  317. data/test/wsdl/axisArray/test_axisarray.rb +125 -0
  318. data/test/wsdl/choice/choice.wsdl +167 -0
  319. data/test/wsdl/choice/test_choice.rb +311 -0
  320. data/test/wsdl/complexcontent/complexContent.wsdl +83 -0
  321. data/test/wsdl/complexcontent/test_echo.rb +91 -0
  322. data/test/wsdl/datetime/DatetimeService.rb +45 -0
  323. data/test/wsdl/datetime/datetime.rb +0 -0
  324. data/test/wsdl/datetime/datetime.wsdl +45 -0
  325. data/test/wsdl/datetime/datetimeServant.rb +23 -0
  326. data/test/wsdl/datetime/test_datetime.rb +88 -0
  327. data/test/wsdl/document/array/double.wsdl +161 -0
  328. data/test/wsdl/document/array/test_array.rb +202 -0
  329. data/test/wsdl/document/document.wsdl +76 -0
  330. data/test/wsdl/document/number.wsdl +54 -0
  331. data/test/wsdl/document/ping_nosoapaction.wsdl +66 -0
  332. data/test/wsdl/document/test_nosoapaction.rb +103 -0
  333. data/test/wsdl/document/test_number.rb +93 -0
  334. data/test/wsdl/document/test_rpc.rb +356 -0
  335. data/test/wsdl/emptycomplextype.wsdl +31 -0
  336. data/test/wsdl/fault/fault.wsdl +79 -0
  337. data/test/wsdl/fault/multifault.wsdl +96 -0
  338. data/test/wsdl/fault/test_fault.rb +120 -0
  339. data/test/wsdl/fault/test_multifault.rb +135 -0
  340. data/test/wsdl/group/expectedClassdef.rb +59 -0
  341. data/test/wsdl/group/expectedDriver.rb +52 -0
  342. data/test/wsdl/group/expectedMappingRegistry.rb +68 -0
  343. data/test/wsdl/group/group.wsdl +88 -0
  344. data/test/wsdl/group/test_rpc.rb +146 -0
  345. data/test/wsdl/list/list.wsdl +93 -0
  346. data/test/wsdl/list/test_list.rb +125 -0
  347. data/test/wsdl/map/map.wsdl +92 -0
  348. data/test/wsdl/map/map.xml +43 -0
  349. data/test/wsdl/map/test_map.rb +100 -0
  350. data/test/wsdl/marshal/person.wsdl +21 -0
  351. data/test/wsdl/marshal/person_org.rb +24 -0
  352. data/test/wsdl/marshal/test_wsdlmarshal.rb +76 -0
  353. data/test/wsdl/multiplefault.wsdl +75 -0
  354. data/test/wsdl/oneway/oneway.wsdl +36 -0
  355. data/test/wsdl/oneway/test_oneway.rb +109 -0
  356. data/test/wsdl/overload/expectedClient.rb +38 -0
  357. data/test/wsdl/overload/expectedDriver.rb +62 -0
  358. data/test/wsdl/overload/expectedServant.rb +36 -0
  359. data/test/wsdl/overload/overload.wsdl +70 -0
  360. data/test/wsdl/overload/test_overload.rb +132 -0
  361. data/test/wsdl/qualified/lp.wsdl +47 -0
  362. data/test/wsdl/qualified/lp.xsd +26 -0
  363. data/test/wsdl/qualified/np.wsdl +51 -0
  364. data/test/wsdl/qualified/test_qualified.rb +138 -0
  365. data/test/wsdl/qualified/test_unqualified.rb +139 -0
  366. data/test/wsdl/raa/RAAService.rb +126 -0
  367. data/test/wsdl/raa/README.txt +8 -0
  368. data/test/wsdl/raa/expectedClassDef.rb +101 -0
  369. data/test/wsdl/raa/expectedDriver.rb +97 -0
  370. data/test/wsdl/raa/expectedMappingRegistry.rb +122 -0
  371. data/test/wsdl/raa/raa.wsdl +264 -0
  372. data/test/wsdl/raa/test_raa.rb +127 -0
  373. data/test/wsdl/ref/expectedDriver.rb +52 -0
  374. data/test/wsdl/ref/expectedProduct.rb +244 -0
  375. data/test/wsdl/ref/product.wsdl +147 -0
  376. data/test/wsdl/ref/test_ref.rb +269 -0
  377. data/test/wsdl/rpc/rpc.wsdl +109 -0
  378. data/test/wsdl/rpc/test-rpc-lit.wsdl +371 -0
  379. data/test/wsdl/rpc/test_rpc.rb +177 -0
  380. data/test/wsdl/rpc/test_rpc_lit.rb +471 -0
  381. data/test/wsdl/simplecontent/simplecontent.wsdl +84 -0
  382. data/test/wsdl/simplecontent/test_simplecontent.rb +103 -0
  383. data/test/wsdl/simpletype/rpc/expectedClient.rb +35 -0
  384. data/test/wsdl/simpletype/rpc/expectedDriver.rb +59 -0
  385. data/test/wsdl/simpletype/rpc/expectedEchoVersion.rb +37 -0
  386. data/test/wsdl/simpletype/rpc/expectedMappingRegistry.rb +58 -0
  387. data/test/wsdl/simpletype/rpc/expectedServant.rb +33 -0
  388. data/test/wsdl/simpletype/rpc/expectedService.rb +56 -0
  389. data/test/wsdl/simpletype/rpc/rpc.wsdl +98 -0
  390. data/test/wsdl/simpletype/rpc/test_rpc.rb +53 -0
  391. data/test/wsdl/simpletype/simpletype.wsdl +114 -0
  392. data/test/wsdl/simpletype/test_simpletype.rb +93 -0
  393. data/test/wsdl/soap/soapbodyparts.wsdl +103 -0
  394. data/test/wsdl/soap/test_soapbodyparts.rb +80 -0
  395. data/test/wsdl/soap/wsdl2ruby/expectedClassdef.rb +22 -0
  396. data/test/wsdl/soap/wsdl2ruby/expectedClient.rb +35 -0
  397. data/test/wsdl/soap/wsdl2ruby/expectedDriver.rb +59 -0
  398. data/test/wsdl/soap/wsdl2ruby/expectedMappingRegistry.rb +37 -0
  399. data/test/wsdl/soap/wsdl2ruby/expectedServant.rb +33 -0
  400. data/test/wsdl/soap/wsdl2ruby/expectedService.cgi +49 -0
  401. data/test/wsdl/soap/wsdl2ruby/expectedService.rb +56 -0
  402. data/test/wsdl/soap/wsdl2ruby/rpc.wsdl +80 -0
  403. data/test/wsdl/soap/wsdl2ruby/section/expectedClassdef.rb +38 -0
  404. data/test/wsdl/soap/wsdl2ruby/section/section.xsd +31 -0
  405. data/test/wsdl/soap/wsdl2ruby/section/test_section.rb +54 -0
  406. data/test/wsdl/soap/wsdl2ruby/soapenc/soapenc.wsdl +64 -0
  407. data/test/wsdl/soap/wsdl2ruby/soapenc/test_soapenc.rb +84 -0
  408. data/test/wsdl/soap/wsdl2ruby/test_wsdl2ruby.rb +103 -0
  409. data/test/wsdl/soaptype/soaptype.wsdl +61 -0
  410. data/test/wsdl/soaptype/test_soaptype.rb +179 -0
  411. data/test/wsdl/test_emptycomplextype.rb +22 -0
  412. data/test/wsdl/test_fault.rb +51 -0
  413. data/test/wsdl/test_multiplefault.rb +42 -0
  414. data/test/xsd/codegen/test_classdef.rb +245 -0
  415. data/test/xsd/noencoding.xml +4 -0
  416. data/test/xsd/test_noencoding.rb +33 -0
  417. data/test/xsd/test_ns.rb +42 -0
  418. data/test/xsd/test_xmlschemaparser.rb +23 -0
  419. data/test/xsd/test_xsd.rb +1639 -0
  420. data/test/xsd/xmllang.xml +43 -0
  421. data/test/xsd/xmlschema.xml +12 -0
  422. data/test/xsd/xsd2ruby/expected_mysample.rb +66 -0
  423. data/test/xsd/xsd2ruby/expected_mysample_mapper.rb +12 -0
  424. data/test/xsd/xsd2ruby/expected_mysample_mapping_registry.rb +52 -0
  425. data/test/xsd/xsd2ruby/section.xsd +49 -0
  426. data/test/xsd/xsd2ruby/test_xsd2ruby.rb +91 -0
  427. metadata +490 -0
@@ -0,0 +1,222 @@
1
+ # encoding: ASCII-8BIT
2
+ # SOAP4R - SOAP RPC driver
3
+ # Copyright (C) 2000-2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
4
+
5
+ # This program is copyrighted free software by NAKAMURA, Hiroshi. You can
6
+ # redistribute it and/or modify it under the same terms of Ruby's license;
7
+ # either the dual license version in 2003, or any later version.
8
+
9
+
10
+ require 'soap/soap'
11
+ require 'soap/attrproxy'
12
+ require 'soap/mapping'
13
+ require 'soap/rpc/rpc'
14
+ require 'soap/rpc/proxy'
15
+ require 'soap/rpc/element'
16
+ require 'soap/streamHandler'
17
+ require 'soap/property'
18
+ require 'soap/header/handlerset'
19
+
20
+
21
+ module SOAP
22
+ module RPC
23
+
24
+
25
+ class Driver
26
+ include AttrProxy
27
+
28
+ attr_proxy :endpoint_url, true
29
+ attr_proxy :mapping_registry, true
30
+ attr_proxy :literal_mapping_registry, true
31
+ attr_proxy :allow_unqualified_element, true
32
+ attr_proxy :default_encodingstyle, true
33
+ attr_proxy :generate_explicit_type, true
34
+ attr_proxy :use_default_namespace, true
35
+ attr_proxy :return_response_as_xml, true
36
+ attr_proxy :headerhandler
37
+ attr_proxy :filterchain
38
+ attr_proxy :streamhandler
39
+ attr_proxy :test_loopback_response
40
+ attr_proxy :reset_stream
41
+
42
+ attr_reader :proxy
43
+ attr_reader :options
44
+ attr_accessor :soapaction
45
+
46
+ def inspect
47
+ "#<#{self.class}:#{@proxy.inspect}>"
48
+ end
49
+
50
+ def httpproxy
51
+ options["protocol.http.proxy"]
52
+ end
53
+
54
+ def httpproxy=(httpproxy)
55
+ options["protocol.http.proxy"] = httpproxy
56
+ end
57
+
58
+ def wiredump_dev
59
+ options["protocol.http.wiredump_dev"]
60
+ end
61
+
62
+ def wiredump_dev=(wiredump_dev)
63
+ options["protocol.http.wiredump_dev"] = wiredump_dev
64
+ end
65
+
66
+ def mandatorycharset
67
+ options["protocol.mandatorycharset"]
68
+ end
69
+
70
+ def mandatorycharset=(mandatorycharset)
71
+ options["protocol.mandatorycharset"] = mandatorycharset
72
+ end
73
+
74
+ def wiredump_file_base
75
+ options["protocol.wiredump_file_base"]
76
+ end
77
+
78
+ def wiredump_file_base=(wiredump_file_base)
79
+ options["protocol.wiredump_file_base"] = wiredump_file_base
80
+ end
81
+
82
+ def initialize(endpoint_url, namespace = nil, soapaction = nil)
83
+ @namespace = namespace
84
+ @soapaction = soapaction
85
+ @options = setup_options
86
+ @wiredump_file_base = nil
87
+ @proxy = Proxy.new(endpoint_url, @soapaction, @options)
88
+ end
89
+
90
+ def loadproperty(propertyname)
91
+ unless options.loadproperty(propertyname)
92
+ raise LoadError.new("No such property to load -- #{propertyname}")
93
+ end
94
+ end
95
+
96
+ def add_rpc_method(name, *params)
97
+ add_rpc_method_with_soapaction_as(name, name, @soapaction, *params)
98
+ end
99
+
100
+ def add_rpc_method_as(name, name_as, *params)
101
+ add_rpc_method_with_soapaction_as(name, name_as, @soapaction, *params)
102
+ end
103
+
104
+ def add_rpc_method_with_soapaction(name, soapaction, *params)
105
+ add_rpc_method_with_soapaction_as(name, name, soapaction, *params)
106
+ end
107
+
108
+ def add_rpc_method_with_soapaction_as(name, name_as, soapaction, *params)
109
+ param_def = SOAPMethod.create_rpc_param_def(params)
110
+ qname = XSD::QName.new(@namespace, name_as)
111
+ @proxy.add_rpc_method(qname, soapaction, name, param_def)
112
+ add_rpc_method_interface(name, param_def)
113
+ end
114
+
115
+ # add_method is for shortcut of typical rpc/encoded method definition.
116
+ alias add_method add_rpc_method
117
+ alias add_method_as add_rpc_method_as
118
+ alias add_method_with_soapaction add_rpc_method_with_soapaction
119
+ alias add_method_with_soapaction_as add_rpc_method_with_soapaction_as
120
+
121
+ def add_document_method(name, soapaction, req_qname, res_qname)
122
+ param_def = SOAPMethod.create_doc_param_def(req_qname, res_qname)
123
+ @proxy.add_document_method(soapaction, name, param_def)
124
+ add_document_method_interface(name, param_def)
125
+ end
126
+
127
+ def add_rpc_operation(qname, soapaction, name, param_def, opt = {})
128
+ @proxy.add_rpc_operation(qname, soapaction, name, param_def, opt)
129
+ add_rpc_method_interface(name, param_def)
130
+ end
131
+
132
+ def add_document_operation(soapaction, name, param_def, opt = {})
133
+ @proxy.add_document_operation(soapaction, name, param_def, opt)
134
+ add_document_method_interface(name, param_def)
135
+ end
136
+
137
+ def invoke(headers, body)
138
+ if headers and !headers.is_a?(SOAPHeader)
139
+ headers = create_header(headers)
140
+ end
141
+ set_wiredump_file_base(body.elename.name)
142
+ env = @proxy.invoke(headers, body)
143
+ if env.nil?
144
+ return nil, nil
145
+ else
146
+ return env.header, env.body
147
+ end
148
+ end
149
+
150
+ def call(name, *params)
151
+ set_wiredump_file_base(name)
152
+ @proxy.call(name, *params)
153
+ end
154
+
155
+ private
156
+
157
+ def attrproxy
158
+ @proxy
159
+ end
160
+
161
+ def set_wiredump_file_base(name)
162
+ if @wiredump_file_base
163
+ @proxy.set_wiredump_file_base("#{@wiredump_file_base}_#{name}")
164
+ end
165
+ end
166
+
167
+ def create_header(headers)
168
+ header = SOAPHeader.new()
169
+ headers.each do |content, mustunderstand, encodingstyle|
170
+ header.add(SOAPHeaderItem.new(content, mustunderstand, encodingstyle))
171
+ end
172
+ header
173
+ end
174
+
175
+ def setup_options
176
+ if opt = Property.loadproperty(::SOAP::PropertyName)
177
+ opt = opt["client"]
178
+ end
179
+ opt ||= Property.new
180
+ opt.add_hook("protocol.mandatorycharset") do |key, value|
181
+ @proxy.mandatorycharset = value
182
+ end
183
+ opt.add_hook("protocol.wiredump_file_base") do |key, value|
184
+ @wiredump_file_base = value
185
+ end
186
+ opt["protocol.http.charset"] ||= XSD::Charset.xml_encoding_label
187
+ opt["protocol.http.proxy"] ||= Env::HTTP_PROXY
188
+ opt["protocol.http.no_proxy"] ||= Env::NO_PROXY
189
+ opt
190
+ end
191
+
192
+ def add_rpc_method_interface(name, param_def)
193
+ param_count = RPC::SOAPMethod.param_count(param_def,
194
+ RPC::SOAPMethod::IN, RPC::SOAPMethod::INOUT)
195
+ add_method_interface(name, param_count)
196
+ end
197
+
198
+ def add_document_method_interface(name, param_def)
199
+ param_count = RPC::SOAPMethod.param_count(param_def, RPC::SOAPMethod::IN)
200
+ add_method_interface(name, param_count)
201
+ end
202
+
203
+ # Mapping.define_singleton_method calls define_method with proc and it
204
+ # exhausts much memory for each singleton Object. just instance_eval instead
205
+ # of it.
206
+ def add_method_interface(name, param_count)
207
+ instance_eval <<-EOS
208
+ def #{name}(*arg)
209
+ unless arg.size == #{param_count}
210
+ raise ArgumentError.new(
211
+ "wrong number of arguments (\#{arg.size} for #{param_count})")
212
+ end
213
+ call(#{name.dump}, *arg)
214
+ end
215
+ EOS
216
+ self.method(name)
217
+ end
218
+ end
219
+
220
+
221
+ end
222
+ end
@@ -0,0 +1,375 @@
1
+ # encoding: ASCII-8BIT
2
+ # SOAP4R - RPC element definition.
3
+ # Copyright (C) 2000-2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
4
+
5
+ # This program is copyrighted free software by NAKAMURA, Hiroshi. You can
6
+ # redistribute it and/or modify it under the same terms of Ruby's license;
7
+ # either the dual license version in 2003, or any later version.
8
+
9
+
10
+ require 'soap/baseData'
11
+ require 'soap/rpc/methodDef'
12
+
13
+
14
+ module SOAP
15
+
16
+ # Add method definitions for RPC to common definition in element.rb
17
+ class SOAPBody < SOAPStruct
18
+ public
19
+
20
+ def request
21
+ root_node
22
+ end
23
+
24
+ def response
25
+ root = root_node
26
+ if !@is_fault
27
+ if root.nil?
28
+ nil
29
+ elsif root.is_a?(SOAPBasetype)
30
+ root
31
+ else
32
+ # Initial element is [retval].
33
+ root[0]
34
+ end
35
+ else
36
+ root
37
+ end
38
+ end
39
+
40
+ def outparams
41
+ root = root_node
42
+ if !@is_fault and !root.nil? and !root.is_a?(SOAPBasetype)
43
+ op = root[1..-1]
44
+ op = nil if op && op.empty?
45
+ op
46
+ else
47
+ nil
48
+ end
49
+ end
50
+
51
+ def fault
52
+ if @is_fault
53
+ self['fault']
54
+ else
55
+ nil
56
+ end
57
+ end
58
+
59
+ def fault=(fault)
60
+ @is_fault = true
61
+ add('fault', fault)
62
+ end
63
+ end
64
+
65
+
66
+ module RPC
67
+
68
+
69
+ class RPCError < Error; end
70
+ class MethodDefinitionError < RPCError; end
71
+ class ParameterError < RPCError; end
72
+
73
+ class SOAPMethod < SOAPStruct
74
+ RETVAL = :retval
75
+ IN = :in
76
+ OUT = :out
77
+ INOUT = :inout
78
+
79
+ attr_reader :param_def
80
+ attr_reader :inparam
81
+ attr_reader :outparam
82
+ attr_reader :retval_name
83
+ attr_reader :retval_class_name
84
+
85
+ def initialize(qname, param_def = nil)
86
+ super(nil)
87
+ @elename = qname
88
+ @encodingstyle = nil
89
+
90
+ @param_def = param_def
91
+
92
+ @signature = []
93
+ @inparam_names = []
94
+ @inoutparam_names = []
95
+ @outparam_names = []
96
+
97
+ @inparam = {}
98
+ @outparam = {}
99
+ @retval_name = nil
100
+ @retval_class_name = nil
101
+
102
+ init_params(@param_def) if @param_def
103
+ end
104
+
105
+ def have_member
106
+ true
107
+ end
108
+
109
+ def have_outparam?
110
+ @outparam_names.size > 0
111
+ end
112
+
113
+ def input_params
114
+ collect_params(IN, INOUT)
115
+ end
116
+
117
+ def output_params
118
+ collect_params(OUT, INOUT)
119
+ end
120
+
121
+ def input_param_types
122
+ collect_param_types(IN, INOUT)
123
+ end
124
+
125
+ def output_param_types
126
+ collect_param_types(OUT, INOUT)
127
+ end
128
+
129
+ def set_param(params)
130
+ params.each do |param, data|
131
+ @inparam[param] = data
132
+ data.elename = XSD::QName.new(data.elename.namespace, param)
133
+ data.parent = self
134
+ end
135
+ end
136
+
137
+ def set_outparam(params)
138
+ params.each do |param, data|
139
+ @outparam[param] = data
140
+ data.elename = XSD::QName.new(data.elename.namespace, param)
141
+ end
142
+ end
143
+
144
+ def get_paramtypes(names)
145
+ types = []
146
+ @signature.each do |io_type, name, type_qname|
147
+ if type_qname && idx = names.index(name)
148
+ types[idx] = type_qname
149
+ end
150
+ end
151
+ types
152
+ end
153
+
154
+ def SOAPMethod.param_count(param_def, *type)
155
+ count = 0
156
+ param_def.each do |param|
157
+ param = MethodDef.to_param(param)
158
+ if type.include?(param.io_type.to_sym)
159
+ count += 1
160
+ end
161
+ end
162
+ count
163
+ end
164
+
165
+ def SOAPMethod.derive_rpc_param_def(obj, name, *param)
166
+ if param.size == 1 and param[0].is_a?(Array)
167
+ return param[0]
168
+ end
169
+ if param.empty?
170
+ method = obj.method(name)
171
+ param_names = (1..method.arity.abs).collect { |i| "p#{i}" }
172
+ else
173
+ param_names = param
174
+ end
175
+ create_rpc_param_def(param_names)
176
+ end
177
+
178
+ def SOAPMethod.create_rpc_param_def(param_names)
179
+ param_def = []
180
+ param_names.each do |param_name|
181
+ param_def.push([IN, param_name, nil])
182
+ end
183
+ param_def.push([RETVAL, 'return', nil])
184
+ param_def
185
+ end
186
+
187
+ def SOAPMethod.create_doc_param_def(req_qnames, res_qnames)
188
+ req_qnames = [req_qnames] if req_qnames.is_a?(XSD::QName)
189
+ res_qnames = [res_qnames] if res_qnames.is_a?(XSD::QName)
190
+ param_def = []
191
+ # req_qnames and res_qnames can be nil
192
+ if req_qnames
193
+ req_qnames.each do |qname|
194
+ param_def << [IN, qname.name, [nil, qname.namespace, qname.name]]
195
+ end
196
+ end
197
+ if res_qnames
198
+ res_qnames.each do |qname|
199
+ param_def << [OUT, qname.name, [nil, qname.namespace, qname.name]]
200
+ end
201
+ end
202
+ param_def
203
+ end
204
+
205
+ private
206
+
207
+ def collect_param_types(*type)
208
+ names = []
209
+ @signature.each do |io_type, name, type_qname|
210
+ names << type_qname if type.include?(io_type)
211
+ end
212
+ names
213
+ end
214
+
215
+ def collect_params(*type)
216
+ names = []
217
+ @signature.each do |io_type, name, type_qname|
218
+ names << name if type.include?(io_type)
219
+ end
220
+ names
221
+ end
222
+
223
+ def init_params(param_def)
224
+ param_def.each do |param|
225
+ param = MethodDef.to_param(param)
226
+ init_param(param)
227
+ end
228
+ end
229
+
230
+ def init_param(param)
231
+ mapped_class = SOAPMethod.parse_mapped_class(param.mapped_class)
232
+ qname = param.qname
233
+ if qname.nil? and mapped_class
234
+ qname = TypeMap.respond_to?(:key) ? TypeMap.key(mapped_class) : TypeMap.index(mapped_class) # RubyJedi: compatible with Ruby 1.8.6 and above
235
+ end
236
+ case param.io_type
237
+ when IN
238
+ @signature.push([IN, param.name, qname])
239
+ @inparam_names.push(param.name)
240
+ when OUT
241
+ @signature.push([OUT, param.name, qname])
242
+ @outparam_names.push(param.name)
243
+ when INOUT
244
+ @signature.push([INOUT, param.name, qname])
245
+ @inoutparam_names.push(param.name)
246
+ when RETVAL
247
+ if @retval_name
248
+ raise MethodDefinitionError.new('duplicated retval')
249
+ end
250
+ @retval_name = param.name
251
+ @retval_class_name = mapped_class
252
+ else
253
+ raise MethodDefinitionError.new("unknown type: #{param.io_type}")
254
+ end
255
+ end
256
+
257
+ def self.parse_mapped_class(mapped_class)
258
+ # the first element of typedef in param_def can be a String like
259
+ # "::SOAP::SOAPStruct" or "CustomClass[]". turn this String to a class if
260
+ # we can.
261
+ if mapped_class.is_a?(String)
262
+ if /\[\]\Z/ =~ mapped_class
263
+ # when '[]' is added, ignore this.
264
+ mapped_class = nil
265
+ else
266
+ mapped_class = Mapping.class_from_name(mapped_class)
267
+ end
268
+ end
269
+ mapped_class
270
+ end
271
+ end
272
+
273
+
274
+ class SOAPMethodRequest < SOAPMethod
275
+ attr_accessor :soapaction
276
+
277
+ def SOAPMethodRequest.create_request(qname, *params)
278
+ param_def = []
279
+ param_value = []
280
+ i = 0
281
+ params.each do |param|
282
+ param_name = "p#{i}"
283
+ i += 1
284
+ param_def << [IN, param_name, nil]
285
+ param_value << [param_name, param]
286
+ end
287
+ param_def << [RETVAL, 'return', nil]
288
+ o = new(qname, param_def)
289
+ o.set_param(param_value)
290
+ o
291
+ end
292
+
293
+ def initialize(qname, param_def = nil, soapaction = nil)
294
+ super(qname, param_def)
295
+ @soapaction = soapaction
296
+ end
297
+
298
+ def each
299
+ input_params.each do |name|
300
+ unless @inparam[name]
301
+ raise ParameterError.new("parameter: #{name} was not given")
302
+ end
303
+ yield(name, @inparam[name])
304
+ end
305
+ end
306
+
307
+ def dup
308
+ req = self.class.new(@elename.dup, @param_def, @soapaction)
309
+ req.encodingstyle = @encodingstyle
310
+ req
311
+ end
312
+
313
+ def create_method_response(response_name = nil)
314
+ response_name ||=
315
+ XSD::QName.new(@elename.namespace, @elename.name + 'Response')
316
+ SOAPMethodResponse.new(response_name, @param_def)
317
+ end
318
+ end
319
+
320
+
321
+ class SOAPMethodResponse < SOAPMethod
322
+
323
+ def initialize(qname, param_def = nil)
324
+ super(qname, param_def)
325
+ @retval = nil
326
+ end
327
+
328
+ def retval
329
+ @retval
330
+ end
331
+
332
+ def retval=(retval)
333
+ @retval = retval
334
+ @retval.elename = @retval.elename.dup_name(@retval_name || 'return')
335
+ retval.parent = self
336
+ retval
337
+ end
338
+
339
+ def each
340
+ if @retval_name and !@retval.is_a?(SOAPVoid)
341
+ yield(@retval_name, @retval)
342
+ end
343
+
344
+ output_params.each do |name|
345
+ unless @outparam[name]
346
+ raise ParameterError.new("parameter: #{name} was not given")
347
+ end
348
+ yield(name, @outparam[name])
349
+ end
350
+ end
351
+ end
352
+
353
+
354
+ # To return(?) void explicitly.
355
+ # def foo(input_var)
356
+ # ...
357
+ # return SOAP::RPC::SOAPVoid.new
358
+ # end
359
+ class SOAPVoid < XSD::XSDAnySimpleType
360
+ include SOAPBasetype
361
+ extend SOAPModuleUtils
362
+ Name = XSD::QName.new(Mapping::RubyCustomTypeNamespace, nil)
363
+
364
+ public
365
+ def initialize()
366
+ @elename = Name
367
+ @id = nil
368
+ @precedents = []
369
+ @parent = nil
370
+ end
371
+ end
372
+
373
+
374
+ end
375
+ end