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,171 @@
1
+ # encoding: ASCII-8BIT
2
+ # SOAP4R - Ruby type mapping schema definition utility.
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/codegen/gensupport'
11
+
12
+
13
+ module SOAP
14
+ module Mapping
15
+
16
+
17
+ class SchemaElementDefinition
18
+ attr_reader :varname, :mapped_class, :elename, :minoccurs, :maxoccurs
19
+
20
+ def initialize(varname, mapped_class, elename, minoccurs, maxoccurs,
21
+ as_any, as_array)
22
+ @varname = varname
23
+ @mapped_class = mapped_class
24
+ @elename = elename
25
+ @minoccurs = minoccurs
26
+ @maxoccurs = maxoccurs
27
+ @as_any = as_any
28
+ @as_array = as_array
29
+ end
30
+
31
+ def as_any?
32
+ @as_any
33
+ end
34
+
35
+ def as_array?
36
+ @as_array
37
+ end
38
+ end
39
+
40
+ module SchemaComplexTypeDefinition
41
+ include Enumerable
42
+
43
+ def initialize
44
+ @content = []
45
+ @element_cache = {}
46
+ end
47
+
48
+ def is_concrete_definition
49
+ true
50
+ end
51
+
52
+ def <<(ele)
53
+ @content << ele
54
+ end
55
+
56
+ def each
57
+ @content.each do |ele|
58
+ yield ele
59
+ end
60
+ end
61
+
62
+ def size
63
+ @content.size
64
+ end
65
+
66
+ def as_any?
67
+ false
68
+ end
69
+
70
+ def as_array?
71
+ false
72
+ end
73
+
74
+ def find_element(qname)
75
+ @element_cache[qname] ||= search_element(qname)
76
+ end
77
+
78
+ private
79
+
80
+ def search_element(qname)
81
+ each do |ele|
82
+ if ele.respond_to?(:find_element)
83
+ found = ele.find_element(qname)
84
+ return found if found
85
+ else
86
+ # relaxed match
87
+ if ele.elename == qname or
88
+ (qname.namespace.nil? and ele.elename.name == qname.name)
89
+ return ele
90
+ end
91
+ end
92
+ end
93
+ nil
94
+ end
95
+ end
96
+
97
+ class SchemaEmptyDefinition
98
+ include SchemaComplexTypeDefinition
99
+
100
+ def initialize
101
+ super()
102
+ @content.freeze
103
+ end
104
+ end
105
+
106
+ class SchemaSequenceDefinition
107
+ include SchemaComplexTypeDefinition
108
+
109
+ def initialize
110
+ super()
111
+ end
112
+
113
+ def choice?
114
+ false
115
+ end
116
+
117
+ # override
118
+ def as_array?
119
+ @as_array ||= false
120
+ end
121
+
122
+ def set_array
123
+ @as_array = true
124
+ end
125
+ end
126
+
127
+ class SchemaChoiceDefinition
128
+ include SchemaComplexTypeDefinition
129
+
130
+ def initialize
131
+ super()
132
+ end
133
+
134
+ def choice?
135
+ true
136
+ end
137
+ end
138
+
139
+ class SchemaDefinition
140
+ EMPTY = SchemaEmptyDefinition.new
141
+
142
+ attr_reader :class_for
143
+ attr_reader :elename, :type
144
+ attr_reader :qualified
145
+ attr_accessor :basetype
146
+ attr_accessor :attributes
147
+ attr_accessor :elements
148
+
149
+ def initialize(class_for, elename, type, anonymous, qualified)
150
+ @class_for = class_for
151
+ @elename = elename
152
+ @type = type
153
+ @anonymous = anonymous
154
+ @qualified = qualified
155
+ @basetype = nil
156
+ @elements = EMPTY
157
+ @attributes = nil
158
+ end
159
+
160
+ def is_anonymous?
161
+ @anonymous
162
+ end
163
+
164
+ def choice?
165
+ @elements.choice?
166
+ end
167
+ end
168
+
169
+
170
+ end
171
+ end
@@ -0,0 +1,107 @@
1
+ # encoding: ASCII-8BIT
2
+ # SOAP4R - Base type mapping definition
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
+ module SOAP
11
+
12
+
13
+ TypeMap = {
14
+ XSD::XSDAnySimpleType::Type => SOAPAnySimpleType,
15
+
16
+ XSD::XSDString::Type => SOAPString,
17
+ XSD::XSDNormalizedString::Type => SOAPNormalizedString,
18
+ XSD::XSDToken::Type => SOAPToken,
19
+ XSD::XSDLanguage::Type => SOAPLanguage,
20
+ XSD::XSDNMTOKEN::Type => SOAPNMTOKEN,
21
+ XSD::XSDNMTOKENS::Type => SOAPNMTOKENS,
22
+ XSD::XSDName::Type => SOAPName,
23
+ XSD::XSDNCName::Type => SOAPNCName,
24
+ XSD::XSDID::Type => SOAPID,
25
+ XSD::XSDIDREF::Type => SOAPIDREF,
26
+ XSD::XSDIDREFS::Type => SOAPIDREFS,
27
+ XSD::XSDENTITY::Type => SOAPENTITY,
28
+ XSD::XSDENTITIES::Type => SOAPENTITIES,
29
+ XSD::XSDBoolean::Type => SOAPBoolean,
30
+ XSD::XSDDecimal::Type => SOAPDecimal,
31
+ XSD::XSDFloat::Type => SOAPFloat,
32
+ XSD::XSDDouble::Type => SOAPDouble,
33
+ XSD::XSDDuration::Type => SOAPDuration,
34
+ XSD::XSDDateTime::Type => SOAPDateTime,
35
+ XSD::XSDTime::Type => SOAPTime,
36
+ XSD::XSDDate::Type => SOAPDate,
37
+ XSD::XSDGYearMonth::Type => SOAPGYearMonth,
38
+ XSD::XSDGYear::Type => SOAPGYear,
39
+ XSD::XSDGMonthDay::Type => SOAPGMonthDay,
40
+ XSD::XSDGDay::Type => SOAPGDay,
41
+ XSD::XSDGMonth::Type => SOAPGMonth,
42
+ XSD::XSDHexBinary::Type => SOAPHexBinary,
43
+ XSD::XSDBase64Binary::Type => SOAPBase64,
44
+ XSD::XSDAnyURI::Type => SOAPAnyURI,
45
+ XSD::XSDQName::Type => SOAPQName,
46
+ XSD::XSDInteger::Type => SOAPInteger,
47
+ XSD::XSDNonPositiveInteger::Type => SOAPNonPositiveInteger,
48
+ XSD::XSDNegativeInteger::Type => SOAPNegativeInteger,
49
+ XSD::XSDLong::Type => SOAPLong,
50
+ XSD::XSDInt::Type => SOAPInt,
51
+ XSD::XSDShort::Type => SOAPShort,
52
+ XSD::XSDByte::Type => SOAPByte,
53
+ XSD::XSDNonNegativeInteger::Type => SOAPNonNegativeInteger,
54
+ XSD::XSDUnsignedLong::Type => SOAPUnsignedLong,
55
+ XSD::XSDUnsignedInt::Type => SOAPUnsignedInt,
56
+ XSD::XSDUnsignedShort::Type => SOAPUnsignedShort,
57
+ XSD::XSDUnsignedByte::Type => SOAPUnsignedByte,
58
+ XSD::XSDPositiveInteger::Type => SOAPPositiveInteger,
59
+
60
+ # soap4r does not use soapenc types actively but it should be accepted.
61
+ SOAP::SOAPString::SOAPENCType => SOAPString,
62
+ SOAP::SOAPNormalizedString::Type => SOAPNormalizedString,
63
+ SOAP::SOAPToken::Type => SOAPToken,
64
+ SOAP::SOAPLanguage::Type => SOAPLanguage,
65
+ SOAP::SOAPNMTOKEN::Type => SOAPNMTOKEN,
66
+ SOAP::SOAPNMTOKENS::Type => SOAPNMTOKENS,
67
+ SOAP::SOAPName::Type => SOAPName,
68
+ SOAP::SOAPNCName::Type => SOAPNCName,
69
+ SOAP::SOAPID::Type => SOAPID,
70
+ SOAP::SOAPIDREF::Type => SOAPIDREF,
71
+ SOAP::SOAPIDREFS::Type => SOAPIDREFS,
72
+ SOAP::SOAPENTITY::Type => SOAPENTITY,
73
+ SOAP::SOAPENTITIES::Type => SOAPENTITIES,
74
+ SOAP::SOAPBoolean::SOAPENCType => SOAPBoolean,
75
+ SOAP::SOAPDecimal::SOAPENCType => SOAPDecimal,
76
+ SOAP::SOAPFloat::SOAPENCType => SOAPFloat,
77
+ SOAP::SOAPDouble::SOAPENCType => SOAPDouble,
78
+ SOAP::SOAPDuration::SOAPENCType => SOAPDuration,
79
+ SOAP::SOAPDateTime::SOAPENCType => SOAPDateTime,
80
+ SOAP::SOAPTime::SOAPENCType => SOAPTime,
81
+ SOAP::SOAPDate::SOAPENCType => SOAPDate,
82
+ SOAP::SOAPGYearMonth::SOAPENCType => SOAPGYearMonth,
83
+ SOAP::SOAPGYear::SOAPENCType => SOAPGYear,
84
+ SOAP::SOAPGMonthDay::SOAPENCType => SOAPGMonthDay,
85
+ SOAP::SOAPGDay::SOAPENCType => SOAPGDay,
86
+ SOAP::SOAPGMonth::SOAPENCType => SOAPGMonth,
87
+ SOAP::SOAPHexBinary::SOAPENCType => SOAPHexBinary,
88
+ SOAP::SOAPBase64::SOAPENCType => SOAPBase64,
89
+ SOAP::SOAPAnyURI::SOAPENCType => SOAPAnyURI,
90
+ SOAP::SOAPQName::SOAPENCType => SOAPQName,
91
+ SOAP::SOAPInteger::SOAPENCType => SOAPInteger,
92
+ SOAP::SOAPNonPositiveInteger::SOAPENCType => SOAPNonPositiveInteger,
93
+ SOAP::SOAPNegativeInteger::SOAPENCType => SOAPNegativeInteger,
94
+ SOAP::SOAPLong::SOAPENCType => SOAPLong,
95
+ SOAP::SOAPInt::SOAPENCType => SOAPInt,
96
+ SOAP::SOAPShort::SOAPENCType => SOAPShort,
97
+ SOAP::SOAPByte::SOAPENCType => SOAPByte,
98
+ SOAP::SOAPNonNegativeInteger::SOAPENCType => SOAPNonNegativeInteger,
99
+ SOAP::SOAPUnsignedLong::SOAPENCType => SOAPUnsignedLong,
100
+ SOAP::SOAPUnsignedInt::SOAPENCType => SOAPUnsignedInt,
101
+ SOAP::SOAPUnsignedShort::SOAPENCType => SOAPUnsignedShort,
102
+ SOAP::SOAPUnsignedByte::SOAPENCType => SOAPUnsignedByte,
103
+ SOAP::SOAPPositiveInteger::SOAPENCType => SOAPPositiveInteger,
104
+ }
105
+
106
+
107
+ end
@@ -0,0 +1,212 @@
1
+ # encoding: ASCII-8BIT
2
+ # SOAP4R - WSDL encoded 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 'xsd/qname'
11
+ require 'xsd/namedelements'
12
+ require 'soap/baseData'
13
+ require 'soap/mapping/mapping'
14
+ require 'soap/mapping/typeMap'
15
+
16
+
17
+ module SOAP
18
+ module Mapping
19
+
20
+
21
+ class WSDLEncodedRegistry < EncodedRegistry
22
+ attr_reader :definedelements
23
+ attr_reader :definedtypes
24
+
25
+ def initialize(definedtypes = XSD::NamedElements::Empty)
26
+ super()
27
+ @definedtypes = definedtypes
28
+ # @definedelements = definedelements needed?
29
+ # For mapping AnyType element.
30
+ @rubytype_factory = RubytypeFactory.new(
31
+ :allow_untyped_struct => true,
32
+ :allow_original_mapping => true
33
+ )
34
+ end
35
+
36
+ def obj2soap(obj, qname = nil)
37
+ soap_obj = nil
38
+ if type = @definedtypes[qname]
39
+ soap_obj = obj2typesoap(obj, type)
40
+ else
41
+ soap_obj = any2soap(obj, qname)
42
+ end
43
+ return soap_obj if soap_obj
44
+ if @excn_handler_obj2soap
45
+ soap_obj = @excn_handler_obj2soap.call(obj) { |yield_obj|
46
+ Mapping._obj2soap(yield_obj, self)
47
+ }
48
+ return soap_obj if soap_obj
49
+ end
50
+ if qname
51
+ raise MappingError.new("cannot map #{obj.class.name} as #{qname}")
52
+ else
53
+ raise MappingError.new("cannot map #{obj.class.name} to SOAP/OM")
54
+ end
55
+ end
56
+
57
+ # map anything for now: must refer WSDL while mapping. [ToDo]
58
+ def soap2obj(node, obj_class = nil)
59
+ cause = nil
60
+ begin
61
+ unless obj_class
62
+ typestr = Mapping.safeconstname(node.elename.name)
63
+ obj_class = Mapping.class_from_name(typestr)
64
+ end
65
+ return Mapping._soap2obj(node, Mapping::DefaultRegistry, obj_class)
66
+ rescue MappingError
67
+ cause = $!
68
+ end
69
+ if @excn_handler_soap2obj
70
+ begin
71
+ return @excn_handler_soap2obj.call(node) { |yield_node|
72
+ Mapping._soap2obj(yield_node, self)
73
+ }
74
+ rescue Exception
75
+ end
76
+ end
77
+ raise MappingError.new("cannot map #{node.type.name} to Ruby object", cause)
78
+ end
79
+
80
+ private
81
+
82
+ def any2soap(obj, qname)
83
+ ele = nil
84
+ if obj.nil?
85
+ ele = SOAPNil.new
86
+ elsif qname.nil? or qname == XSD::AnyTypeName
87
+ ele = @rubytype_factory.obj2soap(nil, obj, nil, self)
88
+ elsif obj.is_a?(XSD::NSDBase)
89
+ ele = soap2soap(obj, qname)
90
+ elsif type = TypeMap[qname]
91
+ ele = base2soap(obj, type)
92
+ end
93
+ add_attributes2soap(obj, ele) unless ele.nil?
94
+ ele
95
+ end
96
+
97
+ def soap2soap(obj, type_qname)
98
+ if obj.is_a?(SOAPBasetype)
99
+ obj
100
+ elsif obj.is_a?(SOAPStruct) && (type = @definedtypes[type_qname])
101
+ soap_obj = obj
102
+ mark_marshalled_obj(obj, soap_obj)
103
+ elements2soap(obj, soap_obj, type.elements)
104
+ soap_obj
105
+ elsif obj.is_a?(SOAPArray) && (type = @definedtypes[type_qname])
106
+ soap_obj = obj
107
+ contenttype = type.child_type
108
+ mark_marshalled_obj(obj, soap_obj)
109
+ obj.replace do |ele|
110
+ Mapping._obj2soap(ele, self, contenttype)
111
+ end
112
+ soap_obj
113
+ else
114
+ nil
115
+ end
116
+ end
117
+
118
+ def obj2typesoap(obj, type)
119
+ if type.is_a?(::WSDL::XMLSchema::SimpleType)
120
+ simpleobj2soap(obj, type)
121
+ else
122
+ complexobj2soap(obj, type)
123
+ end
124
+ end
125
+
126
+ def simpleobj2soap(obj, type)
127
+ type.check_lexical_format(obj)
128
+ return SOAPNil.new if obj.nil? # TODO: check nillable.
129
+ if type.base
130
+ ele = base2soap(obj, TypeMap[type.base])
131
+ ele.type = type.name
132
+ elsif type.list
133
+ value = obj.is_a?(Array) ? obj.join(" ") : obj.to_s
134
+ ele = base2soap(value, SOAP::SOAPString)
135
+ else
136
+ raise MappingError.new("unsupported simpleType: #{type}")
137
+ end
138
+ ele
139
+ end
140
+
141
+ def complexobj2soap(obj, type)
142
+ case type.compoundtype
143
+ when :TYPE_STRUCT
144
+ struct2soap(obj, type.name, type)
145
+ when :TYPE_ARRAY
146
+ array2soap(obj, type.name, type)
147
+ when :TYPE_MAP
148
+ map2soap(obj, type.name, type)
149
+ when :TYPE_SIMPLE
150
+ simpleobj2soap(obj, type.simplecontent)
151
+ when :TYPE_EMPTY
152
+ raise MappingError.new("should be empty") unless obj.nil?
153
+ SOAPNil.new
154
+ else
155
+ raise MappingError.new("unknown compound type: #{type.compoundtype}")
156
+ end
157
+ end
158
+
159
+ def struct2soap(obj, type_qname, type)
160
+ return SOAPNil.new if obj.nil? # ToDo: check nillable.
161
+ soap_obj = SOAPStruct.new(type_qname)
162
+ mark_marshalled_obj(obj, soap_obj)
163
+ elements2soap(obj, soap_obj, type.elements)
164
+ soap_obj
165
+ end
166
+
167
+ def array2soap(obj, type_qname, type)
168
+ return SOAPNil.new if obj.nil? # ToDo: check nillable.
169
+ arytype = type.child_type
170
+ soap_obj = SOAPArray.new(ValueArrayName, 1, arytype)
171
+ unless obj.nil?
172
+ mark_marshalled_obj(obj, soap_obj)
173
+ obj.each do |item|
174
+ soap_obj.add(Mapping._obj2soap(item, self, arytype))
175
+ end
176
+ end
177
+ soap_obj
178
+ end
179
+
180
+ MapKeyName = XSD::QName.new(nil, "key")
181
+ MapValueName = XSD::QName.new(nil, "value")
182
+ def map2soap(obj, type_qname, type)
183
+ return SOAPNil.new if obj.nil? # ToDo: check nillable.
184
+ keytype = type.child_type(MapKeyName) || XSD::AnyTypeName
185
+ valuetype = type.child_type(MapValueName) || XSD::AnyTypeName
186
+ soap_obj = SOAPStruct.new(MapQName)
187
+ unless obj.nil?
188
+ mark_marshalled_obj(obj, soap_obj)
189
+ obj.each do |key, value|
190
+ elem = SOAPStruct.new
191
+ elem.add("key", Mapping._obj2soap(key, self, keytype))
192
+ elem.add("value", Mapping._obj2soap(value, self, valuetype))
193
+ # ApacheAxis allows only 'item' here.
194
+ soap_obj.add("item", elem)
195
+ end
196
+ end
197
+ soap_obj
198
+ end
199
+
200
+ def elements2soap(obj, soap_obj, elements)
201
+ elements.each do |element|
202
+ name = element.name.name
203
+ child_obj = Mapping.get_attribute(obj, name)
204
+ soap_obj.add(name,
205
+ Mapping._obj2soap(child_obj, self, element.type || element.name))
206
+ end
207
+ end
208
+ end
209
+
210
+
211
+ end
212
+ end