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,249 @@
1
+ # encoding: ASCII-8BIT
2
+ # SOAP4R - WSDL literal mapping registry.
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/baseData'
11
+ require 'soap/mapping/mapping'
12
+ require 'soap/mapping/literalregistry'
13
+ require 'soap/mapping/typeMap'
14
+ require 'xsd/codegen/gensupport'
15
+ require 'xsd/namedelements'
16
+
17
+
18
+ module SOAP
19
+ module Mapping
20
+
21
+
22
+ class WSDLLiteralRegistry < LiteralRegistry
23
+ attr_reader :definedelements
24
+ attr_reader :definedtypes
25
+
26
+ def initialize(definedtypes = XSD::NamedElements::Empty,
27
+ definedelements = XSD::NamedElements::Empty)
28
+ super()
29
+ @definedtypes = definedtypes
30
+ @definedelements = definedelements
31
+ end
32
+
33
+ def obj2soap(obj, qname, obj_class = nil)
34
+ soap_obj = nil
35
+ if obj.is_a?(SOAPElement)
36
+ soap_obj = obj
37
+ elsif eledef = @definedelements[qname]
38
+ soap_obj = obj2elesoap(obj, eledef)
39
+ elsif type = @definedtypes[qname]
40
+ soap_obj = obj2typesoap(obj, type)
41
+ else
42
+ soap_obj = any2soap(obj, qname, obj_class)
43
+ end
44
+ return soap_obj if soap_obj
45
+ if @excn_handler_obj2soap
46
+ soap_obj = @excn_handler_obj2soap.call(obj) { |yield_obj|
47
+ Mapping.obj2soap(yield_obj, nil, nil, MAPPING_OPT)
48
+ }
49
+ return soap_obj if soap_obj
50
+ end
51
+ raise MappingError.new("cannot map #{obj.class.name} as #{qname}")
52
+ end
53
+
54
+ # node should be a SOAPElement
55
+ def soap2obj(node, obj_class = nil)
56
+ cause = nil
57
+ begin
58
+ return any2obj(node, obj_class)
59
+ rescue MappingError
60
+ cause = $!
61
+ end
62
+ if @excn_handler_soap2obj
63
+ begin
64
+ return @excn_handler_soap2obj.call(node) { |yield_node|
65
+ Mapping.soap2obj(yield_node, nil, nil, MAPPING_OPT)
66
+ }
67
+ rescue Exception
68
+ end
69
+ end
70
+ if node.respond_to?(:type)
71
+ raise MappingError.new("cannot map #{node.type.name} to Ruby object", cause)
72
+ else
73
+ raise MappingError.new("cannot map #{node.elename.name} to Ruby object", cause)
74
+ end
75
+ end
76
+
77
+ private
78
+
79
+ def obj2elesoap(obj, eledef)
80
+ ele = nil
81
+ qualified = (eledef.elementform == 'qualified')
82
+ if obj.is_a?(SOAPNil)
83
+ ele = obj
84
+ elsif eledef.type
85
+ if type = @definedtypes[eledef.type]
86
+ ele = obj2typesoap(obj, type)
87
+ elsif type = TypeMap[eledef.type]
88
+ ele = base2soap(obj, type)
89
+ else
90
+ raise MappingError.new("cannot find type #{eledef.type}")
91
+ end
92
+ elsif eledef.local_complextype
93
+ ele = obj2typesoap(obj, eledef.local_complextype)
94
+ elsif eledef.local_simpletype
95
+ ele = obj2typesoap(obj, eledef.local_simpletype)
96
+ else
97
+ raise MappingError.new('illegal schema?')
98
+ end
99
+ ele.elename = eledef.name
100
+ ele.qualified = qualified
101
+ ele
102
+ end
103
+
104
+ def obj2typesoap(obj, type)
105
+ ele = nil
106
+ if type.is_a?(::WSDL::XMLSchema::SimpleType)
107
+ ele = simpleobj2soap(obj, type)
108
+ else # complexType
109
+ if type.simplecontent
110
+ ele = simpleobj2soap(obj, type.simplecontent)
111
+ else
112
+ ele = complexobj2soap(obj, type)
113
+ end
114
+ ele.type = type.name
115
+ if type.base or Mapping.root_type_hint
116
+ Mapping.reset_root_type_hint
117
+ ele.force_typed = true
118
+ end
119
+ add_definedattributes2soap(obj, ele, type)
120
+ end
121
+ ele
122
+ end
123
+
124
+ def simpleobj2soap(obj, type)
125
+ type.check_lexical_format(obj)
126
+ return SOAPNil.new if obj.nil?
127
+ if type.base
128
+ ele = base2soap(obj, TypeMap[type.base])
129
+ elsif type.list
130
+ value = obj.is_a?(Array) ? obj.join(" ") : obj.to_s
131
+ ele = base2soap(value, SOAP::SOAPString)
132
+ else
133
+ raise MappingError.new("unsupported simpleType: #{type}")
134
+ end
135
+ ele
136
+ end
137
+
138
+ def complexobj2soap(obj, type)
139
+ ele = SOAPElement.new(type.name)
140
+ complexobj2sequencesoap(obj, ele, type, type.choice?, type.choice?)
141
+ ele
142
+ end
143
+
144
+ def complexobj2sequencesoap(obj, soap, type, nillable, is_choice)
145
+ added = false
146
+ type.elements.each do |child_ele|
147
+ case child_ele
148
+ when WSDL::XMLSchema::Any
149
+ any = Mapping.get_attributes_for_any(obj)
150
+ SOAPElement.from_objs(any).each do |child|
151
+ soap.add(child)
152
+ end
153
+ ele_added = true
154
+ when WSDL::XMLSchema::Element
155
+ ele_added = complexobj2soapchildren(obj, soap, child_ele, nillable)
156
+ when WSDL::XMLSchema::Sequence
157
+ ele_added = complexobj2sequencesoap(obj, soap, child_ele, nillable, false)
158
+ when WSDL::XMLSchema::Choice
159
+ ele_added = complexobj2sequencesoap(obj, soap, child_ele, true, true)
160
+ else
161
+ raise MappingError.new("unknown type: #{child_ele}")
162
+ end
163
+ added = true if ele_added
164
+ break if is_choice and ele_added
165
+ end
166
+ added
167
+ end
168
+
169
+ def complexobj2soapchildren(obj, soap, child_ele, nillable = false)
170
+ if child_ele.map_as_array?
171
+ complexobj2soapchildren_array(obj, soap, child_ele, nillable)
172
+ else
173
+ complexobj2soapchildren_single(obj, soap, child_ele, nillable)
174
+ end
175
+ end
176
+
177
+ def complexobj2soapchildren_array(obj, soap, child_ele, nillable)
178
+ child = Mapping.get_attribute(obj, child_ele.name.name)
179
+ if child.nil? and obj.is_a?(::Array)
180
+ child = obj
181
+ end
182
+ if child.nil?
183
+ return false if nillable
184
+ if child_soap = nil2soap(child_ele)
185
+ soap.add(child_soap)
186
+ return true
187
+ else
188
+ return false
189
+ end
190
+ end
191
+ unless child.respond_to?(:each)
192
+ return false
193
+ end
194
+ child.each do |item|
195
+ if item.is_a?(SOAPElement)
196
+ soap.add(item)
197
+ else
198
+ child_soap = obj2elesoap(item, child_ele)
199
+ soap.add(child_soap)
200
+ end
201
+ end
202
+ true
203
+ end
204
+
205
+ def complexobj2soapchildren_single(obj, soap, child_ele, nillable)
206
+ child = Mapping.get_attribute(obj, child_ele.name.name)
207
+ case child
208
+ when NilClass
209
+ return false if nillable
210
+ if child_soap = nil2soap(child_ele)
211
+ soap.add(child_soap)
212
+ true
213
+ else
214
+ false
215
+ end
216
+ when SOAPElement
217
+ soap.add(child)
218
+ true
219
+ else
220
+ child_soap = obj2elesoap(child, child_ele)
221
+ soap.add(child_soap)
222
+ true
223
+ end
224
+ end
225
+
226
+ def nil2soap(ele)
227
+ if ele.nillable
228
+ obj2elesoap(nil, ele) # add an empty element
229
+ elsif ele.minoccurs == 0
230
+ nil # intends no element
231
+ else
232
+ warn("nil not allowed: #{ele.name.name}")
233
+ nil
234
+ end
235
+ end
236
+
237
+ def add_definedattributes2soap(obj, ele, typedef)
238
+ if typedef.attributes
239
+ typedef.attributes.each do |at|
240
+ value = get_xmlattr_value(obj, at.name)
241
+ ele.extraattr[at.name] = value unless value.nil?
242
+ end
243
+ end
244
+ end
245
+ end
246
+
247
+
248
+ end
249
+ end
@@ -0,0 +1,60 @@
1
+ # encoding: ASCII-8BIT
2
+ # SOAP4R - Marshalling/Unmarshalling Ruby's object using SOAP Encoding.
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"
11
+ require "soap/processor"
12
+
13
+
14
+ module SOAP
15
+
16
+
17
+ module Marshal
18
+ # Trying xsd:dateTime data to be recovered as aTime.
19
+ MarshalMappingRegistry = Mapping::EncodedRegistry.new(
20
+ :allow_original_mapping => true)
21
+ MarshalMappingRegistry.add(
22
+ Time,
23
+ ::SOAP::SOAPDateTime,
24
+ ::SOAP::Mapping::EncodedRegistry::DateTimeFactory
25
+ )
26
+
27
+ class << self
28
+ public
29
+ def dump(obj, io = nil)
30
+ marshal(obj, MarshalMappingRegistry, io)
31
+ end
32
+
33
+ def load(stream)
34
+ unmarshal(stream, MarshalMappingRegistry)
35
+ end
36
+
37
+ def marshal(obj, mapping_registry = MarshalMappingRegistry, io = nil)
38
+ elename = Mapping.name2elename(obj.class.to_s)
39
+ soap_obj = Mapping.obj2soap(obj, mapping_registry)
40
+ body = SOAPBody.new
41
+ body.add(elename, soap_obj)
42
+ env = SOAPEnvelope.new(nil, body)
43
+ SOAP::Processor.marshal(env, {}, io)
44
+ end
45
+
46
+ def unmarshal(stream, mapping_registry = MarshalMappingRegistry)
47
+ env = SOAP::Processor.unmarshal(stream)
48
+ if env.nil?
49
+ raise ArgumentError.new("Illegal SOAP marshal format.")
50
+ end
51
+ Mapping.soap2obj(env.body.root_node, mapping_registry)
52
+ end
53
+ end
54
+ end
55
+
56
+
57
+ end
58
+
59
+
60
+ SOAPMarshal = SOAP::Marshal
@@ -0,0 +1,243 @@
1
+ # encoding: ASCII-8BIT
2
+ # SOAP4R - MIME Message implementation.
3
+ # Copyright (C) 2002 Jamie Herre.
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/attachment'
11
+
12
+
13
+ module SOAP
14
+
15
+
16
+ # Classes for MIME message handling. Should be put somewhere else!
17
+ # Tried using the 'tmail' module but found that I needed something
18
+ # lighter in weight.
19
+
20
+
21
+ class MIMEMessage
22
+ class MIMEMessageError < StandardError; end
23
+
24
+ MultipartContentType = 'multipart/\w+'
25
+
26
+ class Header
27
+ attr_accessor :str, :key, :root
28
+
29
+ def initialize
30
+ @attrs = {}
31
+ end
32
+
33
+ def [](key)
34
+ @attrs[key]
35
+ end
36
+
37
+ def []=(key, value)
38
+ @attrs[key] = value
39
+ end
40
+
41
+ def to_s
42
+ @key + ": " + @str
43
+ end
44
+ end
45
+
46
+ class Headers < Hash
47
+ def self.parse(str)
48
+ new.parse(str)
49
+ end
50
+
51
+ def parse(str)
52
+ header_cache = nil
53
+ str = str.lines if str.respond_to?(:lines) # RubyJedi: compatible with Ruby 1.8.6 and above
54
+ str.each do |line|
55
+ case line
56
+ when /^\A[^\: \t]+:\s*.+$/
57
+ parse_line(header_cache) if header_cache
58
+ header_cache = line.sub(/\r?\n\z/, '')
59
+ when /^\A\s+(.*)$/
60
+ # a continuous line at the beginning line crashes here.
61
+ header_cache << line
62
+ else
63
+ raise RuntimeError.new("unexpected header: #{line.inspect}")
64
+ end
65
+ end
66
+ parse_line(header_cache) if header_cache
67
+ self
68
+ end
69
+
70
+ def parse_line(line)
71
+ if /^\A([^\: \t]+):\s*(.+)\z/ =~ line
72
+ header = parse_rhs($2.strip)
73
+ header.key = $1.strip
74
+ self[header.key.downcase] = header
75
+ else
76
+ raise RuntimeError.new("unexpected header line: #{line.inspect}")
77
+ end
78
+ end
79
+
80
+ def parse_rhs(str)
81
+ a = str.split(/;+\s+/)
82
+ header = Header.new
83
+ header.str = str
84
+ header.root = a.shift
85
+ a.each do |pair|
86
+ if pair =~ /(\w+)\s*=\s*"?([^"]+)"?/
87
+ header[$1.downcase] = $2
88
+ else
89
+ raise RuntimeError.new("unexpected header component: #{pair.inspect}")
90
+ end
91
+ end
92
+ header
93
+ end
94
+
95
+ def add(key, value)
96
+ if key != nil and value != nil
97
+ header = parse_rhs(value)
98
+ header.key = key
99
+ self[key.downcase] = header
100
+ end
101
+ end
102
+
103
+ def to_s
104
+ self.values.collect { |hdr|
105
+ hdr.to_s
106
+ }.join("\r\n")
107
+ end
108
+ end
109
+
110
+ class Part
111
+ attr_accessor :headers, :body
112
+
113
+ def initialize
114
+ @headers = Headers.new
115
+ @headers.add("Content-Transfer-Encoding", "8bit")
116
+ @body = nil
117
+ @contentid = nil
118
+ end
119
+
120
+ def self.parse(str)
121
+ new.parse(str)
122
+ end
123
+
124
+ def parse(str)
125
+ headers, body = str.split(/\r\n\r\n/, 2)
126
+ if headers != nil and body != nil
127
+ @headers = Headers.parse(headers)
128
+ @body = body.sub(/\r\n\z/, '')
129
+ else
130
+ raise RuntimeError.new("unexpected part: #{str.inspect}")
131
+ end
132
+ self
133
+ end
134
+
135
+ def contentid
136
+ if @contentid == nil and @headers.key?('content-id')
137
+ @contentid = @headers['content-id'].str
138
+ @contentid = $1 if @contentid =~ /^<(.+)>$/
139
+ end
140
+ @contentid
141
+ end
142
+
143
+ alias content body
144
+
145
+ def to_s
146
+ @headers.to_s + "\r\n\r\n" + @body
147
+ end
148
+ end
149
+
150
+ def initialize
151
+ @parts = []
152
+ @headers = Headers.new
153
+ @root = nil
154
+ @boundary = nil
155
+ end
156
+
157
+ def self.parse(head, str)
158
+ new.parse(head, str)
159
+ end
160
+
161
+ attr_reader :parts, :headers
162
+
163
+ def close
164
+ @headers.add(
165
+ "Content-Type",
166
+ "multipart/related; type=\"text/xml\"; boundary=\"#{boundary}\"; start=\"#{@parts[0].contentid}\""
167
+ )
168
+ end
169
+
170
+ def parse(head, str)
171
+ @headers = Headers.parse(head + "\r\n" + "From: jfh\r\n")
172
+ boundary = @headers['content-type']['boundary']
173
+ if boundary != nil
174
+ parts = str.split(/--#{Regexp.quote(boundary)}\s*(?:\r\n|--\r\n)/)
175
+ part = parts.shift # preamble must be ignored.
176
+ @parts = parts.collect { |part| Part.parse(part) }
177
+ else
178
+ @parts = [Part.parse(str)]
179
+ end
180
+ if @parts.length < 1
181
+ raise MIMEMessageError.new("This message contains no valid parts!")
182
+ end
183
+ self
184
+ end
185
+
186
+ def root
187
+ if @root == nil
188
+ start = @headers['content-type']['start']
189
+ @root = (start && @parts.find { |prt| prt.contentid == start }) ||
190
+ @parts[0]
191
+ end
192
+ @root
193
+ end
194
+
195
+ def boundary
196
+ if @boundary == nil
197
+ @boundary = "----=Part_" + __id__.to_s + rand.to_s
198
+ end
199
+ @boundary
200
+ end
201
+
202
+ def add_part(content)
203
+ part = Part.new
204
+ part.headers.add("Content-Type",
205
+ "text/xml; charset=" + XSD::Charset.xml_encoding_label)
206
+ part.headers.add("Content-ID", Attachment.contentid(part))
207
+ part.body = content
208
+ @parts.unshift(part)
209
+ end
210
+
211
+ def add_attachment(attach)
212
+ part = Part.new
213
+ part.headers.add("Content-Type", attach.contenttype)
214
+ part.headers.add("Content-ID", attach.mime_contentid)
215
+ part.body = attach.content
216
+ @parts.unshift(part)
217
+ end
218
+
219
+ def has_parts?
220
+ (@parts.length > 0)
221
+ end
222
+
223
+ def headers_str
224
+ @headers.to_s
225
+ end
226
+
227
+ def content_str
228
+ str = ''
229
+ @parts.each do |prt|
230
+ str << "--" + boundary + "\r\n"
231
+ str << prt.to_s + "\r\n"
232
+ end
233
+ str << '--' + boundary + "--\r\n"
234
+ str
235
+ end
236
+
237
+ def to_s
238
+ str = headers_str + "\r\n\r\n" + conent_str
239
+ end
240
+ end
241
+
242
+
243
+ end