soap4r 1.5.5.20061022

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (440) hide show
  1. data/bin/wsdl2ruby.rb +131 -0
  2. data/bin/xsd2ruby.rb +82 -0
  3. data/lib/soap/XMLSchemaDatatypes.rb +9 -0
  4. data/lib/soap/XMLSchemaDatatypes1999.rb +10 -0
  5. data/lib/soap/attachment.rb +108 -0
  6. data/lib/soap/baseData.rb +992 -0
  7. data/lib/soap/cgistub.rb +9 -0
  8. data/lib/soap/charset.rb +9 -0
  9. data/lib/soap/compat.rb +182 -0
  10. data/lib/soap/driver.rb +9 -0
  11. data/lib/soap/element.rb +266 -0
  12. data/lib/soap/encodingstyle/aspDotNetHandler.rb +207 -0
  13. data/lib/soap/encodingstyle/handler.rb +109 -0
  14. data/lib/soap/encodingstyle/literalHandler.rb +241 -0
  15. data/lib/soap/encodingstyle/soapHandler.rb +598 -0
  16. data/lib/soap/generator.rb +264 -0
  17. data/lib/soap/header/handler.rb +60 -0
  18. data/lib/soap/header/handlerset.rb +70 -0
  19. data/lib/soap/header/simplehandler.rb +44 -0
  20. data/lib/soap/httpconfigloader.rb +119 -0
  21. data/lib/soap/mapping.rb +12 -0
  22. data/lib/soap/mapping/encodedregistry.rb +531 -0
  23. data/lib/soap/mapping/factory.rb +372 -0
  24. data/lib/soap/mapping/literalregistry.rb +321 -0
  25. data/lib/soap/mapping/mapping.rb +561 -0
  26. data/lib/soap/mapping/registry.rb +258 -0
  27. data/lib/soap/mapping/rubytypeFactory.rb +475 -0
  28. data/lib/soap/mapping/typeMap.rb +82 -0
  29. data/lib/soap/mapping/wsdlencodedregistry.rb +253 -0
  30. data/lib/soap/mapping/wsdlliteralregistry.rb +246 -0
  31. data/lib/soap/mappingRegistry.rb +9 -0
  32. data/lib/soap/marshal.rb +59 -0
  33. data/lib/soap/mimemessage.rb +241 -0
  34. data/lib/soap/namespace.rb +9 -0
  35. data/lib/soap/netHttpClient.rb +204 -0
  36. data/lib/soap/parser.rb +251 -0
  37. data/lib/soap/processor.rb +66 -0
  38. data/lib/soap/property.rb +333 -0
  39. data/lib/soap/proxy.rb +14 -0
  40. data/lib/soap/qname.rb +9 -0
  41. data/lib/soap/rpc/cgistub.rb +214 -0
  42. data/lib/soap/rpc/driver.rb +245 -0
  43. data/lib/soap/rpc/element.rb +330 -0
  44. data/lib/soap/rpc/httpserver.rb +143 -0
  45. data/lib/soap/rpc/proxy.rb +563 -0
  46. data/lib/soap/rpc/router.rb +602 -0
  47. data/lib/soap/rpc/rpc.rb +25 -0
  48. data/lib/soap/rpc/soaplet.rb +162 -0
  49. data/lib/soap/rpc/standaloneServer.rb +43 -0
  50. data/lib/soap/rpcRouter.rb +9 -0
  51. data/lib/soap/rpcUtils.rb +9 -0
  52. data/lib/soap/server.rb +9 -0
  53. data/lib/soap/soap.rb +150 -0
  54. data/lib/soap/standaloneServer.rb +9 -0
  55. data/lib/soap/streamHandler.rb +258 -0
  56. data/lib/soap/wsdlDriver.rb +580 -0
  57. data/lib/wsdl/binding.rb +65 -0
  58. data/lib/wsdl/data.rb +64 -0
  59. data/lib/wsdl/definitions.rb +250 -0
  60. data/lib/wsdl/documentation.rb +32 -0
  61. data/lib/wsdl/import.rb +80 -0
  62. data/lib/wsdl/importer.rb +38 -0
  63. data/lib/wsdl/info.rb +39 -0
  64. data/lib/wsdl/message.rb +54 -0
  65. data/lib/wsdl/operation.rb +175 -0
  66. data/lib/wsdl/operationBinding.rb +116 -0
  67. data/lib/wsdl/param.rb +85 -0
  68. data/lib/wsdl/parser.rb +163 -0
  69. data/lib/wsdl/part.rb +52 -0
  70. data/lib/wsdl/port.rb +84 -0
  71. data/lib/wsdl/portType.rb +75 -0
  72. data/lib/wsdl/service.rb +61 -0
  73. data/lib/wsdl/soap/address.rb +40 -0
  74. data/lib/wsdl/soap/binding.rb +49 -0
  75. data/lib/wsdl/soap/body.rb +56 -0
  76. data/lib/wsdl/soap/cgiStubCreator.rb +88 -0
  77. data/lib/wsdl/soap/classDefCreator.rb +340 -0
  78. data/lib/wsdl/soap/classDefCreatorSupport.rb +131 -0
  79. data/lib/wsdl/soap/clientSkeltonCreator.rb +93 -0
  80. data/lib/wsdl/soap/complexType.rb +166 -0
  81. data/lib/wsdl/soap/data.rb +42 -0
  82. data/lib/wsdl/soap/definitions.rb +151 -0
  83. data/lib/wsdl/soap/driverCreator.rb +110 -0
  84. data/lib/wsdl/soap/element.rb +28 -0
  85. data/lib/wsdl/soap/encodedMappingRegistryCreator.rb +117 -0
  86. data/lib/wsdl/soap/fault.rb +56 -0
  87. data/lib/wsdl/soap/header.rb +86 -0
  88. data/lib/wsdl/soap/headerfault.rb +56 -0
  89. data/lib/wsdl/soap/literalMappingRegistryCreator.rb +188 -0
  90. data/lib/wsdl/soap/mappingRegistryCreator.rb +53 -0
  91. data/lib/wsdl/soap/mappingRegistryCreatorSupport.rb +233 -0
  92. data/lib/wsdl/soap/methodDefCreator.rb +253 -0
  93. data/lib/wsdl/soap/operation.rb +122 -0
  94. data/lib/wsdl/soap/servantSkeltonCreator.rb +78 -0
  95. data/lib/wsdl/soap/standaloneServerStubCreator.rb +98 -0
  96. data/lib/wsdl/soap/wsdl2ruby.rb +196 -0
  97. data/lib/wsdl/types.rb +44 -0
  98. data/lib/wsdl/wsdl.rb +23 -0
  99. data/lib/wsdl/xmlSchema/all.rb +24 -0
  100. data/lib/wsdl/xmlSchema/annotation.rb +34 -0
  101. data/lib/wsdl/xmlSchema/any.rb +56 -0
  102. data/lib/wsdl/xmlSchema/attribute.rb +123 -0
  103. data/lib/wsdl/xmlSchema/choice.rb +55 -0
  104. data/lib/wsdl/xmlSchema/complexContent.rb +88 -0
  105. data/lib/wsdl/xmlSchema/complexExtension.rb +104 -0
  106. data/lib/wsdl/xmlSchema/complexRestriction.rb +92 -0
  107. data/lib/wsdl/xmlSchema/complexType.rb +152 -0
  108. data/lib/wsdl/xmlSchema/content.rb +74 -0
  109. data/lib/wsdl/xmlSchema/data.rb +90 -0
  110. data/lib/wsdl/xmlSchema/element.rb +158 -0
  111. data/lib/wsdl/xmlSchema/enumeration.rb +36 -0
  112. data/lib/wsdl/xmlSchema/import.rb +65 -0
  113. data/lib/wsdl/xmlSchema/importer.rb +87 -0
  114. data/lib/wsdl/xmlSchema/include.rb +54 -0
  115. data/lib/wsdl/xmlSchema/length.rb +35 -0
  116. data/lib/wsdl/xmlSchema/list.rb +48 -0
  117. data/lib/wsdl/xmlSchema/maxlength.rb +35 -0
  118. data/lib/wsdl/xmlSchema/minlength.rb +35 -0
  119. data/lib/wsdl/xmlSchema/parser.rb +166 -0
  120. data/lib/wsdl/xmlSchema/pattern.rb +36 -0
  121. data/lib/wsdl/xmlSchema/schema.rb +144 -0
  122. data/lib/wsdl/xmlSchema/sequence.rb +51 -0
  123. data/lib/wsdl/xmlSchema/simpleContent.rb +69 -0
  124. data/lib/wsdl/xmlSchema/simpleExtension.rb +54 -0
  125. data/lib/wsdl/xmlSchema/simpleRestriction.rb +91 -0
  126. data/lib/wsdl/xmlSchema/simpleType.rb +80 -0
  127. data/lib/wsdl/xmlSchema/unique.rb +34 -0
  128. data/lib/wsdl/xmlSchema/xsd2ruby.rb +107 -0
  129. data/lib/xsd/charset.rb +187 -0
  130. data/lib/xsd/codegen.rb +12 -0
  131. data/lib/xsd/codegen/classdef.rb +203 -0
  132. data/lib/xsd/codegen/commentdef.rb +34 -0
  133. data/lib/xsd/codegen/gensupport.rb +168 -0
  134. data/lib/xsd/codegen/methoddef.rb +70 -0
  135. data/lib/xsd/codegen/moduledef.rb +191 -0
  136. data/lib/xsd/datatypes.rb +1282 -0
  137. data/lib/xsd/datatypes1999.rb +20 -0
  138. data/lib/xsd/iconvcharset.rb +33 -0
  139. data/lib/xsd/mapping.rb +42 -0
  140. data/lib/xsd/namedelements.rb +124 -0
  141. data/lib/xsd/ns.rb +146 -0
  142. data/lib/xsd/qname.rb +78 -0
  143. data/lib/xsd/xmlparser.rb +61 -0
  144. data/lib/xsd/xmlparser/parser.rb +96 -0
  145. data/lib/xsd/xmlparser/rexmlparser.rb +54 -0
  146. data/lib/xsd/xmlparser/xmlparser.rb +50 -0
  147. data/lib/xsd/xmlparser/xmlscanner.rb +147 -0
  148. data/test/16runner.rb +68 -0
  149. data/test/interopR2/README.txt +2 -0
  150. data/test/interopR2/SOAPBuildersInterop_R2.wsdl +461 -0
  151. data/test/interopR2/SOAPBuildersInterop_R2GrB.wsdl +19 -0
  152. data/test/interopR2/base.rb +288 -0
  153. data/test/interopR2/client.NetRemoting.rb +17 -0
  154. data/test/interopR2/client.NetRemoting.rb.result +3410 -0
  155. data/test/interopR2/client.NetRemoting_Base.log +6279 -0
  156. data/test/interopR2/client.NetRemoting_GroupB.log +1188 -0
  157. data/test/interopR2/client.rb +1228 -0
  158. data/test/interopR2/client4S4C.rb +15 -0
  159. data/test/interopR2/client4S4C2.rb +14 -0
  160. data/test/interopR2/client4S4C2_Base.log +4955 -0
  161. data/test/interopR2/client4S4C2_GroupB.log +1000 -0
  162. data/test/interopR2/client4S4C_Base.log +4635 -0
  163. data/test/interopR2/client4S4C_GroupB.log +900 -0
  164. data/test/interopR2/clientASP.NET.rb +17 -0
  165. data/test/interopR2/clientASP.NET_Base.log +5468 -0
  166. data/test/interopR2/clientASP.NET_GroupB.log +977 -0
  167. data/test/interopR2/clientApacheAxis.rb +16 -0
  168. data/test/interopR2/clientApacheAxis_Base.log +3171 -0
  169. data/test/interopR2/clientApacheAxis_GroupB.log +498 -0
  170. data/test/interopR2/clientApacheSOAP.rb +17 -0
  171. data/test/interopR2/clientApacheSOAP_Base.log +3171 -0
  172. data/test/interopR2/clientBEAWebLogic.rb +17 -0
  173. data/test/interopR2/clientBEAWebLogic_Base.log +3171 -0
  174. data/test/interopR2/clientBEAWebLogic_GroupB.log +498 -0
  175. data/test/interopR2/clientBase.rb +1970 -0
  176. data/test/interopR2/clientCapeConnect.rb +18 -0
  177. data/test/interopR2/clientCapeConnect_Base.log +2126 -0
  178. data/test/interopR2/clientDelphi.rb +19 -0
  179. data/test/interopR2/clientDelphi_Base.log +0 -0
  180. data/test/interopR2/clientEasySoap.rb +14 -0
  181. data/test/interopR2/clientEasySoap_Base.log +6187 -0
  182. data/test/interopR2/clientEasySoap_GroupB.log +1076 -0
  183. data/test/interopR2/clientFrontier.rb +25 -0
  184. data/test/interopR2/clientFrontier_Base.log +5188 -0
  185. data/test/interopR2/clientGLUE.rb +32 -0
  186. data/test/interopR2/clientHP.rb +13 -0
  187. data/test/interopR2/clientHP_Base.log +3171 -0
  188. data/test/interopR2/clientHP_GroupB.log +498 -0
  189. data/test/interopR2/clientJAX-RPC.rb +19 -0
  190. data/test/interopR2/clientJSOAP.rb +14 -0
  191. data/test/interopR2/clientJSOAP_Base.log +4465 -0
  192. data/test/interopR2/clientJSOAP_GroupB.log +824 -0
  193. data/test/interopR2/clientKafkaXSLT.rb +15 -0
  194. data/test/interopR2/clientKafkaXSLT_Base.log +10299 -0
  195. data/test/interopR2/clientKafkaXSLT_GroupB.log +1739 -0
  196. data/test/interopR2/clientMSSOAPToolkit2.0.rb +17 -0
  197. data/test/interopR2/clientMSSOAPToolkit2.0_Base.log +4805 -0
  198. data/test/interopR2/clientMSSOAPToolkit2.0_GroupB.log +871 -0
  199. data/test/interopR2/clientMSSOAPToolkit3.0.rb +17 -0
  200. data/test/interopR2/clientMSSOAPToolkit3.0_Base.log +5076 -0
  201. data/test/interopR2/clientMSSOAPToolkit3.0_GroupB.log +908 -0
  202. data/test/interopR2/clientNuSOAP.rb +19 -0
  203. data/test/interopR2/clientNuSOAP_Base.log +5076 -0
  204. data/test/interopR2/clientNuSOAP_GroupB.log +958 -0
  205. data/test/interopR2/clientNuWave.rb +15 -0
  206. data/test/interopR2/clientNuWave_Base.log +2019 -0
  207. data/test/interopR2/clientOpenLink.rb +15 -0
  208. data/test/interopR2/clientOpenLink_Base.log +6171 -0
  209. data/test/interopR2/clientOpenLink_GroupB.log +1094 -0
  210. data/test/interopR2/clientOracle.rb +15 -0
  211. data/test/interopR2/clientOracle_Base.log +5594 -0
  212. data/test/interopR2/clientPEAR.rb +18 -0
  213. data/test/interopR2/clientPEAR_Base.log +6261 -0
  214. data/test/interopR2/clientPEAR_GroupB.log +1106 -0
  215. data/test/interopR2/clientPhalanx.rb +18 -0
  216. data/test/interopR2/clientPhalanx_Base.log +41036 -0
  217. data/test/interopR2/clientPhalanx_GroupB.log +6519 -0
  218. data/test/interopR2/clientSIMACE.rb +18 -0
  219. data/test/interopR2/clientSIMACE_Base.log +6171 -0
  220. data/test/interopR2/clientSIMACE_GroupB.log +1093 -0
  221. data/test/interopR2/clientSOAP4R.rb +18 -0
  222. data/test/interopR2/clientSOAP4R.rb.result +3409 -0
  223. data/test/interopR2/clientSOAP4R_Base.log +6366 -0
  224. data/test/interopR2/clientSOAP4R_GroupB.log +1112 -0
  225. data/test/interopR2/clientSOAP__Lite.rb +14 -0
  226. data/test/interopR2/clientSQLData.rb +18 -0
  227. data/test/interopR2/clientSQLData_Base.log +4857 -0
  228. data/test/interopR2/clientSQLData_GroupB.log +770 -0
  229. data/test/interopR2/clientSilverStream.rb +17 -0
  230. data/test/interopR2/clientSilverStream_Base.log +3171 -0
  231. data/test/interopR2/clientSpray2001.rb +17 -0
  232. data/test/interopR2/clientSpray2001_Base.log +8187 -0
  233. data/test/interopR2/clientSpray2001_GroupB.log +1408 -0
  234. data/test/interopR2/clientSun.rb +19 -0
  235. data/test/interopR2/clientSun_Base.log +4641 -0
  236. data/test/interopR2/clientSun_GroupB.log +856 -0
  237. data/test/interopR2/clientVWOpentalkSoap.rb +19 -0
  238. data/test/interopR2/clientVWOpentalkSoap_Base.log +5402 -0
  239. data/test/interopR2/clientVWOpentalkSoap_GroupB.log +972 -0
  240. data/test/interopR2/clientWASP.rb +19 -0
  241. data/test/interopR2/clientWASPC.rb +18 -0
  242. data/test/interopR2/clientWASPC_Base.log +4187 -0
  243. data/test/interopR2/clientWASPC_GroupB.log +763 -0
  244. data/test/interopR2/clientWASP_Base.log +5414 -0
  245. data/test/interopR2/clientWASP_GroupB.log +970 -0
  246. data/test/interopR2/clientWebMethods.rb +15 -0
  247. data/test/interopR2/clientWebMethods_Base.log +3075 -0
  248. data/test/interopR2/clientWebMethods_GroupB.log +483 -0
  249. data/test/interopR2/clientWhiteMesa.rb +28 -0
  250. data/test/interopR2/clientWhiteMesa_Base.log +4359 -0
  251. data/test/interopR2/clientWhiteMesa_GroupB.log +808 -0
  252. data/test/interopR2/clientWingfoot.rb +15 -0
  253. data/test/interopR2/clientWingfoot_Base.log +4445 -0
  254. data/test/interopR2/clientWingfoot_GroupB.log +848 -0
  255. data/test/interopR2/clientXMLBus.rb +19 -0
  256. data/test/interopR2/clientXMLBus_Base.log +3075 -0
  257. data/test/interopR2/clientXMLBus_GroupB.log +483 -0
  258. data/test/interopR2/clientXMLRPC-EPI.rb +17 -0
  259. data/test/interopR2/clientXSOAP.rb +14 -0
  260. data/test/interopR2/clientXSOAP_Base.log +4445 -0
  261. data/test/interopR2/clientZSI.rb +19 -0
  262. data/test/interopR2/clienteSOAP.rb +18 -0
  263. data/test/interopR2/clienteSOAP_Base.log +8728 -0
  264. data/test/interopR2/clientgSOAP.rb +18 -0
  265. data/test/interopR2/clientgSOAP_Base.log +4689 -0
  266. data/test/interopR2/clientgSOAP_GroupB.log +1014 -0
  267. data/test/interopR2/clientkSOAP.rb +17 -0
  268. data/test/interopR2/clientkSOAP_Base.log +5625 -0
  269. data/test/interopR2/iSimonReg.rb +112 -0
  270. data/test/interopR2/interopResultBase.rb +114 -0
  271. data/test/interopR2/interopService.rb +247 -0
  272. data/test/interopR2/result_client.NetRemoting.txt +4593 -0
  273. data/test/interopR2/rwikiInteropService.rb +105 -0
  274. data/test/interopR2/server.cgi +270 -0
  275. data/test/interopR2/server.rb +274 -0
  276. data/test/interopR2/simonReg.rb +123 -0
  277. data/test/interopR2/test.sh +49 -0
  278. data/test/interopR4/client.rb +112 -0
  279. data/test/runner.rb +9 -0
  280. data/test/sm11/classDef.rb +156 -0
  281. data/test/sm11/client.rb +542 -0
  282. data/test/sm11/driver.rb +183 -0
  283. data/test/sm11/servant.rb +1067 -0
  284. data/test/sm11/server.rb +25 -0
  285. data/test/soap/asp.net/hello.wsdl +96 -0
  286. data/test/soap/asp.net/test_aspdotnet.rb +112 -0
  287. data/test/soap/calc/calc.rb +17 -0
  288. data/test/soap/calc/calc2.rb +29 -0
  289. data/test/soap/calc/server.cgi +13 -0
  290. data/test/soap/calc/server.rb +17 -0
  291. data/test/soap/calc/server2.rb +20 -0
  292. data/test/soap/calc/test_calc.rb +49 -0
  293. data/test/soap/calc/test_calc2.rb +53 -0
  294. data/test/soap/calc/test_calc_cgi.rb +69 -0
  295. data/test/soap/fault/test_customfault.rb +58 -0
  296. data/test/soap/header/server.cgi +119 -0
  297. data/test/soap/header/test_authheader.rb +240 -0
  298. data/test/soap/header/test_authheader_cgi.rb +121 -0
  299. data/test/soap/header/test_simplehandler.rb +116 -0
  300. data/test/soap/helloworld/hw_s.rb +16 -0
  301. data/test/soap/helloworld/test_helloworld.rb +41 -0
  302. data/test/soap/literalArrayMapping/amazonEc.rb +4778 -0
  303. data/test/soap/literalArrayMapping/amazonEcDriver.rb +172 -0
  304. data/test/soap/literalArrayMapping/amazonresponse.xml +100 -0
  305. data/test/soap/literalArrayMapping/test_definedarray.rb +36 -0
  306. data/test/soap/marshal/marshaltestlib.rb +494 -0
  307. data/test/soap/marshal/test_digraph.rb +56 -0
  308. data/test/soap/marshal/test_marshal.rb +26 -0
  309. data/test/soap/marshal/test_struct.rb +47 -0
  310. data/test/soap/ssl/README +1 -0
  311. data/test/soap/ssl/ca.cert +23 -0
  312. data/test/soap/ssl/client.cert +19 -0
  313. data/test/soap/ssl/client.key +15 -0
  314. data/test/soap/ssl/server.cert +19 -0
  315. data/test/soap/ssl/server.key +15 -0
  316. data/test/soap/ssl/sslsvr.rb +57 -0
  317. data/test/soap/ssl/subca.cert +21 -0
  318. data/test/soap/ssl/test_ssl.rb +245 -0
  319. data/test/soap/struct/test_struct.rb +77 -0
  320. data/test/soap/styleuse/client.rb +20 -0
  321. data/test/soap/styleuse/server.rb +86 -0
  322. data/test/soap/swa/test_file.rb +73 -0
  323. data/test/soap/test_basetype.rb +976 -0
  324. data/test/soap/test_custommap.rb +108 -0
  325. data/test/soap/test_empty.rb +79 -0
  326. data/test/soap/test_envelopenamespace.rb +92 -0
  327. data/test/soap/test_httpconfigloader.rb +39 -0
  328. data/test/soap/test_mapping.rb +59 -0
  329. data/test/soap/test_no_indent.rb +86 -0
  330. data/test/soap/test_property.rb +424 -0
  331. data/test/soap/test_response_as_xml.rb +95 -0
  332. data/test/soap/test_soapelement.rb +120 -0
  333. data/test/soap/test_streamhandler.rb +262 -0
  334. data/test/soap/test_styleuse.rb +333 -0
  335. data/test/soap/wsdlDriver/README.txt +2 -0
  336. data/test/soap/wsdlDriver/calc.wsdl +126 -0
  337. data/test/soap/wsdlDriver/document.wsdl +54 -0
  338. data/test/soap/wsdlDriver/echo_version.rb +29 -0
  339. data/test/soap/wsdlDriver/simpletype.wsdl +63 -0
  340. data/test/soap/wsdlDriver/test_calc.rb +100 -0
  341. data/test/soap/wsdlDriver/test_document.rb +78 -0
  342. data/test/soap/wsdlDriver/test_simpletype.rb +87 -0
  343. data/test/wsdl/abstract/abstract.wsdl +97 -0
  344. data/test/wsdl/abstract/test_abstract.rb +130 -0
  345. data/test/wsdl/any/any.wsdl +51 -0
  346. data/test/wsdl/any/expectedDriver.rb +46 -0
  347. data/test/wsdl/any/expectedEcho.rb +18 -0
  348. data/test/wsdl/any/expectedService.rb +42 -0
  349. data/test/wsdl/any/test_any.rb +193 -0
  350. data/test/wsdl/axisArray/axisArray.wsdl +60 -0
  351. data/test/wsdl/axisArray/itemList.rb +14 -0
  352. data/test/wsdl/axisArray/test_axisarray.rb +69 -0
  353. data/test/wsdl/choice/choice.wsdl +91 -0
  354. data/test/wsdl/choice/test_choice.rb +134 -0
  355. data/test/wsdl/complexcontent/complexContent.wsdl +83 -0
  356. data/test/wsdl/complexcontent/test_echo.rb +101 -0
  357. data/test/wsdl/datetime/DatetimeService.rb +44 -0
  358. data/test/wsdl/datetime/datetime.rb +0 -0
  359. data/test/wsdl/datetime/datetime.wsdl +45 -0
  360. data/test/wsdl/datetime/datetimeServant.rb +21 -0
  361. data/test/wsdl/datetime/test_datetime.rb +82 -0
  362. data/test/wsdl/document/array/double.wsdl +72 -0
  363. data/test/wsdl/document/array/test_array.rb +117 -0
  364. data/test/wsdl/document/document.wsdl +74 -0
  365. data/test/wsdl/document/number.wsdl +54 -0
  366. data/test/wsdl/document/ping_nosoapaction.wsdl +66 -0
  367. data/test/wsdl/document/test_nosoapaction.rb +109 -0
  368. data/test/wsdl/document/test_number.rb +99 -0
  369. data/test/wsdl/document/test_rpc.rb +211 -0
  370. data/test/wsdl/emptycomplextype.wsdl +31 -0
  371. data/test/wsdl/list/list.wsdl +93 -0
  372. data/test/wsdl/list/test_list.rb +134 -0
  373. data/test/wsdl/map/map.wsdl +92 -0
  374. data/test/wsdl/map/map.xml +43 -0
  375. data/test/wsdl/map/test_map.rb +99 -0
  376. data/test/wsdl/marshal/person.wsdl +21 -0
  377. data/test/wsdl/marshal/person_org.rb +18 -0
  378. data/test/wsdl/marshal/test_wsdlmarshal.rb +79 -0
  379. data/test/wsdl/multiplefault.wsdl +68 -0
  380. data/test/wsdl/overload/overload.wsdl +80 -0
  381. data/test/wsdl/overload/test_overload.rb +118 -0
  382. data/test/wsdl/qualified/lp.wsdl +47 -0
  383. data/test/wsdl/qualified/lp.xsd +26 -0
  384. data/test/wsdl/qualified/np.wsdl +51 -0
  385. data/test/wsdl/qualified/test_qualified.rb +145 -0
  386. data/test/wsdl/qualified/test_unqualified.rb +159 -0
  387. data/test/wsdl/raa/RAA.rb +120 -0
  388. data/test/wsdl/raa/RAAServant.rb +107 -0
  389. data/test/wsdl/raa/RAAService.rb +120 -0
  390. data/test/wsdl/raa/README.txt +8 -0
  391. data/test/wsdl/raa/raa.wsdl +264 -0
  392. data/test/wsdl/raa/server.rb +103 -0
  393. data/test/wsdl/raa/test_raa.rb +91 -0
  394. data/test/wsdl/ref/expectedProduct.rb +158 -0
  395. data/test/wsdl/ref/product.wsdl +147 -0
  396. data/test/wsdl/ref/test_ref.rb +289 -0
  397. data/test/wsdl/rpc/rpc.wsdl +83 -0
  398. data/test/wsdl/rpc/test-rpc-lit.wsdl +364 -0
  399. data/test/wsdl/rpc/test_rpc.rb +173 -0
  400. data/test/wsdl/rpc/test_rpc_lit.rb +407 -0
  401. data/test/wsdl/simplecontent/simplecontent.wsdl +83 -0
  402. data/test/wsdl/simplecontent/test_simplecontent.rb +116 -0
  403. data/test/wsdl/simpletype/rpc/expectedClient.rb +34 -0
  404. data/test/wsdl/simpletype/rpc/expectedDriver.rb +55 -0
  405. data/test/wsdl/simpletype/rpc/expectedEchoVersion.rb +19 -0
  406. data/test/wsdl/simpletype/rpc/expectedServant.rb +32 -0
  407. data/test/wsdl/simpletype/rpc/expectedService.rb +51 -0
  408. data/test/wsdl/simpletype/rpc/rpc.wsdl +80 -0
  409. data/test/wsdl/simpletype/rpc/test_rpc.rb +62 -0
  410. data/test/wsdl/simpletype/simpletype.wsdl +95 -0
  411. data/test/wsdl/simpletype/test_simpletype.rb +99 -0
  412. data/test/wsdl/soap/soapbodyparts.wsdl +103 -0
  413. data/test/wsdl/soap/test_soapbodyparts.rb +79 -0
  414. data/test/wsdl/soap/wsdl2ruby/expectedClassdef.rb +19 -0
  415. data/test/wsdl/soap/wsdl2ruby/expectedClient.rb +34 -0
  416. data/test/wsdl/soap/wsdl2ruby/expectedDriver.rb +55 -0
  417. data/test/wsdl/soap/wsdl2ruby/expectedServant.rb +32 -0
  418. data/test/wsdl/soap/wsdl2ruby/expectedService.cgi +44 -0
  419. data/test/wsdl/soap/wsdl2ruby/expectedService.rb +51 -0
  420. data/test/wsdl/soap/wsdl2ruby/rpc.wsdl +80 -0
  421. data/test/wsdl/soap/wsdl2ruby/section/expectedClassdef.rb +31 -0
  422. data/test/wsdl/soap/wsdl2ruby/section/section.xsd +31 -0
  423. data/test/wsdl/soap/wsdl2ruby/section/test_section.rb +54 -0
  424. data/test/wsdl/soap/wsdl2ruby/soapenc/soapenc.wsdl +64 -0
  425. data/test/wsdl/soap/wsdl2ruby/soapenc/test_soapenc.rb +96 -0
  426. data/test/wsdl/soap/wsdl2ruby/test_wsdl2ruby.rb +79 -0
  427. data/test/wsdl/soaptype/soaptype.wsdl +61 -0
  428. data/test/wsdl/soaptype/test_soaptype.rb +160 -0
  429. data/test/wsdl/test_emptycomplextype.rb +21 -0
  430. data/test/wsdl/test_fault.rb +50 -0
  431. data/test/wsdl/test_multiplefault.rb +39 -0
  432. data/test/xsd/codegen/test_classdef.rb +214 -0
  433. data/test/xsd/noencoding.xml +4 -0
  434. data/test/xsd/test_noencoding.rb +32 -0
  435. data/test/xsd/test_ns.rb +20 -0
  436. data/test/xsd/test_xmlschemaparser.rb +22 -0
  437. data/test/xsd/test_xsd.rb +1523 -0
  438. data/test/xsd/xmllang.xml +43 -0
  439. data/test/xsd/xmlschema.xml +12 -0
  440. metadata +539 -0
@@ -0,0 +1,131 @@
1
+ # WSDL4R - Creating class code support from WSDL.
2
+ # Copyright (C) 2004 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 'soap/mapping'
11
+ require 'soap/mapping/typeMap'
12
+ require 'xsd/codegen/gensupport'
13
+
14
+
15
+ module WSDL
16
+ module SOAP
17
+
18
+
19
+ module ClassDefCreatorSupport
20
+ include XSD::CodeGen::GenSupport
21
+
22
+ def create_class_name(qname, modulepath = nil)
23
+ if klass = basetype_mapped_class(qname)
24
+ ::SOAP::Mapping::DefaultRegistry.find_mapped_obj_class(klass).name
25
+ else
26
+ name = safeconstname(qname.name)
27
+ if modulepath
28
+ [modulepath, name].join('::')
29
+ else
30
+ name
31
+ end
32
+ end
33
+ end
34
+
35
+ def basetype_mapped_class(name)
36
+ ::SOAP::TypeMap[name]
37
+ end
38
+
39
+ def dump_method_signature(operation)
40
+ name = operation.name
41
+ input = operation.input
42
+ output = operation.output
43
+ fault = operation.fault
44
+ signature = "#{ name }#{ dump_inputparam(input) }"
45
+ str = <<__EOD__
46
+ # SYNOPSIS
47
+ # #{name}#{dump_inputparam(input)}
48
+ #
49
+ # ARGS
50
+ #{dump_inout_type(input).chomp}
51
+ #
52
+ # RETURNS
53
+ #{dump_inout_type(output).chomp}
54
+ #
55
+ __EOD__
56
+ unless fault.empty?
57
+ faultstr = (fault.collect { |f| dump_inout_type(f).chomp }).join(', ')
58
+ str <<<<__EOD__
59
+ # RAISES
60
+ # #{faultstr}
61
+ #
62
+ __EOD__
63
+ end
64
+ str
65
+ end
66
+
67
+ def dq(ele)
68
+ ele.dump
69
+ end
70
+
71
+ def ndq(ele)
72
+ ele.nil? ? 'nil' : dq(ele)
73
+ end
74
+
75
+ def sym(ele)
76
+ ':' + ele
77
+ end
78
+
79
+ def dqname(qname)
80
+ qname.dump
81
+ end
82
+
83
+ private
84
+
85
+ def dump_inout_type(param)
86
+ if param
87
+ message = param.find_message
88
+ params = ""
89
+ message.parts.each do |part|
90
+ name = safevarname(part.name)
91
+ if part.type
92
+ typename = safeconstname(part.type.name)
93
+ params << add_at("# #{name}", "#{typename} - #{part.type}\n", 20)
94
+ elsif part.element
95
+ typename = safeconstname(part.element.name)
96
+ params << add_at("# #{name}", "#{typename} - #{part.element}\n", 20)
97
+ end
98
+ end
99
+ unless params.empty?
100
+ return params
101
+ end
102
+ end
103
+ "# N/A\n"
104
+ end
105
+
106
+ def dump_inputparam(input)
107
+ message = input.find_message
108
+ params = ""
109
+ message.parts.each do |part|
110
+ params << ", " unless params.empty?
111
+ params << safevarname(part.name)
112
+ end
113
+ if params.empty?
114
+ ""
115
+ else
116
+ "(#{ params })"
117
+ end
118
+ end
119
+
120
+ def add_at(base, str, pos)
121
+ if base.size >= pos
122
+ base + ' ' + str
123
+ else
124
+ base + ' ' * (pos - base.size) + str
125
+ end
126
+ end
127
+ end
128
+
129
+
130
+ end
131
+ end
@@ -0,0 +1,93 @@
1
+ # WSDL4R - Creating client skelton code from WSDL.
2
+ # Copyright (C) 2002, 2003, 2006 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
3
+
4
+ # This program is copyrighted free software by NAKAMURA, Hiroshi. You can
5
+ # redistribute it and/or modify it under the same terms of Ruby's license;
6
+ # either the dual license version in 2003, or any later version.
7
+
8
+
9
+ require 'wsdl/info'
10
+ require 'wsdl/soap/classDefCreatorSupport'
11
+
12
+
13
+ module WSDL
14
+ module SOAP
15
+
16
+
17
+ class ClientSkeltonCreator
18
+ include ClassDefCreatorSupport
19
+
20
+ attr_reader :definitions
21
+
22
+ def initialize(definitions, modulepath = nil)
23
+ @definitions = definitions
24
+ @modulepath = modulepath
25
+ end
26
+
27
+ def dump(service_name)
28
+ services = @definitions.service(service_name)
29
+ unless services
30
+ raise RuntimeError.new("service not defined: #{service_name}")
31
+ end
32
+ result = ""
33
+ if @modulepath
34
+ result << "\n"
35
+ result << @modulepath.collect { |ele| "module #{ele}" }.join("; ")
36
+ result << "\n\n"
37
+ end
38
+ services.ports.each do |port|
39
+ result << dump_porttype(port.porttype.name)
40
+ result << "\n"
41
+ end
42
+ if @modulepath
43
+ result << "\n\n"
44
+ result << @modulepath.collect { |ele| "end" }.join("; ")
45
+ result << "\n"
46
+ end
47
+ result
48
+ end
49
+
50
+ private
51
+
52
+ def dump_porttype(name)
53
+ drv_name = create_class_name(name)
54
+
55
+ result = ""
56
+ result << <<__EOD__
57
+ endpoint_url = ARGV.shift
58
+ obj = #{ drv_name }.new(endpoint_url)
59
+
60
+ # run ruby with -d to see SOAP wiredumps.
61
+ obj.wiredump_dev = STDERR if $DEBUG
62
+
63
+ __EOD__
64
+ @definitions.porttype(name).operations.each do |operation|
65
+ result << dump_method_signature(operation)
66
+ result << dump_input_init(operation.input) << "\n"
67
+ result << dump_operation(operation) << "\n\n"
68
+ end
69
+ result
70
+ end
71
+
72
+ def dump_operation(operation)
73
+ name = operation.name
74
+ input = operation.input
75
+ "puts obj.#{ safemethodname(name) }#{ dump_inputparam(input) }"
76
+ end
77
+
78
+ def dump_input_init(input)
79
+ result = input.find_message.parts.collect { |part|
80
+ safevarname(part.name)
81
+ }.join(" = ")
82
+ if result.empty?
83
+ ""
84
+ else
85
+ result << " = nil"
86
+ end
87
+ result
88
+ end
89
+ end
90
+
91
+
92
+ end
93
+ end
@@ -0,0 +1,166 @@
1
+ # WSDL4R - SOAP complexType definition for WSDL.
2
+ # Copyright (C) 2002, 2003 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/xmlSchema/complexType'
10
+ require 'soap/mapping'
11
+
12
+
13
+ module WSDL
14
+ module XMLSchema
15
+
16
+
17
+ class ComplexType < Info
18
+ def compoundtype
19
+ @compoundtype ||= check_type
20
+ end
21
+
22
+ def check_type
23
+ if have_any?
24
+ :TYPE_STRUCT
25
+ elsif content
26
+ e = elements
27
+ if attributes.empty? and e.size == 1 and e[0].maxoccurs != '1'
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_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
+ if check_array_content
111
+ return element_simpletype(elements[0])
112
+ end
113
+ raise RuntimeError.new("Assert: Unknown array definition.")
114
+ end
115
+
116
+ def find_aryelement
117
+ unless compoundtype == :TYPE_ARRAY
118
+ raise RuntimeError.new("Assert: not for array")
119
+ end
120
+ if check_array_content
121
+ return elements[0]
122
+ end
123
+ nil # use default item name
124
+ end
125
+
126
+ private
127
+
128
+ def element_simpletype(element)
129
+ case element
130
+ when XMLSchema::Element
131
+ if element.type
132
+ element.type
133
+ elsif element.local_simpletype
134
+ element.local_simpletype.base
135
+ else
136
+ # element definition
137
+ nil
138
+ end
139
+ when XMLSchema::Any
140
+ XSD::AnyTypeName
141
+ else
142
+ nil
143
+ end
144
+ end
145
+
146
+ def check_array_content
147
+ e = elements
148
+ e.size == 1 and e[0].maxoccurs != '1'
149
+ # content and content.elements.size == 1 and
150
+ # content.elements[0].maxoccurs != '1'
151
+ end
152
+
153
+ def content_arytype
154
+ if arytype = find_arytype
155
+ ns = arytype.namespace
156
+ name = arytype.name.sub(/\[(?:,)*\]$/, '')
157
+ XSD::QName.new(ns, name)
158
+ else
159
+ nil
160
+ end
161
+ end
162
+ end
163
+
164
+
165
+ end
166
+ end
@@ -0,0 +1,42 @@
1
+ # WSDL4R - WSDL SOAP binding data definitions.
2
+ # Copyright (C) 2002, 2003 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/soap/definitions'
11
+ require 'wsdl/soap/binding'
12
+ require 'wsdl/soap/operation'
13
+ require 'wsdl/soap/body'
14
+ require 'wsdl/soap/element'
15
+ require 'wsdl/soap/header'
16
+ require 'wsdl/soap/headerfault'
17
+ require 'wsdl/soap/fault'
18
+ require 'wsdl/soap/address'
19
+ require 'wsdl/soap/complexType'
20
+
21
+
22
+ module WSDL
23
+ module SOAP
24
+
25
+
26
+ HeaderFaultName = XSD::QName.new(SOAPBindingNamespace, 'headerfault')
27
+
28
+ LocationAttrName = XSD::QName.new(nil, 'location')
29
+ StyleAttrName = XSD::QName.new(nil, 'style')
30
+ TransportAttrName = XSD::QName.new(nil, 'transport')
31
+ UseAttrName = XSD::QName.new(nil, 'use')
32
+ PartsAttrName = XSD::QName.new(nil, 'parts')
33
+ PartAttrName = XSD::QName.new(nil, 'part')
34
+ NameAttrName = XSD::QName.new(nil, 'name')
35
+ MessageAttrName = XSD::QName.new(nil, 'message')
36
+ EncodingStyleAttrName = XSD::QName.new(nil, 'encodingStyle')
37
+ NamespaceAttrName = XSD::QName.new(nil, 'namespace')
38
+ SOAPActionAttrName = XSD::QName.new(nil, 'soapAction')
39
+
40
+
41
+ end
42
+ end
@@ -0,0 +1,151 @@
1
+ # WSDL4R - WSDL additional definitions for SOAP.
2
+ # Copyright (C) 2002-2005 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
+ require 'soap/mapping'
12
+
13
+
14
+ module WSDL
15
+
16
+
17
+ class Definitions < Info
18
+ def self.soap_rpc_complextypes
19
+ types = XSD::NamedElements.new
20
+ types << array_complextype
21
+ types << fault_complextype
22
+ types << exception_complextype
23
+ types
24
+ end
25
+
26
+ def self.array_complextype
27
+ type = XMLSchema::ComplexType.new(::SOAP::ValueArrayName)
28
+ type.complexcontent = XMLSchema::ComplexContent.new
29
+ type.complexcontent.restriction = XMLSchema::ComplexRestriction.new
30
+ type.complexcontent.restriction.base = ::SOAP::ValueArrayName
31
+ attr = XMLSchema::Attribute.new
32
+ attr.ref = ::SOAP::AttrArrayTypeName
33
+ anyarray = XSD::QName.new(
34
+ XSD::AnyTypeName.namespace,
35
+ XSD::AnyTypeName.name + '[]')
36
+ attr.arytype = anyarray
37
+ type.complexcontent.restriction.attributes << attr
38
+ type
39
+ end
40
+
41
+ =begin
42
+ <xs:complexType name="Fault" final="extension">
43
+ <xs:sequence>
44
+ <xs:element name="faultcode" type="xs:QName" />
45
+ <xs:element name="faultstring" type="xs:string" />
46
+ <xs:element name="faultactor" type="xs:anyURI" minOccurs="0" />
47
+ <xs:element name="detail" type="tns:detail" minOccurs="0" />
48
+ </xs:sequence>
49
+ </xs:complexType>
50
+ =end
51
+ def self.fault_complextype
52
+ type = XMLSchema::ComplexType.new(::SOAP::EleFaultName)
53
+ faultcode = XMLSchema::Element.new(::SOAP::EleFaultCodeName, XSD::XSDQName::Type)
54
+ faultstring = XMLSchema::Element.new(::SOAP::EleFaultStringName, XSD::XSDString::Type)
55
+ faultactor = XMLSchema::Element.new(::SOAP::EleFaultActorName, XSD::XSDAnyURI::Type)
56
+ faultactor.minoccurs = 0
57
+ detail = XMLSchema::Element.new(::SOAP::EleFaultDetailName, XSD::AnyTypeName)
58
+ detail.minoccurs = 0
59
+ type.all_elements = [faultcode, faultstring, faultactor, detail]
60
+ type.final = 'extension'
61
+ type
62
+ end
63
+
64
+ def self.exception_complextype
65
+ type = XMLSchema::ComplexType.new(XSD::QName.new(
66
+ ::SOAP::Mapping::RubyCustomTypeNamespace, 'SOAPException'))
67
+ excn_name = XMLSchema::Element.new(XSD::QName.new(nil, 'excn_type_name'), XSD::XSDString::Type)
68
+ cause = XMLSchema::Element.new(XSD::QName.new(nil, 'cause'), XSD::AnyTypeName)
69
+ backtrace = XMLSchema::Element.new(XSD::QName.new(nil, 'backtrace'), ::SOAP::ValueArrayName)
70
+ message = XMLSchema::Element.new(XSD::QName.new(nil, 'message'), XSD::XSDString::Type)
71
+ type.all_elements = [excn_name, cause, backtrace, message]
72
+ type
73
+ end
74
+
75
+ def soap_rpc_complextypes(binding)
76
+ types = rpc_operation_complextypes(binding)
77
+ types + self.class.soap_rpc_complextypes
78
+ end
79
+
80
+ def collect_faulttypes
81
+ result = []
82
+ collect_fault_messages.each do |name|
83
+ faultparts = message(name).parts
84
+ if faultparts.size != 1
85
+ raise RuntimeError.new("expecting fault message to have only 1 part")
86
+ end
87
+ if result.index(faultparts[0].type).nil?
88
+ result << faultparts[0].type
89
+ end
90
+ end
91
+ result
92
+ end
93
+
94
+ private
95
+
96
+ def collect_fault_messages
97
+ result = []
98
+ porttypes.each do |porttype|
99
+ porttype.operations.each do |operation|
100
+ operation.fault.each do |fault|
101
+ if result.index(fault.message).nil?
102
+ result << fault.message
103
+ end
104
+ end
105
+ end
106
+ end
107
+ result
108
+ end
109
+
110
+ def rpc_operation_complextypes(binding)
111
+ types = XSD::NamedElements.new
112
+ binding.operations.each do |op_bind|
113
+ if op_bind_rpc?(op_bind)
114
+ operation = op_bind.find_operation
115
+ if op_bind.input
116
+ type = XMLSchema::ComplexType.new(op_bind.soapoperation_name)
117
+ message = messages[operation.input.message]
118
+ type.sequence_elements = elements_from_message(message)
119
+ types << type
120
+ end
121
+ if op_bind.output
122
+ type = XMLSchema::ComplexType.new(operation.outputname)
123
+ message = messages[operation.output.message]
124
+ type.sequence_elements = elements_from_message(message)
125
+ types << type
126
+ end
127
+ end
128
+ end
129
+ types
130
+ end
131
+
132
+ def op_bind_rpc?(op_bind)
133
+ op_bind.soapoperation_style == :rpc
134
+ end
135
+
136
+ def elements_from_message(message)
137
+ message.parts.collect { |part|
138
+ if part.element
139
+ collect_elements[part.element]
140
+ elsif part.name.nil? or part.type.nil?
141
+ raise RuntimeError.new("part of a message must be an element or typed")
142
+ else
143
+ qname = XSD::QName.new(nil, part.name)
144
+ XMLSchema::Element.new(qname, part.type)
145
+ end
146
+ }
147
+ end
148
+ end
149
+
150
+
151
+ end