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,164 @@
1
+ # SOAP4R - SOAP WSDL driver
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 'wsdl/parser'
10
+ require 'wsdl/importer'
11
+ require 'xsd/qname'
12
+ require 'xsd/codegen/gensupport'
13
+ require 'soap/attrproxy'
14
+ require 'soap/mapping/wsdlencodedregistry'
15
+ require 'soap/mapping/wsdlliteralregistry'
16
+ require 'soap/rpc/driver'
17
+ require 'wsdl/soap/methodDefCreator'
18
+ require 'wsdl/soap/classDefCreatorSupport'
19
+ require 'wsdl/soap/classNameCreator'
20
+
21
+
22
+ module SOAP
23
+
24
+
25
+ class WSDLDriverFactory
26
+ include WSDL::SOAP::ClassDefCreatorSupport
27
+
28
+ class FactoryError < StandardError; end
29
+
30
+ attr_reader :wsdl
31
+
32
+ def initialize(wsdl)
33
+ @wsdl = import(wsdl)
34
+ end
35
+
36
+ def inspect
37
+ sprintf("#<%s:%s:0x%x\n\n%s>", self.class.name, @wsdl.name, __id__, dump_method_signatures)
38
+ end
39
+
40
+ def create_rpc_driver(servicename = nil, portname = nil)
41
+ port = find_port(servicename, portname)
42
+ drv = SOAP::RPC::Driver.new(port.soap_address.location)
43
+ if binding = port.find_binding
44
+ init_driver(drv, binding)
45
+ add_operation(drv, binding)
46
+ end
47
+ drv
48
+ end
49
+
50
+ def dump_method_signatures(servicename = nil, portname = nil)
51
+ targetservice = XSD::QName.new(@wsdl.targetnamespace, servicename) if servicename
52
+ targetport = XSD::QName.new(@wsdl.targetnamespace, portname) if portname
53
+ sig = []
54
+ element_definitions = @wsdl.collect_elements
55
+ @wsdl.services.each do |service|
56
+ next if targetservice and service.name != targetservice
57
+ service.ports.each do |port|
58
+ next if targetport and port.name != targetport
59
+ if porttype = port.porttype
60
+ assigned_method = collect_assigned_method(porttype.name)
61
+ if binding = port.porttype.find_binding
62
+ sig << binding.operations.collect { |op_bind|
63
+ operation = op_bind.find_operation
64
+ name = assigned_method[op_bind.boundid] || op_bind.name
65
+ str = "= #{safemethodname(name)}\n\n"
66
+ str << dump_method_signature(name, operation, element_definitions)
67
+ str.gsub(/^#/, " ")
68
+ }.join("\n")
69
+ end
70
+ end
71
+ end
72
+ end
73
+ sig.join("\n")
74
+ end
75
+
76
+ private
77
+
78
+ def collect_assigned_method(porttypename)
79
+ name_creator = WSDL::SOAP::ClassNameCreator.new
80
+ methoddefcreator =
81
+ WSDL::SOAP::MethodDefCreator.new(@wsdl, name_creator, nil, {})
82
+ methoddefcreator.dump(porttypename)
83
+ methoddefcreator.assigned_method
84
+ end
85
+
86
+ def find_port(servicename = nil, portname = nil)
87
+ service = port = nil
88
+ if servicename
89
+ service = @wsdl.service(
90
+ XSD::QName.new(@wsdl.targetnamespace, servicename))
91
+ else
92
+ service = @wsdl.services[0]
93
+ end
94
+ if service.nil?
95
+ raise FactoryError.new("service #{servicename} not found in WSDL")
96
+ end
97
+ if portname
98
+ port = service.ports[XSD::QName.new(@wsdl.targetnamespace, portname)]
99
+ if port.nil?
100
+ raise FactoryError.new("port #{portname} not found in WSDL")
101
+ end
102
+ else
103
+ port = service.ports.find { |port| !port.soap_address.nil? }
104
+ if port.nil?
105
+ raise FactoryError.new("no ports have soap:address")
106
+ end
107
+ end
108
+ if port.soap_address.nil?
109
+ raise FactoryError.new("soap:address element not found in WSDL")
110
+ end
111
+ port
112
+ end
113
+
114
+ def init_driver(drv, binding)
115
+ wsdl_elements = @wsdl.collect_elements
116
+ wsdl_types = @wsdl.collect_complextypes + @wsdl.collect_simpletypes
117
+ rpc_decode_typemap = wsdl_types +
118
+ @wsdl.soap_rpc_complextypes(binding)
119
+ drv.proxy.mapping_registry =
120
+ Mapping::WSDLEncodedRegistry.new(rpc_decode_typemap)
121
+ drv.proxy.literal_mapping_registry =
122
+ Mapping::WSDLLiteralRegistry.new(wsdl_types, wsdl_elements)
123
+ end
124
+
125
+ def add_operation(drv, binding)
126
+ name_creator = WSDL::SOAP::ClassNameCreator.new
127
+ modulepath = 'WSDLDriverFactory'
128
+ methoddefcreator =
129
+ WSDL::SOAP::MethodDefCreator.new(@wsdl, name_creator, modulepath, {})
130
+ mdefs = methoddefcreator.create(binding.name)
131
+ if mdefs.nil?
132
+ raise FactoryError.new("no method definition found in WSDL")
133
+ end
134
+ mdefs.each do |mdef|
135
+ opt = {
136
+ :request_style => mdef.style,
137
+ :response_style => mdef.style,
138
+ :request_use => mdef.inputuse,
139
+ :response_use => mdef.outputuse
140
+ }
141
+ qname = mdef.qname
142
+ soapaction = mdef.soapaction
143
+ name = mdef.name
144
+ if mdef.style == :rpc
145
+ drv.add_rpc_operation(qname, soapaction, name, mdef.parameters, opt)
146
+ else
147
+ drv.add_document_operation(soapaction, name, mdef.parameters, opt)
148
+ end
149
+ orgname = mdef.qname.name
150
+ if orgname != name and orgname.capitalize == name.capitalize
151
+ ::SOAP::Mapping.define_singleton_method(drv, orgname) do |*arg|
152
+ __send__(name, *arg)
153
+ end
154
+ end
155
+ end
156
+ end
157
+
158
+ def import(location)
159
+ WSDL::Importer.import(location)
160
+ end
161
+ end
162
+
163
+
164
+ end
@@ -0,0 +1,65 @@
1
+ # WSDL4R - WSDL binding 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 'wsdl/info'
10
+ require 'xsd/namedelements'
11
+
12
+
13
+ module WSDL
14
+
15
+
16
+ class Binding < Info
17
+ attr_reader :name # required
18
+ attr_reader :type # required
19
+ attr_reader :operations
20
+ attr_reader :soapbinding
21
+
22
+ def initialize
23
+ super
24
+ @name = nil
25
+ @type = nil
26
+ @operations = XSD::NamedElements.new
27
+ @soapbinding = nil
28
+ end
29
+
30
+ def targetnamespace
31
+ parent.targetnamespace
32
+ end
33
+
34
+ def parse_element(element)
35
+ case element
36
+ when OperationName
37
+ o = OperationBinding.new
38
+ @operations << o
39
+ o
40
+ when SOAPBindingName
41
+ o = WSDL::SOAP::Binding.new
42
+ @soapbinding = o
43
+ o
44
+ when DocumentationName
45
+ o = Documentation.new
46
+ o
47
+ else
48
+ nil
49
+ end
50
+ end
51
+
52
+ def parse_attr(attr, value)
53
+ case attr
54
+ when NameAttrName
55
+ @name = XSD::QName.new(targetnamespace, value.source)
56
+ when TypeAttrName
57
+ @type = value
58
+ else
59
+ nil
60
+ end
61
+ end
62
+ end
63
+
64
+
65
+ end
@@ -0,0 +1,64 @@
1
+ # WSDL4R - WSDL data definitions.
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 'xsd/qname'
10
+ require 'wsdl/documentation'
11
+ require 'wsdl/definitions'
12
+ require 'wsdl/types'
13
+ require 'wsdl/message'
14
+ require 'wsdl/part'
15
+ require 'wsdl/portType'
16
+ require 'wsdl/operation'
17
+ require 'wsdl/param'
18
+ require 'wsdl/binding'
19
+ require 'wsdl/operationBinding'
20
+ require 'wsdl/service'
21
+ require 'wsdl/port'
22
+ require 'wsdl/import'
23
+
24
+
25
+ module WSDL
26
+
27
+
28
+ ArrayTypeAttrName = XSD::QName.new(Namespace, 'arrayType')
29
+ BindingName = XSD::QName.new(Namespace, 'binding')
30
+ DefinitionsName = XSD::QName.new(Namespace, 'definitions')
31
+ DocumentationName = XSD::QName.new(Namespace, 'documentation')
32
+ FaultName = XSD::QName.new(Namespace, 'fault')
33
+ ImportName = XSD::QName.new(Namespace, 'import')
34
+ InputName = XSD::QName.new(Namespace, 'input')
35
+ MessageName = XSD::QName.new(Namespace, 'message')
36
+ OperationName = XSD::QName.new(Namespace, 'operation')
37
+ OutputName = XSD::QName.new(Namespace, 'output')
38
+ PartName = XSD::QName.new(Namespace, 'part')
39
+ PortName = XSD::QName.new(Namespace, 'port')
40
+ PortTypeName = XSD::QName.new(Namespace, 'portType')
41
+ ServiceName = XSD::QName.new(Namespace, 'service')
42
+ TypesName = XSD::QName.new(Namespace, 'types')
43
+
44
+ SchemaName = XSD::QName.new(XSD::Namespace, 'schema')
45
+
46
+ SOAPAddressName = XSD::QName.new(SOAPBindingNamespace, 'address')
47
+ SOAPBindingName = XSD::QName.new(SOAPBindingNamespace, 'binding')
48
+ SOAPHeaderName = XSD::QName.new(SOAPBindingNamespace, 'header')
49
+ SOAPBodyName = XSD::QName.new(SOAPBindingNamespace, 'body')
50
+ SOAPFaultName = XSD::QName.new(SOAPBindingNamespace, 'fault')
51
+ SOAPOperationName = XSD::QName.new(SOAPBindingNamespace, 'operation')
52
+
53
+ BindingAttrName = XSD::QName.new(nil, 'binding')
54
+ ElementAttrName = XSD::QName.new(nil, 'element')
55
+ LocationAttrName = XSD::QName.new(nil, 'location')
56
+ MessageAttrName = XSD::QName.new(nil, 'message')
57
+ NameAttrName = XSD::QName.new(nil, 'name')
58
+ NamespaceAttrName = XSD::QName.new(nil, 'namespace')
59
+ ParameterOrderAttrName = XSD::QName.new(nil, 'parameterOrder')
60
+ TargetNamespaceAttrName = XSD::QName.new(nil, 'targetNamespace')
61
+ TypeAttrName = XSD::QName.new(nil, 'type')
62
+
63
+
64
+ end
@@ -0,0 +1,236 @@
1
+ # WSDL4R - WSDL definitions.
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 'wsdl/info'
10
+ require 'xsd/namedelements'
11
+
12
+
13
+ module WSDL
14
+
15
+
16
+ class Definitions < Info
17
+ attr_reader :name
18
+ attr_reader :targetnamespace
19
+ attr_reader :imports
20
+
21
+ attr_accessor :location
22
+ attr_reader :importedschema
23
+
24
+ def initialize
25
+ super
26
+ @name = nil
27
+ @targetnamespace = nil
28
+ @location = nil
29
+ @importedschema = {}
30
+
31
+ @types = nil
32
+ @imports = []
33
+ @messages = XSD::NamedElements.new
34
+ @porttypes = XSD::NamedElements.new
35
+ @bindings = XSD::NamedElements.new
36
+ @services = XSD::NamedElements.new
37
+
38
+ @anontypes = XSD::NamedElements.new
39
+ @root = self
40
+ end
41
+
42
+ def inspect
43
+ sprintf("#<%s:0x%x %s>", self.class.name, __id__, @name || '(unnamed)')
44
+ end
45
+
46
+ def targetnamespace=(targetnamespace)
47
+ @targetnamespace = targetnamespace
48
+ if @name
49
+ @name = XSD::QName.new(@targetnamespace, @name.name)
50
+ end
51
+ end
52
+
53
+ def collect_attributes
54
+ collect_imports(:collect_attributes)
55
+ end
56
+
57
+ def collect_modelgroups
58
+ collect_imports(:collect_modelgroups)
59
+ end
60
+
61
+ def collect_attributegroups
62
+ collect_imports(:collect_attributegroups)
63
+ end
64
+
65
+ def collect_elements
66
+ collect_imports(:collect_elements)
67
+ end
68
+
69
+ def collect_complextypes
70
+ result = collect_imports(:collect_complextypes)
71
+ @anontypes.dup.concat(result)
72
+ end
73
+
74
+ def collect_simpletypes
75
+ collect_imports(:collect_simpletypes)
76
+ end
77
+
78
+ # ToDo: simpletype must be accepted...
79
+ def add_type(complextype)
80
+ @anontypes << complextype
81
+ end
82
+
83
+ def messages
84
+ result = @messages.dup
85
+ @imports.each do |import|
86
+ result.concat(import.content.messages) if self.class === import.content
87
+ end
88
+ result
89
+ end
90
+
91
+ def porttypes
92
+ result = @porttypes.dup
93
+ @imports.each do |import|
94
+ result.concat(import.content.porttypes) if self.class === import.content
95
+ end
96
+ result
97
+ end
98
+
99
+ def bindings
100
+ result = @bindings.dup
101
+ @imports.each do |import|
102
+ result.concat(import.content.bindings) if self.class === import.content
103
+ end
104
+ result
105
+ end
106
+
107
+ def services
108
+ result = @services.dup
109
+ @imports.each do |import|
110
+ result.concat(import.content.services) if self.class === import.content
111
+ end
112
+ result
113
+ end
114
+
115
+ def message(name)
116
+ message = @messages[name]
117
+ return message if message
118
+ @imports.each do |import|
119
+ message = import.content.message(name) if self.class === import.content
120
+ return message if message
121
+ end
122
+ nil
123
+ end
124
+
125
+ def porttype(name)
126
+ porttype = @porttypes[name]
127
+ return porttype if porttype
128
+ @imports.each do |import|
129
+ porttype = import.content.porttype(name) if self.class === import.content
130
+ return porttype if porttype
131
+ end
132
+ nil
133
+ end
134
+
135
+ def binding(name)
136
+ binding = @bindings[name]
137
+ return binding if binding
138
+ @imports.each do |import|
139
+ binding = import.content.binding(name) if self.class === import.content
140
+ return binding if binding
141
+ end
142
+ nil
143
+ end
144
+
145
+ def service(name)
146
+ service = @services[name]
147
+ return service if service
148
+ @imports.each do |import|
149
+ service = import.content.service(name) if self.class === import.content
150
+ return service if service
151
+ end
152
+ nil
153
+ end
154
+
155
+ def porttype_binding(name)
156
+ binding = @bindings.find { |item| item.type == name }
157
+ return binding if binding
158
+ @imports.each do |import|
159
+ binding = import.content.porttype_binding(name) if self.class === import.content
160
+ return binding if binding
161
+ end
162
+ nil
163
+ end
164
+
165
+ def parse_element(element)
166
+ case element
167
+ when ImportName
168
+ o = Import.new
169
+ @imports << o
170
+ o
171
+ when TypesName
172
+ o = Types.new
173
+ @types = o
174
+ o
175
+ when MessageName
176
+ o = Message.new
177
+ @messages << o
178
+ o
179
+ when PortTypeName
180
+ o = PortType.new
181
+ @porttypes << o
182
+ o
183
+ when BindingName
184
+ o = Binding.new
185
+ @bindings << o
186
+ o
187
+ when ServiceName
188
+ o = Service.new
189
+ @services << o
190
+ o
191
+ when DocumentationName
192
+ o = Documentation.new
193
+ o
194
+ else
195
+ nil
196
+ end
197
+ end
198
+
199
+ def parse_attr(attr, value)
200
+ case attr
201
+ when NameAttrName
202
+ @name = XSD::QName.new(targetnamespace, value.source)
203
+ when TargetNamespaceAttrName
204
+ self.targetnamespace = value.source
205
+ else
206
+ nil
207
+ end
208
+ end
209
+
210
+ def self.parse_element(element)
211
+ if element == DefinitionsName
212
+ Definitions.new
213
+ else
214
+ nil
215
+ end
216
+ end
217
+
218
+ private
219
+
220
+ def collect_imports(method)
221
+ result = XSD::NamedElements.new
222
+ if @types
223
+ @types.schemas.each do |schema|
224
+ result.concat(schema.send(method))
225
+ end
226
+ end
227
+ @imports.each do |import|
228
+ result.concat(import.content.send(method))
229
+ end
230
+ result
231
+ end
232
+
233
+ end
234
+
235
+
236
+ end