DefV-soap4r 1.5.8.2

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