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,43 @@
1
+ # encoding: ASCII-8BIT
2
+ # WSDL4R - WSDL SOAP binding data definitions.
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 'xsd/qname'
11
+ require 'wsdl/soap/definitions'
12
+ require 'wsdl/soap/binding'
13
+ require 'wsdl/soap/operation'
14
+ require 'wsdl/soap/body'
15
+ require 'wsdl/soap/element'
16
+ require 'wsdl/soap/header'
17
+ require 'wsdl/soap/headerfault'
18
+ require 'wsdl/soap/fault'
19
+ require 'wsdl/soap/address'
20
+ require 'wsdl/soap/complexType'
21
+
22
+
23
+ module WSDL
24
+ module SOAP
25
+
26
+
27
+ HeaderFaultName = XSD::QName.new(SOAPBindingNamespace, 'headerfault')
28
+
29
+ LocationAttrName = XSD::QName.new(nil, 'location')
30
+ StyleAttrName = XSD::QName.new(nil, 'style')
31
+ TransportAttrName = XSD::QName.new(nil, 'transport')
32
+ UseAttrName = XSD::QName.new(nil, 'use')
33
+ PartsAttrName = XSD::QName.new(nil, 'parts')
34
+ PartAttrName = XSD::QName.new(nil, 'part')
35
+ NameAttrName = XSD::QName.new(nil, 'name')
36
+ MessageAttrName = XSD::QName.new(nil, 'message')
37
+ EncodingStyleAttrName = XSD::QName.new(nil, 'encodingStyle')
38
+ NamespaceAttrName = XSD::QName.new(nil, 'namespace')
39
+ SOAPActionAttrName = XSD::QName.new(nil, 'soapAction')
40
+
41
+
42
+ end
43
+ end
@@ -0,0 +1,201 @@
1
+ # encoding: ASCII-8BIT
2
+ # WSDL4R - WSDL additional definitions for SOAP.
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 'xsd/namedelements'
12
+ require 'soap/mapping'
13
+
14
+
15
+ module WSDL
16
+
17
+
18
+ class Definitions < Info
19
+ def self.soap_rpc_complextypes
20
+ types = XSD::NamedElements.new
21
+ types << array_complextype
22
+ types << fault_complextype
23
+ types << exception_complextype
24
+ types
25
+ end
26
+
27
+ def self.array_complextype
28
+ type = XMLSchema::ComplexType.new(::SOAP::ValueArrayName)
29
+ type.complexcontent = XMLSchema::ComplexContent.new
30
+ type.complexcontent.restriction = XMLSchema::ComplexRestriction.new
31
+ type.complexcontent.restriction.base = ::SOAP::ValueArrayName
32
+ attr = XMLSchema::Attribute.new
33
+ attr.ref = ::SOAP::AttrArrayTypeName
34
+ anyarray = XSD::QName.new(
35
+ XSD::AnyTypeName.namespace,
36
+ XSD::AnyTypeName.name + '[]')
37
+ attr.arytype = anyarray
38
+ type.complexcontent.restriction.attributes << attr
39
+ type
40
+ end
41
+
42
+ =begin
43
+ <xs:complexType name="Fault" final="extension">
44
+ <xs:sequence>
45
+ <xs:element name="faultcode" type="xs:QName" />
46
+ <xs:element name="faultstring" type="xs:string" />
47
+ <xs:element name="faultactor" type="xs:anyURI" minOccurs="0" />
48
+ <xs:element name="detail" type="tns:detail" minOccurs="0" />
49
+ </xs:sequence>
50
+ </xs:complexType>
51
+ =end
52
+ def self.fault_complextype
53
+ type = XMLSchema::ComplexType.new(::SOAP::EleFaultName)
54
+ faultcode = XMLSchema::Element.new(::SOAP::EleFaultCodeName, XSD::XSDQName::Type)
55
+ faultstring = XMLSchema::Element.new(::SOAP::EleFaultStringName, XSD::XSDString::Type)
56
+ faultactor = XMLSchema::Element.new(::SOAP::EleFaultActorName, XSD::XSDAnyURI::Type)
57
+ faultactor.minoccurs = 0
58
+ detail = XMLSchema::Element.new(::SOAP::EleFaultDetailName, XSD::AnyTypeName)
59
+ detail.minoccurs = 0
60
+ type.all_elements = [faultcode, faultstring, faultactor, detail]
61
+ type.final = 'extension'
62
+ type
63
+ end
64
+
65
+ def self.exception_complextype
66
+ type = XMLSchema::ComplexType.new(XSD::QName.new(
67
+ ::SOAP::Mapping::RubyCustomTypeNamespace, 'SOAPException'))
68
+ excn_name = XMLSchema::Element.new(XSD::QName.new(nil, 'excn_type_name'), XSD::XSDString::Type)
69
+ cause = XMLSchema::Element.new(XSD::QName.new(nil, 'cause'), XSD::AnyTypeName)
70
+ backtrace = XMLSchema::Element.new(XSD::QName.new(nil, 'backtrace'), ::SOAP::ValueArrayName)
71
+ message = XMLSchema::Element.new(XSD::QName.new(nil, 'message'), XSD::XSDString::Type)
72
+ type.all_elements = [excn_name, cause, backtrace, message]
73
+ type
74
+ end
75
+
76
+ def soap_rpc_complextypes(binding)
77
+ types = rpc_operation_complextypes(binding)
78
+ types + self.class.soap_rpc_complextypes
79
+ end
80
+
81
+ def collect_faulttypes
82
+ result = []
83
+ collect_fault_messages.each do |name|
84
+ faultparts = message(name).parts
85
+ if faultparts.size != 1
86
+ raise RuntimeError.new("Expecting fault message \"#{name}\" to have ONE part")
87
+ end
88
+ fault_part = faultparts[0]
89
+ # WS-I Basic Profile Version 1.1 (R2205) requires fault message parts
90
+ # to refer to elements rather than types
91
+ faulttype = fault_part.element
92
+ if not faulttype
93
+ warn("Fault message \"#{name}\" part \"#{fault_part.name}\" must specify an \"element\" attribute")
94
+ faulttype = fault_part.type
95
+ end
96
+ if faulttype and result.index(faulttype).nil?
97
+ result << faulttype
98
+ end
99
+ end
100
+ result
101
+ end
102
+
103
+ private
104
+
105
+ def get_fault_binding(op_binding, fault_name)
106
+ op_binding.fault.each do |fault|
107
+ return fault if fault.name == fault_name
108
+ end
109
+ return nil
110
+ end
111
+
112
+ def op_binding_declares_fault(op_binding, fault_name)
113
+ return get_fault_binding(op_binding, fault_name) != nil
114
+ end
115
+
116
+ def collect_fault_messages
117
+ result = []
118
+ porttypes.each do |porttype|
119
+ port_binding = porttype.find_binding()
120
+ next unless port_binding
121
+ porttype.operations.each do |operation|
122
+ op_binding = port_binding.operations.find { |ele| ele.name == operation.name }
123
+ next unless op_binding
124
+ operation.fault.each do |fault|
125
+ # Make sure the operation fault has a name
126
+ if not fault.name
127
+ warn("Operation \"#{operation.name}\": fault must specify a \"name\" attribute")
128
+ next
129
+ end
130
+ # Make sure that portType fault has a corresponding soap:fault
131
+ # definition in binding section.
132
+ if not op_binding_declares_fault(op_binding, fault.name)
133
+ warn("Operation \"#{operation.name}\", fault \"#{fault.name}\": no corresponding wsdl:fault binding found with a matching \"name\" attribute")
134
+ next
135
+ end
136
+ fault_binding = get_fault_binding(op_binding, fault.name)
137
+ if fault_binding.soapfault.nil?
138
+ warn("WARNING: no soap:fault found for wsdl:fault \"#{fault_binding.name}\" in operation \"#{operation.name}\" \n\n")
139
+ next
140
+ end
141
+ if fault_binding.soapfault.name != fault_binding.name
142
+ warn("WARNING: name of soap:fault \"#{fault_binding.soapfault.name}\" doesn't match the name of wsdl:fault \"#{fault_binding.name}\" in operation \"#{operation.name}\" \n\n")
143
+ next
144
+ end
145
+ # According to WS-I (R2723): if in a wsdl:binding the use attribute
146
+ # on a contained soapbind:fault element is present, its value MUST
147
+ # be "literal".
148
+ if fault_binding.soapfault.use and fault_binding.soapfault.use != "literal"
149
+ warn("Operation \"#{operation.name}\", fault \"#{fault.name}\": soap:fault \"use\" attribute must be \"literal\"")
150
+ end
151
+ if result.index(fault.message).nil?
152
+ result << fault.message
153
+ end
154
+ end
155
+ end
156
+ end
157
+ result
158
+ end
159
+
160
+ def rpc_operation_complextypes(binding)
161
+ types = XSD::NamedElements.new
162
+ binding.operations.each do |op_bind|
163
+ if op_bind_rpc?(op_bind)
164
+ operation = op_bind.find_operation
165
+ if op_bind.input
166
+ type = XMLSchema::ComplexType.new(op_bind.soapoperation_name)
167
+ message = messages[operation.input.message]
168
+ type.sequence_elements = elements_from_message(message)
169
+ types << type
170
+ end
171
+ if op_bind.output
172
+ type = XMLSchema::ComplexType.new(operation.outputname)
173
+ message = messages[operation.output.message]
174
+ type.sequence_elements = elements_from_message(message)
175
+ types << type
176
+ end
177
+ end
178
+ end
179
+ types
180
+ end
181
+
182
+ def op_bind_rpc?(op_bind)
183
+ op_bind.soapoperation_style == :rpc
184
+ end
185
+
186
+ def elements_from_message(message)
187
+ message.parts.collect { |part|
188
+ if part.element
189
+ collect_elements[part.element]
190
+ elsif part.name.nil? or part.type.nil?
191
+ raise RuntimeError.new("part of a message must be an element or typed")
192
+ else
193
+ qname = XSD::QName.new(nil, part.name)
194
+ XMLSchema::Element.new(qname, part.type)
195
+ end
196
+ }
197
+ end
198
+ end
199
+
200
+
201
+ end
@@ -0,0 +1,121 @@
1
+ # encoding: ASCII-8BIT
2
+ # WSDL4R - Creating driver 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/mappingRegistryCreator'
12
+ require 'wsdl/soap/methodDefCreator'
13
+ require 'wsdl/soap/classDefCreatorSupport'
14
+ require 'xsd/codegen'
15
+
16
+
17
+ module WSDL
18
+ module SOAP
19
+
20
+
21
+ class DriverCreator
22
+ include ClassDefCreatorSupport
23
+
24
+ attr_reader :definitions
25
+ attr_accessor :drivername_postfix
26
+
27
+ def initialize(definitions, name_creator, modulepath = nil)
28
+ @definitions = definitions
29
+ @name_creator = name_creator
30
+ @modulepath = modulepath
31
+ @drivername_postfix = ''
32
+ end
33
+
34
+ def dump(porttype = nil)
35
+ result = "require 'soap/rpc/driver'\n\n"
36
+ if @modulepath
37
+ modulepath = @modulepath.respond_to?(:lines) ? @modulepath.lines : @modulepath # RubyJedi: compatible with Ruby 1.8.6 and above
38
+ modulepath.each do |name|
39
+ result << "module #{name}\n"
40
+ end
41
+ result << "\n"
42
+ end
43
+ if porttype.nil?
44
+ @definitions.porttypes.each do |type|
45
+ result << dump_porttype(type.name)
46
+ result << "\n"
47
+ end
48
+ else
49
+ result << dump_porttype(porttype)
50
+ end
51
+ if @modulepath
52
+ result << "\n"
53
+ modulepath = @modulepath.respond_to?(:lines) ? @modulepath.lines : @modulepath # RubyJedi: compatible with Ruby 1.8.6 and above
54
+ modulepath.each do |name|
55
+ result << "end\n"
56
+ end
57
+ end
58
+ result
59
+ end
60
+
61
+ private
62
+
63
+ def dump_porttype(porttype)
64
+ drivername = porttype.name + @drivername_postfix
65
+ qname = XSD::QName.new(porttype.namespace, drivername)
66
+ class_name = mapped_class_basename(qname, @modulepath)
67
+ defined_const = {}
68
+ mdcreator = MethodDefCreator.new(@definitions, @name_creator, @modulepath, defined_const)
69
+ methoddef = mdcreator.dump(porttype)
70
+ binding = @definitions.bindings.find { |item| item.type == porttype }
71
+ if binding.nil? or binding.soapbinding.nil?
72
+ # not bound or not a SOAP binding
73
+ return ''
74
+ end
75
+ address = @definitions.porttype(porttype).locations[0]
76
+
77
+ c = XSD::CodeGen::ClassDef.new(class_name, "::SOAP::RPC::Driver")
78
+ c.def_const("DefaultEndpointUrl", ndq(address))
79
+ c.def_code <<-EOD
80
+ Methods = [
81
+ #{methoddef.gsub(/^/, " ")}
82
+ ]
83
+ EOD
84
+ wsdl_name = @definitions.name ? @definitions.name.name : 'default'
85
+ mrname = safeconstname(wsdl_name + 'MappingRegistry')
86
+ c.def_method("initialize", "endpoint_url = nil") do
87
+ %Q[endpoint_url ||= DefaultEndpointUrl\n] +
88
+ %Q[super(endpoint_url, nil)\n] +
89
+ %Q[self.mapping_registry = #{mrname}::EncodedRegistry\n] +
90
+ %Q[self.literal_mapping_registry = #{mrname}::LiteralRegistry\n] +
91
+ %Q[init_methods]
92
+ end
93
+ c.def_privatemethod("init_methods") do
94
+ <<-EOD
95
+ Methods.each do |definitions|
96
+ opt = definitions.last
97
+ if opt[:request_style] == :document
98
+ add_document_operation(*definitions)
99
+ else
100
+ add_rpc_operation(*definitions)
101
+ qname = definitions[0]
102
+ name = definitions[2]
103
+ if qname.name != name and qname.name.capitalize == name.capitalize
104
+ ::SOAP::Mapping.define_singleton_method(self, qname.name) do |*arg|
105
+ __send__(name, *arg)
106
+ end
107
+ end
108
+ end
109
+ end
110
+ EOD
111
+ end
112
+ defined_const.each do |ns, tag|
113
+ c.def_const(tag, dq(ns))
114
+ end
115
+ c.dump
116
+ end
117
+ end
118
+
119
+
120
+ end
121
+ end
@@ -0,0 +1,34 @@
1
+ # encoding: ASCII-8BIT
2
+ # WSDL4R - XMLSchema element 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/element'
11
+
12
+
13
+ module WSDL
14
+ module XMLSchema
15
+
16
+
17
+ class Element < Info
18
+ def map_as_array?
19
+ # parent sequence / choice may be marked as maxOccurs="unbounded"
20
+ maxoccurs.nil? or maxoccurs != 1 or (parent and parent.map_as_array?)
21
+ end
22
+
23
+ def anonymous_type?
24
+ !@ref and @name and @local_complextype
25
+ end
26
+
27
+ def attributes
28
+ @local_complextype.attributes
29
+ end
30
+ end
31
+
32
+
33
+ end
34
+ end
@@ -0,0 +1,74 @@
1
+ # encoding: ASCII-8BIT
2
+ # WSDL4R - Creating EncodedMappingRegistry 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/mappingRegistryCreatorSupport'
12
+
13
+
14
+ module WSDL
15
+ module SOAP
16
+
17
+
18
+ class EncodedMappingRegistryCreator
19
+ include MappingRegistryCreatorSupport
20
+
21
+ attr_reader :definitions
22
+
23
+ def initialize(definitions, name_creator, modulepath, defined_const)
24
+ @definitions = definitions
25
+ @name_creator = name_creator
26
+ @modulepath = modulepath
27
+ @simpletypes = definitions.collect_simpletypes
28
+ @simpletypes.uniq!
29
+ @complextypes = definitions.collect_complextypes
30
+ @complextypes.uniq!
31
+ @varname = nil
32
+ @defined_const = defined_const
33
+ end
34
+
35
+ def dump(varname)
36
+ @varname = varname
37
+ result = ''
38
+ str = dump_complextype
39
+ unless str.empty?
40
+ result << "\n" unless result.empty?
41
+ result << str
42
+ end
43
+ str = dump_simpletype
44
+ unless str.empty?
45
+ result << "\n" unless result.empty?
46
+ result << str
47
+ end
48
+ result
49
+ end
50
+
51
+ private
52
+
53
+ def dump_complextype
54
+ @complextypes.collect { |type|
55
+ unless type.abstract
56
+ dump_with_inner {
57
+ dump_complextypedef(@modulepath, type.name, type, nil, :encoded => true)
58
+ }
59
+ end
60
+ }.compact.join("\n")
61
+ end
62
+
63
+ def dump_simpletype
64
+ @simpletypes.collect { |type|
65
+ dump_with_inner {
66
+ dump_simpletypedef(@modulepath, type.name, type, nil, :encoded => true)
67
+ }
68
+ }.compact.join("\n")
69
+ end
70
+ end
71
+
72
+
73
+ end
74
+ end