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,241 @@
1
+ # encoding: ASCII-8BIT
2
+ # WSDL4R - Creating class code support from WSDL.
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 'wsdl/info'
11
+ require 'soap/mapping'
12
+ require 'soap/mapping/typeMap'
13
+ require 'xsd/codegen/gensupport'
14
+
15
+
16
+ module WSDL
17
+ module SOAP
18
+
19
+
20
+ # requires @defined_const, @simpletypes, @name_creator
21
+ module ClassDefCreatorSupport
22
+ include XSD::CodeGen::GenSupport
23
+
24
+ def mapped_class_name(qname, modulepath)
25
+ @name_creator.assign_name(qname, modulepath)
26
+ end
27
+
28
+ def mapped_class_basename(qname, modulepath)
29
+ classname = @name_creator.assign_name(qname, modulepath)
30
+ classname.sub(/\A.*:/, '')
31
+ end
32
+
33
+ def basetype_mapped_class(name)
34
+ ::SOAP::TypeMap[name]
35
+ end
36
+
37
+ def dump_method_signature(name, operation, element_definitions)
38
+ methodname = safemethodname(name)
39
+ input = operation.input
40
+ output = operation.output
41
+ fault = operation.fault
42
+ signature = "#{methodname}#{dump_inputparam(input)}"
43
+ str = <<__EOD__
44
+ # SYNOPSIS
45
+ # #{methodname}#{dump_inputparam(input)}
46
+ #
47
+ # ARGS
48
+ #{dump_inout_type(input, element_definitions).chomp}
49
+ #
50
+ # RETURNS
51
+ #{dump_inout_type(output, element_definitions).chomp}
52
+ #
53
+ __EOD__
54
+ unless fault.empty?
55
+ str += <<__EOD__
56
+ # RAISES
57
+ #{dump_fault_type(fault, element_definitions)}
58
+ #
59
+ __EOD__
60
+ end
61
+ str
62
+ end
63
+
64
+ def dq(ele)
65
+ ele.dump
66
+ end
67
+
68
+ def ndq(ele)
69
+ ele.nil? ? 'nil' : dq(ele)
70
+ end
71
+
72
+ def sym(ele)
73
+ ':' + ele.id2name
74
+ end
75
+
76
+ def nsym(ele)
77
+ ele.nil? ? 'nil' : sym(ele)
78
+ end
79
+
80
+ def dqname(qname)
81
+ if @defined_const.key?(qname.namespace)
82
+ qname.dump(@defined_const[qname.namespace])
83
+ else
84
+ qname.dump
85
+ end
86
+ end
87
+
88
+ def assign_const(value, prefix = '')
89
+ return if value.nil? or @defined_const.key?(value)
90
+ name = value.scan(/[^:\/]+\/?\z/)[0] || 'C'
91
+ tag = prefix + safeconstname(name)
92
+ if @defined_const.value?(tag)
93
+ idx = 0
94
+ while true
95
+ tag = prefix + safeconstname(name + "_#{idx}")
96
+ break unless @defined_const.value?(tag)
97
+ idx += 1
98
+ raise RuntimeError.new("too much similar names") if idx > 100
99
+ end
100
+ end
101
+ @defined_const[value] = tag
102
+ end
103
+
104
+ def create_type_name(modulepath, element)
105
+ if element.type == XSD::AnyTypeName
106
+ # nil means anyType.
107
+ nil
108
+ elsif simpletype = @simpletypes[element.type]
109
+ if simpletype.restriction and simpletype.restriction.enumeration?
110
+ mapped_class_name(element.type, modulepath)
111
+ else
112
+ nil
113
+ end
114
+ elsif klass = element_basetype(element)
115
+ klass.name
116
+ elsif element.type
117
+ mapped_class_name(element.type, modulepath)
118
+ elsif element.ref
119
+ mapped_class_name(element.ref, modulepath)
120
+ elsif element.anonymous_type?
121
+ # inner class
122
+ mapped_class_name(element.name, modulepath)
123
+ else
124
+ nil
125
+ end
126
+ end
127
+
128
+ private
129
+
130
+ def dump_inout_type(param, element_definitions)
131
+ if param
132
+ message = param.find_message
133
+ params = ""
134
+ message.parts.each do |part|
135
+ name = safevarname(part.name)
136
+ if part.type
137
+ typename = safeconstname(part.type.name)
138
+ qname = part.type
139
+ params << add_at("# #{name}", "#{typename} - #{qname}\n", 20)
140
+ elsif part.element
141
+ ele = element_definitions[part.element]
142
+ if ele.type
143
+ typename = safeconstname(ele.type.name)
144
+ qname = ele.type
145
+ else
146
+ typename = safeconstname(ele.name.name)
147
+ qname = ele.name
148
+ end
149
+ params << add_at("# #{name}", "#{typename} - #{qname}\n", 20)
150
+ end
151
+ end
152
+ unless params.empty?
153
+ return params
154
+ end
155
+ end
156
+ "# N/A\n"
157
+ end
158
+
159
+ def dump_inputparam(input)
160
+ message = input.find_message
161
+ params = ""
162
+ message.parts.each do |part|
163
+ params << ", " unless params.empty?
164
+ params << safevarname(part.name)
165
+ end
166
+ if params.empty?
167
+ ""
168
+ else
169
+ "(#{ params })"
170
+ end
171
+ end
172
+
173
+ def add_at(base, str, pos)
174
+ if base.size >= pos
175
+ base + ' ' + str
176
+ else
177
+ base + ' ' * (pos - base.size) + str
178
+ end
179
+ end
180
+
181
+ def dump_fault_type(fault, element_definitions)
182
+ fault.collect { |ele|
183
+ dump_inout_type(ele, element_definitions).chomp
184
+ }.join("\n")
185
+ end
186
+
187
+ def element_basetype(ele)
188
+ if klass = basetype_class(ele.type)
189
+ klass
190
+ elsif ele.local_simpletype
191
+ basetype_class(ele.local_simpletype.base)
192
+ else
193
+ nil
194
+ end
195
+ end
196
+
197
+ def attribute_basetype(attr)
198
+ if klass = basetype_class(attr.type)
199
+ klass
200
+ elsif attr.local_simpletype
201
+ basetype_class(attr.local_simpletype.base)
202
+ else
203
+ nil
204
+ end
205
+ end
206
+
207
+ def basetype_class(type)
208
+ return nil if type.nil?
209
+ if simpletype = @simpletypes[type]
210
+ basetype_mapped_class(simpletype.base)
211
+ else
212
+ basetype_mapped_class(type)
213
+ end
214
+ end
215
+
216
+ def name_element(element)
217
+ return element.name if element.name
218
+ return element.ref if element.ref
219
+ raise RuntimeError.new("cannot define name of #{element}")
220
+ end
221
+
222
+ def name_attribute(attribute)
223
+ return attribute.name if attribute.name
224
+ return attribute.ref if attribute.ref
225
+ raise RuntimeError.new("cannot define name of #{attribute}")
226
+ end
227
+
228
+ # TODO: run MethodDefCreator just once in 1.6.X.
229
+ # MethodDefCreator should return parsed struct, not a String.
230
+ def collect_assigned_method(wsdl, porttypename, modulepath = nil)
231
+ name_creator = WSDL::SOAP::ClassNameCreator.new
232
+ methoddefcreator =
233
+ WSDL::SOAP::MethodDefCreator.new(wsdl, name_creator, modulepath, {})
234
+ methoddefcreator.dump(porttypename)
235
+ methoddefcreator.assigned_method
236
+ end
237
+ end
238
+
239
+
240
+ end
241
+ end
@@ -0,0 +1,55 @@
1
+ # encoding: ASCII-8BIT
2
+ # WSDL4R - Class name creator.
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/mapping/typeMap'
11
+ require 'xsd/codegen/gensupport'
12
+
13
+
14
+ module WSDL
15
+ module SOAP
16
+
17
+
18
+ class ClassNameCreator
19
+ include XSD::CodeGen::GenSupport
20
+
21
+ def initialize
22
+ @classname = {}
23
+ end
24
+
25
+ def assign_name(qname, modulepath = nil)
26
+ key = [modulepath, qname]
27
+ unless @classname.key?(key)
28
+ if klass = ::SOAP::TypeMap[qname]
29
+ name =
30
+ ::SOAP::Mapping::DefaultRegistry.find_mapped_obj_class(klass).name
31
+ else
32
+ name = safeconstname(qname.name)
33
+ if modulepath
34
+ name = [modulepath, name].join('::')
35
+ end
36
+ while @classname.value?(name)
37
+ name += '_'
38
+ end
39
+ check_classname(name)
40
+ end
41
+ @classname[key] = name.freeze
42
+ end
43
+ @classname[key]
44
+ end
45
+
46
+ def check_classname(name)
47
+ if Object.constants.include?(name)
48
+ warn("created definition re-opens an existing toplevel class: #{name}. consider to use --module_path option of wsdl2ruby.rb")
49
+ end
50
+ end
51
+ end
52
+
53
+
54
+ end
55
+ end
@@ -0,0 +1,107 @@
1
+ # encoding: ASCII-8BIT
2
+ # WSDL4R - Creating client skelton code from WSDL.
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 'wsdl/info'
11
+ require 'wsdl/soap/classDefCreatorSupport'
12
+
13
+
14
+ module WSDL
15
+ module SOAP
16
+
17
+
18
+ class ClientSkeltonCreator
19
+ include ClassDefCreatorSupport
20
+
21
+ attr_reader :definitions
22
+
23
+ def initialize(definitions, name_creator, modulepath = nil)
24
+ @definitions = definitions
25
+ @name_creator = name_creator
26
+ @modulepath = modulepath
27
+ end
28
+
29
+ def dump(service_name)
30
+ services = @definitions.service(service_name)
31
+ unless services
32
+ raise RuntimeError.new("service not defined: #{service_name}")
33
+ end
34
+ result = ""
35
+ if @modulepath
36
+ result << "\n"
37
+ modulepath = @modulepath.respond_to?(:lines) ? @modulepath.lines : @modulepath # RubyJedi: compatible with Ruby 1.8.6 and above
38
+ result << modulepath.collect { |ele| "module #{ele}" }.join("; ")
39
+ result << "\n\n"
40
+ end
41
+ services.ports.each do |port|
42
+ result << dump_porttype(port.porttype)
43
+ result << "\n"
44
+ end
45
+ if @modulepath
46
+ result << "\n\n"
47
+ modulepath = @modulepath.respond_to?(:lines) ? @modulepath.lines : @modulepath # RubyJedi: compatible with Ruby 1.8.6 and above
48
+ result << modulepath.collect { |ele| "end" }.join("; ")
49
+ result << "\n"
50
+ end
51
+ result
52
+ end
53
+
54
+ private
55
+
56
+ def dump_porttype(porttype)
57
+ assigned_method = collect_assigned_method(@definitions, porttype.name, @modulepath)
58
+ drv_name = mapped_class_basename(porttype.name, @modulepath)
59
+
60
+ result = ""
61
+ result << <<__EOD__
62
+ endpoint_url = ARGV.shift
63
+ obj = #{ drv_name }.new(endpoint_url)
64
+
65
+ # run ruby with -d to see SOAP wiredumps.
66
+ obj.wiredump_dev = STDERR if $DEBUG
67
+
68
+ __EOD__
69
+ element_definitions = @definitions.collect_elements
70
+ binding = porttype.find_binding
71
+ if binding
72
+ binding.operations.each do |op_bind|
73
+ operation = op_bind.find_operation
74
+ if operation.nil?
75
+ warn("operation not found for binding: #{op_bind}")
76
+ next
77
+ end
78
+ name = assigned_method[op_bind.boundid] || operation.name
79
+ result << dump_method_signature(name, operation, element_definitions)
80
+ result << dump_input_init(operation.input) << "\n"
81
+ result << dump_operation(name, operation) << "\n\n"
82
+ end
83
+ end
84
+ result
85
+ end
86
+
87
+ def dump_operation(name, operation)
88
+ input = operation.input
89
+ "puts obj.#{ safemethodname(name) }#{ dump_inputparam(input) }"
90
+ end
91
+
92
+ def dump_input_init(input)
93
+ result = input.find_message.parts.collect { |part|
94
+ safevarname(part.name)
95
+ }.join(" = ")
96
+ if result.empty?
97
+ ""
98
+ else
99
+ result << " = nil"
100
+ end
101
+ result
102
+ end
103
+ end
104
+
105
+
106
+ end
107
+ end
@@ -0,0 +1,174 @@
1
+ # encoding: ASCII-8BIT
2
+ # WSDL4R - SOAP complexType definition for WSDL.
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 'wsdl/xmlSchema/complexType'
11
+ require 'soap/mapping'
12
+
13
+
14
+ module WSDL
15
+ module XMLSchema
16
+
17
+
18
+ class ComplexType < Info
19
+ def compoundtype
20
+ @compoundtype ||= check_type
21
+ end
22
+
23
+ def check_type
24
+ if have_any?
25
+ :TYPE_STRUCT
26
+ elsif content
27
+ if attributes.empty? and map_as_array?
28
+ if name == ::SOAP::Mapping::MapQName
29
+ :TYPE_MAP
30
+ else
31
+ :TYPE_ARRAY
32
+ end
33
+ else
34
+ :TYPE_STRUCT
35
+ end
36
+ elsif complexcontent
37
+ complexcontent.check_type
38
+ elsif simplecontent
39
+ :TYPE_SIMPLE
40
+ elsif !attributes.empty?
41
+ :TYPE_STRUCT
42
+ else # empty complexType definition (seen in partner.wsdl of salesforce)
43
+ :TYPE_EMPTY
44
+ end
45
+ end
46
+
47
+ def child_type(name = nil)
48
+ case compoundtype
49
+ when :TYPE_STRUCT
50
+ if ele = find_element(name)
51
+ ele.type
52
+ elsif ele = find_element_by_name(name.name)
53
+ ele.type
54
+ end
55
+ when :TYPE_ARRAY
56
+ @contenttype ||= content_arytype
57
+ when :TYPE_MAP
58
+ item_ele = find_element_by_name("item") or
59
+ raise RuntimeError.new("'item' element not found in Map definition.")
60
+ content = item_ele.local_complextype or
61
+ raise RuntimeError.new("No complexType definition for 'item'.")
62
+ if ele = content.find_element(name)
63
+ ele.type
64
+ elsif ele = content.find_element_by_name(name.name)
65
+ ele.type
66
+ end
67
+ else
68
+ raise NotImplementedError.new("Unknown kind of complexType.")
69
+ end
70
+ end
71
+
72
+ def child_defined_complextype(name)
73
+ ele = nil
74
+ case compoundtype
75
+ when :TYPE_STRUCT, :TYPE_MAP
76
+ unless ele = find_element(name)
77
+ if name.namespace.nil?
78
+ ele = find_element_by_name(name.name)
79
+ end
80
+ end
81
+ when :TYPE_ARRAY
82
+ e = elements
83
+ if e.size == 1
84
+ ele = e[0]
85
+ else
86
+ raise RuntimeError.new("Assert: must not reach.")
87
+ end
88
+ else
89
+ raise RuntimeError.new("Assert: Not implemented.")
90
+ end
91
+ unless ele
92
+ raise RuntimeError.new("Cannot find #{name} as a children of #{@name}.")
93
+ end
94
+ ele.local_complextype
95
+ end
96
+
97
+ def find_soapenc_arytype
98
+ unless compoundtype == :TYPE_ARRAY
99
+ raise RuntimeError.new("Assert: not for array")
100
+ end
101
+ if complexcontent
102
+ if complexcontent.restriction
103
+ complexcontent.restriction.attributes.each do |attribute|
104
+ if attribute.ref == ::SOAP::AttrArrayTypeName
105
+ return attribute.arytype
106
+ end
107
+ end
108
+ end
109
+ end
110
+ nil
111
+ end
112
+
113
+ def find_arytype
114
+ unless compoundtype == :TYPE_ARRAY
115
+ raise RuntimeError.new("Assert: not for array")
116
+ end
117
+ if arytype = find_soapenc_arytype
118
+ return arytype
119
+ end
120
+ if map_as_array?
121
+ return element_simpletype(elements[0])
122
+ end
123
+ raise RuntimeError.new("Assert: Unknown array definition.")
124
+ end
125
+
126
+ def find_aryelement
127
+ unless compoundtype == :TYPE_ARRAY
128
+ raise RuntimeError.new("Assert: not for array")
129
+ end
130
+ if map_as_array?
131
+ return nested_elements[0]
132
+ end
133
+ nil # use default item name
134
+ end
135
+
136
+ private
137
+
138
+ def element_simpletype(element)
139
+ case element
140
+ when XMLSchema::Element
141
+ if element.type
142
+ element.type
143
+ elsif element.local_simpletype
144
+ element.local_simpletype.base
145
+ else
146
+ # element definition
147
+ nil
148
+ end
149
+ when XMLSchema::Any
150
+ XSD::AnyTypeName
151
+ else
152
+ nil
153
+ end
154
+ end
155
+
156
+ def map_as_array?
157
+ e = nested_elements
158
+ e.size == 1 and e[0].map_as_array?
159
+ end
160
+
161
+ def content_arytype
162
+ if arytype = find_arytype
163
+ ns = arytype.namespace
164
+ name = arytype.name.sub(/\[(?:,)*\]$/, '')
165
+ XSD::QName.new(ns, name)
166
+ else
167
+ nil
168
+ end
169
+ end
170
+ end
171
+
172
+
173
+ end
174
+ end