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
+ # SOAP4R - Nested exception implementation
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
+ module NestedException
14
+ attr_reader :cause
15
+ attr_reader :original_backtraace
16
+
17
+ def initialize(msg = nil, cause = nil)
18
+ super(msg)
19
+ @cause = cause
20
+ @original_backtrace = nil
21
+ end
22
+
23
+ def set_backtrace(backtrace)
24
+ if defined?(@cause) and @cause.respond_to?(:backtrace)
25
+ @original_backtrace = backtrace
26
+ =begin
27
+ # for agressive backtrace abstraction: 'here' only should not be good
28
+ here = @original_backtrace[0]
29
+ backtrace = Array[*@cause.backtrace]
30
+ backtrace[0] = "#{backtrace[0]}: #{@cause} (#{@cause.class})"
31
+ backtrace.unshift(here)
32
+ =end
33
+ # just join the nested backtrace at the tail of backtrace
34
+ caused = Array[*@cause.backtrace]
35
+ caused[0] = "#{caused[0]}: #{@cause} (#{@cause.class}) [NESTED]"
36
+ backtrace += caused
37
+ end
38
+ super(backtrace)
39
+ end
40
+ end
41
+
42
+
43
+ end
@@ -0,0 +1,242 @@
1
+ # encoding: ASCII-8BIT
2
+ # SOAP4R - net/http wrapper
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 'net/http'
11
+ require 'soap/filter/filterchain'
12
+
13
+
14
+ module SOAP
15
+
16
+
17
+ class NetHttpClient
18
+
19
+ SSLEnabled = begin
20
+ require 'net/https'
21
+ true
22
+ rescue LoadError
23
+ false
24
+ end
25
+
26
+ attr_reader :proxy
27
+ attr_accessor :no_proxy
28
+ attr_accessor :debug_dev
29
+ attr_accessor :ssl_config # ignored for now.
30
+ attr_accessor :protocol_version # ignored for now.
31
+ attr_accessor :connect_timeout
32
+ attr_accessor :send_timeout # ignored for now.
33
+ attr_accessor :receive_timeout
34
+ attr_reader :test_loopback_response
35
+ attr_reader :request_filter # ignored for now.
36
+
37
+ def initialize(proxy = nil, agent = nil)
38
+ @proxy = proxy ? URI.parse(proxy) : nil
39
+ @agent = agent
40
+ @debug_dev = nil
41
+ @test_loopback_response = []
42
+ @request_filter = Filter::FilterChain.new
43
+ @session_manager = SessionManager.new
44
+ @no_proxy = @ssl_config = @protocol_version = nil
45
+ @connect_timeout = @send_timeout = @receive_timeout = nil
46
+ end
47
+
48
+ def proxy=(proxy)
49
+ if proxy.nil?
50
+ @proxy = nil
51
+ else
52
+ if proxy.is_a?(URI)
53
+ @proxy = proxy
54
+ else
55
+ @proxy = URI.parse(proxy)
56
+ end
57
+ if @proxy.scheme == nil or @proxy.scheme.downcase != 'http' or
58
+ @proxy.host == nil or @proxy.port == nil
59
+ raise ArgumentError.new("unsupported proxy `#{proxy}'")
60
+ end
61
+ end
62
+ reset_all
63
+ @proxy
64
+ end
65
+
66
+ def set_auth(uri, user_id, passwd)
67
+ raise NotImplementedError.new("auth is not supported under soap4r + net/http.")
68
+ end
69
+
70
+ def set_basic_auth(uri, user_id, passwd)
71
+ # net/http does not handle url.
72
+ @basic_auth = [user_id, passwd]
73
+ raise NotImplementedError.new("basic_auth is not supported under soap4r + net/http.")
74
+ end
75
+
76
+ def set_cookie_store(filename)
77
+ raise NotImplementedError.new
78
+ end
79
+
80
+ def save_cookie_store(filename)
81
+ raise NotImplementedError.new
82
+ end
83
+
84
+ def reset(url)
85
+ # no persistent connection. ignored.
86
+ end
87
+
88
+ def reset_all
89
+ # no persistent connection. ignored.
90
+ end
91
+
92
+ def post(url, req_body, header = {})
93
+ post_redirect(url, req_body, header, 10)
94
+ end
95
+
96
+ def get_content(url, header = {})
97
+ if str = @test_loopback_response.shift
98
+ return str
99
+ end
100
+ unless url.is_a?(URI)
101
+ url = URI.parse(url)
102
+ end
103
+ extra = header.dup
104
+ extra['User-Agent'] = @agent if @agent
105
+ res = start(url) { |http|
106
+ http.get(url.request_uri, extra)
107
+ }
108
+ res.body
109
+ end
110
+
111
+ private
112
+
113
+ def post_redirect(url, req_body, header, redirect_count)
114
+ if str = @test_loopback_response.shift
115
+ if @debug_dev
116
+ @debug_dev << "= Request\n\n"
117
+ @debug_dev << req_body
118
+ @debug_dev << "\n\n= Response\n\n"
119
+ @debug_dev << str
120
+ end
121
+ status = 200
122
+ reason = nil
123
+ contenttype = 'text/xml'
124
+ content = str
125
+ return Response.new(status, reason, contenttype, content)
126
+ return str
127
+ end
128
+ unless url.is_a?(URI)
129
+ url = URI.parse(url)
130
+ end
131
+ extra = header.dup
132
+ extra['User-Agent'] = @agent if @agent
133
+ res = start(url) { |http|
134
+ if @debug_dev
135
+ @debug_dev << "= Request\n\n"
136
+ @debug_dev << req_body << "\n"
137
+ end
138
+ http.post(url.request_uri, req_body, extra)
139
+ }
140
+ case res
141
+ when Net::HTTPRedirection
142
+ if redirect_count > 0
143
+ post_redirect(res['location'], req_body, header,
144
+ redirect_count - 1)
145
+ else
146
+ raise ArgumentError.new("Too many redirects")
147
+ end
148
+ else
149
+ Response.from_httpresponse(res)
150
+ end
151
+ end
152
+
153
+ def start(url)
154
+ http = create_connection(url)
155
+ response = nil
156
+ http.start { |worker|
157
+ response = yield(worker)
158
+ worker.finish
159
+ }
160
+ if @debug_dev
161
+ @debug_dev << "\n\n= Response\n\n"
162
+ @debug_dev << response.body << "\n"
163
+ end
164
+ response
165
+ end
166
+
167
+ def create_connection(url)
168
+ proxy_host = proxy_port = nil
169
+ unless no_proxy?(url)
170
+ proxy_host = @proxy.host
171
+ proxy_port = @proxy.port
172
+ end
173
+ http = Net::HTTP::Proxy(proxy_host, proxy_port).new(url.host, url.port)
174
+ if http.respond_to?(:set_debug_output)
175
+ http.set_debug_output(@debug_dev)
176
+ end
177
+ http.open_timeout = @connect_timeout if @connect_timeout
178
+ http.read_timeout = @receive_timeout if @receive_timeout
179
+ case url
180
+ when URI::HTTPS
181
+ if SSLEnabled
182
+ http.use_ssl = true
183
+ else
184
+ raise RuntimeError.new("Cannot connect to #{url} (OpenSSL is not installed.)")
185
+ end
186
+ when URI::HTTP
187
+ # OK
188
+ else
189
+ raise RuntimeError.new("Cannot connect to #{url} (Not HTTP.)")
190
+ end
191
+ http
192
+ end
193
+
194
+ NO_PROXY_HOSTS = ['localhost']
195
+
196
+ def no_proxy?(uri)
197
+ if !@proxy or NO_PROXY_HOSTS.include?(uri.host)
198
+ return true
199
+ end
200
+ unless @no_proxy
201
+ return false
202
+ end
203
+ @no_proxy.scan(/([^:,]+)(?::(\d+))?/) do |host, port|
204
+ if /(\A|\.)#{Regexp.quote(host)}\z/i =~ uri.host &&
205
+ (!port || uri.port == port.to_i)
206
+ return true
207
+ end
208
+ end
209
+ false
210
+ end
211
+
212
+ class SessionManager
213
+ attr_accessor :connect_timeout
214
+ attr_accessor :send_timeout
215
+ attr_accessor :receive_timeout
216
+ end
217
+
218
+ class Response
219
+ attr_reader :status
220
+ attr_reader :reason
221
+ attr_reader :contenttype
222
+ attr_reader :content
223
+
224
+ def initialize(status, reason, contenttype, content)
225
+ @status = status
226
+ @reason = reason
227
+ @contenttype = contenttype
228
+ @content = content
229
+ end
230
+
231
+ def self.from_httpresponse(res)
232
+ status = res.code.to_i
233
+ reason = res.message
234
+ contenttype = res['content-type']
235
+ content = res.body
236
+ new(status, reason, contenttype, content)
237
+ end
238
+ end
239
+ end
240
+
241
+
242
+ end
data/lib/soap/ns.rb ADDED
@@ -0,0 +1,39 @@
1
+ # encoding: ASCII-8BIT
2
+ # SOAP4R - SOAP Namespace library
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/datatypes'
11
+ require 'xsd/ns'
12
+ require 'soap/soap'
13
+
14
+
15
+ module SOAP
16
+
17
+ ## Rubyjedi: Provide these (deprecated) constants for backward compatibility with older ActionWebService
18
+ SOAPNamespaceTag = 'env'
19
+ XSDNamespaceTag = 'xsd'
20
+ XSINamespaceTag = 'xsi'
21
+
22
+ class NS < XSD::NS
23
+ KNOWN_TAG = XSD::NS::KNOWN_TAG.dup.update(
24
+ SOAP::EnvelopeNamespace => 'env'
25
+ )
26
+
27
+ def initialize(tag2ns = nil)
28
+ super(tag2ns)
29
+ end
30
+
31
+ private
32
+
33
+ def default_known_tag
34
+ KNOWN_TAG
35
+ end
36
+ end
37
+
38
+
39
+ end
@@ -0,0 +1,253 @@
1
+ # encoding: ASCII-8BIT
2
+ # SOAP4R - SOAP XML Instance Parser library.
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/xmlparser'
11
+ require 'soap/soap'
12
+ require 'soap/ns'
13
+ require 'soap/baseData'
14
+ require 'soap/encodingstyle/handler'
15
+
16
+
17
+ module SOAP
18
+
19
+
20
+ class Parser
21
+ include SOAP
22
+
23
+ class ParseError < Error; end
24
+ class FormatDecodeError < ParseError; end
25
+ class UnexpectedElementError < ParseError; end
26
+
27
+ private
28
+
29
+ class ParseFrame
30
+ attr_reader :node
31
+ attr_reader :name
32
+ attr_reader :ns
33
+ attr_reader :encodingstyle
34
+ attr_reader :handler
35
+
36
+ class NodeContainer
37
+ def initialize(node)
38
+ @node = node
39
+ end
40
+
41
+ def node
42
+ @node
43
+ end
44
+
45
+ def replace_node(node)
46
+ @node = node
47
+ end
48
+ end
49
+
50
+ public
51
+
52
+ def initialize(ns, name, node, encodingstyle, handler)
53
+ @ns = ns
54
+ @name = name
55
+ @node = NodeContainer.new(node)
56
+ @encodingstyle = encodingstyle
57
+ @handler = handler
58
+ end
59
+
60
+ # to avoid memory consumption
61
+ def update(ns, name, node, encodingstyle, handler)
62
+ @ns = ns
63
+ @name = name
64
+ @node.replace_node(node)
65
+ @encodingstyle = encodingstyle
66
+ @handler = handler
67
+ self
68
+ end
69
+ end
70
+
71
+ public
72
+
73
+ attr_accessor :envelopenamespace
74
+ attr_accessor :default_encodingstyle
75
+ attr_accessor :decode_typemap
76
+ attr_accessor :allow_unqualified_element
77
+
78
+ def initialize(opt = {})
79
+ @opt = opt
80
+ @parser = XSD::XMLParser.create_parser(self, opt)
81
+ @parsestack = nil
82
+ @recycleframe = nil
83
+ @lastnode = nil
84
+ @handlers = {}
85
+ @envelopenamespace = opt[:envelopenamespace] || EnvelopeNamespace
86
+ @default_encodingstyle = opt[:default_encodingstyle] || EncodingNamespace
87
+ @decode_typemap = opt[:decode_typemap] || nil
88
+ @allow_unqualified_element = opt[:allow_unqualified_element] || false
89
+ end
90
+
91
+ def charset
92
+ @parser.charset
93
+ end
94
+
95
+ def parse(string_or_readable)
96
+ @parsestack = []
97
+ @lastnode = nil
98
+
99
+ @handlers.each do |uri, handler|
100
+ handler.decode_prologue
101
+ end
102
+
103
+ @parser.do_parse(string_or_readable)
104
+
105
+ unless @parsestack.empty?
106
+ raise FormatDecodeError.new("Unbalanced tag in XML.")
107
+ end
108
+
109
+ @handlers.each do |uri, handler|
110
+ handler.decode_epilogue
111
+ end
112
+
113
+ @lastnode
114
+ end
115
+
116
+ def start_element(name, raw_attrs)
117
+ lastframe = @parsestack.last
118
+ ns = parent = parent_encodingstyle = nil
119
+ if lastframe
120
+ ns = lastframe.ns
121
+ parent = lastframe.node
122
+ parent_encodingstyle = lastframe.encodingstyle
123
+ else
124
+ ns = SOAP::NS.new
125
+ parent = ParseFrame::NodeContainer.new(nil)
126
+ parent_encodingstyle = nil
127
+ end
128
+ # ns might be the same
129
+ ns, raw_attrs = XSD::XMLParser.filter_ns(ns, raw_attrs)
130
+ attrs = decode_attrs(ns, raw_attrs)
131
+ encodingstyle = attrs[AttrEncodingStyleName]
132
+ # Children's encodingstyle is derived from its parent.
133
+ if encodingstyle.nil?
134
+ if parent.node.is_a?(SOAPHeader)
135
+ encodingstyle = LiteralNamespace
136
+ else
137
+ encodingstyle = parent_encodingstyle || @default_encodingstyle
138
+ end
139
+ end
140
+ handler = find_handler(encodingstyle)
141
+ unless handler
142
+ raise FormatDecodeError.new("Unknown encodingStyle: #{ encodingstyle }.")
143
+ end
144
+ node = decode_tag(ns, name, attrs, parent, handler)
145
+ if @recycleframe
146
+ @parsestack << @recycleframe.update(ns, name, node, encodingstyle, handler)
147
+ @recycleframe = nil
148
+ else
149
+ @parsestack << ParseFrame.new(ns, name, node, encodingstyle, handler)
150
+ end
151
+ end
152
+
153
+ def characters(text)
154
+ # Ignore Text outside of SOAP Envelope.
155
+ if lastframe = @parsestack.last
156
+ # Need not to be cloned because character does not have attr.
157
+ decode_text(lastframe.ns, text, lastframe.handler)
158
+ end
159
+ end
160
+
161
+ def end_element(name)
162
+ lastframe = @parsestack.pop
163
+ unless name == lastframe.name
164
+ raise UnexpectedElementError.new("Closing element name '#{ name }' does not match with opening element '#{ lastframe.name }'.")
165
+ end
166
+ decode_tag_end(lastframe.ns, lastframe.node, lastframe.handler)
167
+ @lastnode = lastframe.node.node
168
+ @recycleframe = lastframe
169
+ end
170
+
171
+ private
172
+
173
+ def decode_tag(ns, name, attrs, parent, handler)
174
+ ele = ns.parse(name)
175
+ # Envelope based parsing.
176
+ if ((ele.namespace == @envelopenamespace) ||
177
+ (@allow_unqualified_element && ele.namespace.nil?))
178
+ o = decode_soap_envelope(ns, ele, attrs, parent)
179
+ return o if o
180
+ end
181
+ # Encoding based parsing.
182
+ return handler.decode_tag(ns, ele, attrs, parent)
183
+ end
184
+
185
+ def decode_tag_end(ns, node, handler)
186
+ return handler.decode_tag_end(ns, node)
187
+ end
188
+
189
+ def decode_attrs(ns, attrs)
190
+ extraattr = {}
191
+ attrs.each do |key, value|
192
+ qname = ns.parse_local(key)
193
+ extraattr[qname] = value
194
+ end
195
+ extraattr
196
+ end
197
+
198
+ def decode_text(ns, text, handler)
199
+ handler.decode_text(ns, text)
200
+ end
201
+
202
+ def decode_soap_envelope(ns, ele, attrs, parent)
203
+ o = nil
204
+ if ele.name == EleEnvelope
205
+ o = SOAPEnvelope.new
206
+ if ext = @opt[:external_content]
207
+ ext.each do |k, v|
208
+ o.external_content[k] = v
209
+ end
210
+ end
211
+ elsif ele.name == EleHeader
212
+ return nil unless parent.node.is_a?(SOAPEnvelope)
213
+ o = SOAPHeader.new
214
+ parent.node.header = o
215
+ elsif ele.name == EleBody
216
+ return nil unless parent.node.is_a?(SOAPEnvelope)
217
+ o = SOAPBody.new
218
+ parent.node.body = o
219
+ elsif ele.name == EleFault
220
+ if parent.node.is_a?(SOAPBody)
221
+ o = SOAPFault.new
222
+ parent.node.fault = o
223
+ elsif parent.node.is_a?(SOAPEnvelope)
224
+ # live.com server returns SOAPFault as a direct child of SOAPEnvelope.
225
+ # support it even if it's not spec compliant.
226
+ warn("Fault must be a child of Body.")
227
+ body = SOAPBody.new
228
+ parent.node.body = body
229
+ o = SOAPFault.new
230
+ body.fault = o
231
+ else
232
+ return nil
233
+ end
234
+ end
235
+ o.extraattr.update(attrs) if o
236
+ o
237
+ end
238
+
239
+ def find_handler(encodingstyle)
240
+ unless @handlers.key?(encodingstyle)
241
+ handler_factory = SOAP::EncodingStyle::Handler.handler(encodingstyle) ||
242
+ SOAP::EncodingStyle::Handler.handler(EncodingNamespace)
243
+ handler = handler_factory.new(@parser.charset)
244
+ handler.decode_typemap = @decode_typemap
245
+ handler.decode_prologue
246
+ @handlers[encodingstyle] = handler
247
+ end
248
+ @handlers[encodingstyle]
249
+ end
250
+ end
251
+
252
+
253
+ end