soap5r 2.0.0

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 (628) hide show
  1. data/.gitignore +1 -0
  2. data/COPYING +7 -0
  3. data/GPL +340 -0
  4. data/RELEASE_en.html +1900 -0
  5. data/RUBYS +56 -0
  6. data/Rakefile +38 -0
  7. data/bin/wsdl2ruby.rb +139 -0
  8. data/bin/xsd2ruby.rb +91 -0
  9. data/install.rb +91 -0
  10. data/lib/soap/attachment.rb +109 -0
  11. data/lib/soap/attrproxy.rb +35 -0
  12. data/lib/soap/baseData.rb +1095 -0
  13. data/lib/soap/ci.rake +31 -0
  14. data/lib/soap/element.rb +278 -0
  15. data/lib/soap/encodingstyle/aspDotNetHandler.rb +208 -0
  16. data/lib/soap/encodingstyle/handler.rb +121 -0
  17. data/lib/soap/encodingstyle/literalHandler.rb +196 -0
  18. data/lib/soap/encodingstyle/soapHandler.rb +560 -0
  19. data/lib/soap/filter/filterchain.rb +52 -0
  20. data/lib/soap/filter/handler.rb +32 -0
  21. data/lib/soap/filter/streamhandler.rb +30 -0
  22. data/lib/soap/filter.rb +14 -0
  23. data/lib/soap/generator.rb +299 -0
  24. data/lib/soap/header/handler.rb +62 -0
  25. data/lib/soap/header/handlerset.rb +71 -0
  26. data/lib/soap/header/mappinghandler.rb +48 -0
  27. data/lib/soap/header/simplehandler.rb +45 -0
  28. data/lib/soap/httpconfigloader.rb +140 -0
  29. data/lib/soap/mapping/encodedregistry.rb +539 -0
  30. data/lib/soap/mapping/factory.rb +389 -0
  31. data/lib/soap/mapping/literalregistry.rb +392 -0
  32. data/lib/soap/mapping/mapping.rb +577 -0
  33. data/lib/soap/mapping/registry.rb +296 -0
  34. data/lib/soap/mapping/rubytypeFactory.rb +446 -0
  35. data/lib/soap/mapping/schemadefinition.rb +171 -0
  36. data/lib/soap/mapping/typeMap.rb +107 -0
  37. data/lib/soap/mapping/wsdlencodedregistry.rb +212 -0
  38. data/lib/soap/mapping/wsdlliteralregistry.rb +249 -0
  39. data/lib/soap/mapping.rb +13 -0
  40. data/lib/soap/marshal.rb +60 -0
  41. data/lib/soap/mimemessage.rb +243 -0
  42. data/lib/soap/nestedexception.rb +43 -0
  43. data/lib/soap/netHttpClient.rb +242 -0
  44. data/lib/soap/ns.rb +39 -0
  45. data/lib/soap/parser.rb +253 -0
  46. data/lib/soap/processor.rb +67 -0
  47. data/lib/soap/property.rb +340 -0
  48. data/lib/soap/proxy.rb +15 -0
  49. data/lib/soap/rpc/cgistub.rb +248 -0
  50. data/lib/soap/rpc/driver.rb +222 -0
  51. data/lib/soap/rpc/element.rb +375 -0
  52. data/lib/soap/rpc/httpserver.rb +143 -0
  53. data/lib/soap/rpc/methodDef.rb +69 -0
  54. data/lib/soap/rpc/proxy.rb +573 -0
  55. data/lib/soap/rpc/router.rb +663 -0
  56. data/lib/soap/rpc/rpc.rb +26 -0
  57. data/lib/soap/rpc/soaplet.rb +201 -0
  58. data/lib/soap/rpc/standaloneServer.rb +44 -0
  59. data/lib/soap/soap.rb +154 -0
  60. data/lib/soap/streamHandler.rb +302 -0
  61. data/lib/soap/version.rb +9 -0
  62. data/lib/soap/wsdlDriver.rb +165 -0
  63. data/lib/wsdl/binding.rb +66 -0
  64. data/lib/wsdl/data.rb +65 -0
  65. data/lib/wsdl/definitions.rb +237 -0
  66. data/lib/wsdl/documentation.rb +33 -0
  67. data/lib/wsdl/import.rb +81 -0
  68. data/lib/wsdl/importer.rb +39 -0
  69. data/lib/wsdl/info.rb +51 -0
  70. data/lib/wsdl/message.rb +55 -0
  71. data/lib/wsdl/operation.rb +152 -0
  72. data/lib/wsdl/operationBinding.rb +241 -0
  73. data/lib/wsdl/param.rb +94 -0
  74. data/lib/wsdl/parser.rb +165 -0
  75. data/lib/wsdl/part.rb +53 -0
  76. data/lib/wsdl/port.rb +67 -0
  77. data/lib/wsdl/portType.rb +76 -0
  78. data/lib/wsdl/service.rb +62 -0
  79. data/lib/wsdl/soap/address.rb +41 -0
  80. data/lib/wsdl/soap/binding.rb +50 -0
  81. data/lib/wsdl/soap/body.rb +59 -0
  82. data/lib/wsdl/soap/cgiStubCreator.rb +93 -0
  83. data/lib/wsdl/soap/classDefCreator.rb +434 -0
  84. data/lib/wsdl/soap/classDefCreatorSupport.rb +241 -0
  85. data/lib/wsdl/soap/classNameCreator.rb +55 -0
  86. data/lib/wsdl/soap/clientSkeltonCreator.rb +107 -0
  87. data/lib/wsdl/soap/complexType.rb +174 -0
  88. data/lib/wsdl/soap/data.rb +43 -0
  89. data/lib/wsdl/soap/definitions.rb +201 -0
  90. data/lib/wsdl/soap/driverCreator.rb +121 -0
  91. data/lib/wsdl/soap/element.rb +34 -0
  92. data/lib/wsdl/soap/encodedMappingRegistryCreator.rb +74 -0
  93. data/lib/wsdl/soap/fault.rb +57 -0
  94. data/lib/wsdl/soap/header.rb +87 -0
  95. data/lib/wsdl/soap/headerfault.rb +57 -0
  96. data/lib/wsdl/soap/literalMappingRegistryCreator.rb +116 -0
  97. data/lib/wsdl/soap/mappingRegistryCreator.rb +59 -0
  98. data/lib/wsdl/soap/mappingRegistryCreatorSupport.rb +377 -0
  99. data/lib/wsdl/soap/methodDefCreator.rb +200 -0
  100. data/lib/wsdl/soap/operation.rb +113 -0
  101. data/lib/wsdl/soap/servantSkeltonCreator.rb +92 -0
  102. data/lib/wsdl/soap/servletStubCreator.rb +105 -0
  103. data/lib/wsdl/soap/standaloneServerStubCreator.rb +101 -0
  104. data/lib/wsdl/soap/wsdl2ruby.rb +226 -0
  105. data/lib/wsdl/types.rb +45 -0
  106. data/lib/wsdl/wsdl.rb +25 -0
  107. data/lib/wsdl/xmlSchema/all.rb +25 -0
  108. data/lib/wsdl/xmlSchema/annotation.rb +35 -0
  109. data/lib/wsdl/xmlSchema/any.rb +62 -0
  110. data/lib/wsdl/xmlSchema/anyAttribute.rb +49 -0
  111. data/lib/wsdl/xmlSchema/attribute.rb +105 -0
  112. data/lib/wsdl/xmlSchema/attributeGroup.rb +69 -0
  113. data/lib/wsdl/xmlSchema/choice.rb +59 -0
  114. data/lib/wsdl/xmlSchema/complexContent.rb +98 -0
  115. data/lib/wsdl/xmlSchema/complexExtension.rb +120 -0
  116. data/lib/wsdl/xmlSchema/complexRestriction.rb +105 -0
  117. data/lib/wsdl/xmlSchema/complexType.rb +194 -0
  118. data/lib/wsdl/xmlSchema/content.rb +96 -0
  119. data/lib/wsdl/xmlSchema/data.rb +117 -0
  120. data/lib/wsdl/xmlSchema/element.rb +154 -0
  121. data/lib/wsdl/xmlSchema/enumeration.rb +37 -0
  122. data/lib/wsdl/xmlSchema/fractiondigits.rb +38 -0
  123. data/lib/wsdl/xmlSchema/group.rb +101 -0
  124. data/lib/wsdl/xmlSchema/import.rb +54 -0
  125. data/lib/wsdl/xmlSchema/importHandler.rb +46 -0
  126. data/lib/wsdl/xmlSchema/importer.rb +103 -0
  127. data/lib/wsdl/xmlSchema/include.rb +49 -0
  128. data/lib/wsdl/xmlSchema/length.rb +38 -0
  129. data/lib/wsdl/xmlSchema/list.rb +49 -0
  130. data/lib/wsdl/xmlSchema/maxexclusive.rb +38 -0
  131. data/lib/wsdl/xmlSchema/maxinclusive.rb +38 -0
  132. data/lib/wsdl/xmlSchema/maxlength.rb +38 -0
  133. data/lib/wsdl/xmlSchema/minexclusive.rb +38 -0
  134. data/lib/wsdl/xmlSchema/mininclusive.rb +38 -0
  135. data/lib/wsdl/xmlSchema/minlength.rb +38 -0
  136. data/lib/wsdl/xmlSchema/parser.rb +168 -0
  137. data/lib/wsdl/xmlSchema/pattern.rb +37 -0
  138. data/lib/wsdl/xmlSchema/ref.rb +34 -0
  139. data/lib/wsdl/xmlSchema/schema.rb +179 -0
  140. data/lib/wsdl/xmlSchema/sequence.rb +55 -0
  141. data/lib/wsdl/xmlSchema/simpleContent.rb +70 -0
  142. data/lib/wsdl/xmlSchema/simpleExtension.rb +63 -0
  143. data/lib/wsdl/xmlSchema/simpleRestriction.rb +133 -0
  144. data/lib/wsdl/xmlSchema/simpleType.rb +88 -0
  145. data/lib/wsdl/xmlSchema/totaldigits.rb +38 -0
  146. data/lib/wsdl/xmlSchema/union.rb +36 -0
  147. data/lib/wsdl/xmlSchema/unique.rb +35 -0
  148. data/lib/wsdl/xmlSchema/whitespace.rb +38 -0
  149. data/lib/wsdl/xmlSchema/xsd2ruby.rb +176 -0
  150. data/lib/xsd/charset.rb +190 -0
  151. data/lib/xsd/codegen/classdef.rb +209 -0
  152. data/lib/xsd/codegen/commentdef.rb +35 -0
  153. data/lib/xsd/codegen/gensupport.rb +277 -0
  154. data/lib/xsd/codegen/methoddef.rb +71 -0
  155. data/lib/xsd/codegen/moduledef.rb +209 -0
  156. data/lib/xsd/codegen.rb +13 -0
  157. data/lib/xsd/datatypes.rb +1466 -0
  158. data/lib/xsd/datatypes1999.rb +21 -0
  159. data/lib/xsd/iconvcharset.rb +34 -0
  160. data/lib/xsd/mapping.rb +69 -0
  161. data/lib/xsd/namedelements.rb +133 -0
  162. data/lib/xsd/ns.rb +183 -0
  163. data/lib/xsd/qname.rb +80 -0
  164. data/lib/xsd/xmlparser/libxmlparser.rb +116 -0
  165. data/lib/xsd/xmlparser/parser.rb +101 -0
  166. data/lib/xsd/xmlparser/rexmlparser.rb +59 -0
  167. data/lib/xsd/xmlparser/xmlparser.rb +51 -0
  168. data/lib/xsd/xmlparser/xmlscanner.rb +150 -0
  169. data/lib/xsd/xmlparser.rb +77 -0
  170. data/rubyStyle.css +104 -0
  171. data/sample/attachment/complexmime/EdmService.rb +125 -0
  172. data/sample/attachment/complexmime/README.txt +3 -0
  173. data/sample/attachment/complexmime/client.rb +58 -0
  174. data/sample/attachment/complexmime/drift.cdf +1 -0
  175. data/sample/attachment/complexmime/plaatje.png +1 -0
  176. data/sample/attachment/complexmime/server.rb +69 -0
  177. data/sample/attachment/swa/client.rb +14 -0
  178. data/sample/attachment/swa/server.rb +24 -0
  179. data/sample/basic/apacheClient.rb +93 -0
  180. data/sample/basic/babelfish.rb +17 -0
  181. data/sample/basic/calc/calc.rb +18 -0
  182. data/sample/basic/calc/calc2.rb +30 -0
  183. data/sample/basic/calc/client.rb +27 -0
  184. data/sample/basic/calc/client2.rb +30 -0
  185. data/sample/basic/calc/httpd.rb +21 -0
  186. data/sample/basic/calc/samplehttpd.conf +2 -0
  187. data/sample/basic/calc/server.cgi +16 -0
  188. data/sample/basic/calc/server.fcgi +22 -0
  189. data/sample/basic/calc/server.rb +22 -0
  190. data/sample/basic/calc/server2.rb +25 -0
  191. data/sample/basic/exchange/client.rb +20 -0
  192. data/sample/basic/exchange/exchange.rb +18 -0
  193. data/sample/basic/exchange/httpd.rb +21 -0
  194. data/sample/basic/exchange/samplehttpd.conf +2 -0
  195. data/sample/basic/exchange/server.cgi +15 -0
  196. data/sample/basic/exchange/server.rb +21 -0
  197. data/sample/basic/flickr.rb +27 -0
  198. data/sample/basic/helloworld/client.rb +7 -0
  199. data/sample/basic/helloworld/server.rb +21 -0
  200. data/sample/basic/sampleStruct/client.rb +17 -0
  201. data/sample/basic/sampleStruct/httpd.rb +21 -0
  202. data/sample/basic/sampleStruct/iSampleStruct.rb +23 -0
  203. data/sample/basic/sampleStruct/sampleStruct.rb +14 -0
  204. data/sample/basic/sampleStruct/samplehttpd.conf +2 -0
  205. data/sample/basic/sampleStruct/server.cgi +15 -0
  206. data/sample/basic/sampleStruct/server.rb +21 -0
  207. data/sample/basic/whois.rb +15 -0
  208. data/sample/basic/wsdl_helloworld/README +15 -0
  209. data/sample/basic/wsdl_helloworld/client/default.rb +2 -0
  210. data/sample/basic/wsdl_helloworld/client/defaultDriver.rb +48 -0
  211. data/sample/basic/wsdl_helloworld/client/hws.wsdl +46 -0
  212. data/sample/basic/wsdl_helloworld/client/hwsClient.rb +23 -0
  213. data/sample/basic/wsdl_helloworld/server/hw_s.rb +26 -0
  214. data/sample/basic/wsdl_helloworld/server/hws.wsdl +46 -0
  215. data/sample/basic/yahooNewsSearch.rb +37 -0
  216. data/sample/howto/as_xml/client.rb +23 -0
  217. data/sample/howto/as_xml/server.rb +23 -0
  218. data/sample/howto/base64/client.rb +18 -0
  219. data/sample/howto/base64/server.rb +31 -0
  220. data/sample/howto/custom_ns/client.rb +38 -0
  221. data/sample/howto/custom_ns/server.rb +43 -0
  222. data/sample/howto/documentliteral/README.txt +19 -0
  223. data/sample/howto/documentliteral/client.rb +12 -0
  224. data/sample/howto/documentliteral/echo.wsdl +66 -0
  225. data/sample/howto/documentliteral/servant.rb +12 -0
  226. data/sample/howto/filter/client.rb +43 -0
  227. data/sample/howto/filter/server.rb +68 -0
  228. data/sample/howto/scopesample/client.rb +35 -0
  229. data/sample/howto/scopesample/httpd.rb +23 -0
  230. data/sample/howto/scopesample/samplehttpd.conf +2 -0
  231. data/sample/howto/scopesample/servant.rb +19 -0
  232. data/sample/howto/scopesample/server.cgi +30 -0
  233. data/sample/howto/scopesample/server.rb +21 -0
  234. data/sample/howto/styleuse/client.rb +22 -0
  235. data/sample/howto/styleuse/server.rb +87 -0
  236. data/sample/howto/wsdl_fault/README.txt +11 -0
  237. data/sample/howto/wsdl_fault/fault/AddClient.rb +25 -0
  238. data/sample/howto/wsdl_fault/fault/AddServer.rb +16 -0
  239. data/sample/howto/wsdl_fault/fault/AddServiceImpl.rb +19 -0
  240. data/sample/howto/wsdl_fault/fault/fault.wsdl +79 -0
  241. data/sample/howto/wsdl_fault/multifault/AddClient.rb +29 -0
  242. data/sample/howto/wsdl_fault/multifault/AddServer.rb +16 -0
  243. data/sample/howto/wsdl_fault/multifault/AddServiceImpl.rb +25 -0
  244. data/sample/howto/wsdl_fault/multifault/fault.wsdl +96 -0
  245. data/sample/howto/wsdl_hash/client.rb +12 -0
  246. data/sample/howto/wsdl_hash/hash.wsdl +69 -0
  247. data/sample/howto/wsdl_hash/server.rb +18 -0
  248. data/sample/marshal/customfactory.rb +98 -0
  249. data/sample/marshal/customregistry.rb +18 -0
  250. data/sample/marshal/digraph.rb +44 -0
  251. data/sample/marshal/enum/README.txt +6 -0
  252. data/sample/marshal/enum/enum.xsd +23 -0
  253. data/sample/marshal/enum/enumsample.rb +21 -0
  254. data/sample/marshal/enum/enumsample_mapper.rb +8 -0
  255. data/sample/marshal/enum/enumsample_mapping_registry.rb +24 -0
  256. data/sample/marshal/enum/marshal.rb +10 -0
  257. data/sample/payload/basicauth/client.rb +11 -0
  258. data/sample/payload/basicauth/htpasswd +2 -0
  259. data/sample/payload/basicauth/server.rb +44 -0
  260. data/sample/payload/cookies/calc.rb +53 -0
  261. data/sample/payload/cookies/client.rb +31 -0
  262. data/sample/payload/cookies/filterclient.rb +53 -0
  263. data/sample/payload/cookies/server.rb +25 -0
  264. data/sample/payload/gzipped/client.rb +9 -0
  265. data/sample/payload/gzipped/server.rb +22 -0
  266. data/sample/payload/ssl/files/README +1 -0
  267. data/sample/payload/ssl/files/ca.cert +23 -0
  268. data/sample/payload/ssl/files/client.cert +19 -0
  269. data/sample/payload/ssl/files/client.key +15 -0
  270. data/sample/payload/ssl/files/server.cert +19 -0
  271. data/sample/payload/ssl/files/server.key +15 -0
  272. data/sample/payload/ssl/files/sslclient.properties +5 -0
  273. data/sample/payload/ssl/files/sslclient_require_noserverauth.properties +2 -0
  274. data/sample/payload/ssl/files/sslclient_with_clientauth.properties +9 -0
  275. data/sample/payload/ssl/files/subca.cert +21 -0
  276. data/sample/payload/ssl/sslclient.rb +13 -0
  277. data/sample/payload/ssl/sslclient_require_noserverauth.rb +13 -0
  278. data/sample/payload/ssl/sslclient_with_clientauth.rb +13 -0
  279. data/sample/payload/ssl/sslserver.rb +50 -0
  280. data/sample/payload/ssl/sslserver_noauth.rb +46 -0
  281. data/sample/payload/ssl/sslserver_require_clientauth.rb +51 -0
  282. data/sample/showcase/soap/hippo5tq/hippo5tq.rb +42 -0
  283. data/sample/showcase/soap/hippo5tq/hippo5tq2.rb +100 -0
  284. data/sample/showcase/soap/hippo5tq/hippoClient.rb +107 -0
  285. data/sample/showcase/soap/icd/IICD.rb +18 -0
  286. data/sample/showcase/soap/icd/icd.rb +47 -0
  287. data/sample/showcase/soap/mssoap/README.txt +62 -0
  288. data/sample/showcase/soap/mssoap/client.vba +19 -0
  289. data/sample/showcase/soap/mssoap/stockQuoteService.cgi +45 -0
  290. data/sample/showcase/soap/mssoap/stockQuoteService.rb +10 -0
  291. data/sample/showcase/soap/mssoap/stockQuoteService.wsdl +47 -0
  292. data/sample/showcase/soap/mssoap/stockQuoteServiceClient.rb +27 -0
  293. data/sample/showcase/soap/mssoap/stockQuoteServiceClient.xls +0 -0
  294. data/sample/showcase/soap/mssoap/stockQuoteServicePortTypeDriver.rb +47 -0
  295. data/sample/showcase/soap/netDicV06/INetDicV06.rb +37 -0
  296. data/sample/showcase/soap/netDicV06/netDicV06.rb +17 -0
  297. data/sample/showcase/soap/raa/SOAP__Lite.pl +15 -0
  298. data/sample/showcase/soap/raa/pocketSOAP.js +33 -0
  299. data/sample/showcase/soap/raa2.4/raa.rb +333 -0
  300. data/sample/showcase/soap/raa2.4/raa.wsdl +644 -0
  301. data/sample/showcase/soap/raa2.4/raaDriver.rb +256 -0
  302. data/sample/showcase/soap/raa2.4/raaServiceClient.rb +355 -0
  303. data/sample/showcase/soap/raa2.4/sample.rb +116 -0
  304. data/sample/showcase/soap/rwiki/rwikiClient.rb +30 -0
  305. data/sample/showcase/soap/rwiki/rwikiServer.cgi +45 -0
  306. data/sample/showcase/soap/soapbox/ContactsDataSet.xml +37 -0
  307. data/sample/showcase/soap/soapbox/ExceptionDataSet.xml +23 -0
  308. data/sample/showcase/soap/soapbox/MessageDataSet.xml +8 -0
  309. data/sample/showcase/soap/soapbox/SoapBoxWebService.wsdl +1233 -0
  310. data/sample/showcase/soap/soapbox/SoapBoxWebServiceWithRawXML.wsdl +1226 -0
  311. data/sample/showcase/soap/soapbox/wsdlDriver.rb +24 -0
  312. data/sample/showcase/wsdl/PayPalSvc/client.rb +37 -0
  313. data/sample/showcase/wsdl/amazon/AmazonSearch.rb +3161 -0
  314. data/sample/showcase/wsdl/amazon/AmazonSearchDriver.rb +547 -0
  315. data/sample/showcase/wsdl/amazon/sampleClient.rb +38 -0
  316. data/sample/showcase/wsdl/amazon/wsdlDriver.rb +53 -0
  317. data/sample/showcase/wsdl/amazonEC/client.rb +14 -0
  318. data/sample/showcase/wsdl/eBaySvc/sampleclient.rb +61 -0
  319. data/sample/showcase/wsdl/googleAdwords/CampaignService.wsdl +785 -0
  320. data/sample/showcase/wsdl/googleAdwords/ca.pem +19 -0
  321. data/sample/showcase/wsdl/googleAdwords/client.rb +41 -0
  322. data/sample/showcase/wsdl/googleAdwords/soap/property +1 -0
  323. data/sample/showcase/wsdl/googleSearch/GoogleSearch.rb +98 -0
  324. data/sample/showcase/wsdl/googleSearch/GoogleSearchDriver.rb +103 -0
  325. data/sample/showcase/wsdl/googleSearch/README +6 -0
  326. data/sample/showcase/wsdl/googleSearch/httpd.rb +21 -0
  327. data/sample/showcase/wsdl/googleSearch/sampleClient.rb +57 -0
  328. data/sample/showcase/wsdl/googleSearch/samplehttpd.conf +2 -0
  329. data/sample/showcase/wsdl/googleSearch/sjissearch.sh +3 -0
  330. data/sample/showcase/wsdl/googleSearch/wsdlDriver.rb +30 -0
  331. data/sample/showcase/wsdl/noaa/README.txt +5 -0
  332. data/sample/showcase/wsdl/noaa/client.rb +45 -0
  333. data/sample/showcase/wsdl/noaa/default.rb +47 -0
  334. data/sample/showcase/wsdl/noaa/defaultDriver.rb +67 -0
  335. data/sample/showcase/wsdl/noaa/defaultMappingRegistry.rb +75 -0
  336. data/sample/showcase/wsdl/noaa/ndfdXMLClient.rb +44 -0
  337. data/sample/showcase/wsdl/raa2.4/raa.rb +135 -0
  338. data/sample/showcase/wsdl/raa2.4/raa.wsdl +644 -0
  339. data/sample/showcase/wsdl/raa2.4/wsdlDriver.rb +118 -0
  340. data/sample/showcase/wsdl/rnn/client.rb +60 -0
  341. data/sample/showcase/wsdl/rnn/post.rb +28 -0
  342. data/sample/showcase/wsdl/rnn/rnn-hash.wsdl +282 -0
  343. data/sample/showcase/wsdl/rnn/rnn.wsdl +310 -0
  344. data/sample/showcase/wsdl/rnn/submit.rb +64 -0
  345. data/sample/showcase/wsdl/salesforce/SforceServiceClient.rb +281 -0
  346. data/sample/showcase/wsdl/salesforce/ca.pem +35 -0
  347. data/sample/showcase/wsdl/salesforce/client.rb +157 -0
  348. data/sample/showcase/wsdl/salesforce/default.rb +1741 -0
  349. data/sample/showcase/wsdl/salesforce/defaultDriver.rb +166 -0
  350. data/sample/showcase/wsdl/salesforce/soap/property +1 -0
  351. data/sample/soapheader/authheader/authmgr.rb +42 -0
  352. data/sample/soapheader/authheader/client.rb +41 -0
  353. data/sample/soapheader/authheader/client2.rb +43 -0
  354. data/sample/soapheader/authheader/server.rb +74 -0
  355. data/sample/soapheader/authheader/server2.rb +84 -0
  356. data/sample/soapheader/soapext_basicauth/client.rb +26 -0
  357. data/sample/soapheader/soapext_basicauth/mms_MizGIS.rb +702 -0
  358. data/sample/soapheader/soapext_basicauth/mms_MizGIS.wsdl +1007 -0
  359. data/sample/soapheader/soapext_basicauth/mms_MizGISClient.rb +232 -0
  360. data/sample/soapheader/soapext_basicauth/mms_MizGISDriver.rb +211 -0
  361. data/sample/soapheader/soapext_basicauth/mms_MizGISMappingRegistry.rb +1233 -0
  362. data/soap5r.gemspec +30 -0
  363. data/test/16runner.rb +69 -0
  364. data/test/helper.rb +7 -0
  365. data/test/interopR2/README.txt +2 -0
  366. data/test/interopR2/SOAPBuildersInterop_R2.wsdl +461 -0
  367. data/test/interopR2/SOAPBuildersInterop_R2GrB.wsdl +19 -0
  368. data/test/interopR2/base.rb +289 -0
  369. data/test/interopR2/client.NetRemoting.rb +18 -0
  370. data/test/interopR2/client.rb +1235 -0
  371. data/test/interopR2/client4S4C.rb +16 -0
  372. data/test/interopR2/client4S4C2.rb +15 -0
  373. data/test/interopR2/clientASP.NET.rb +18 -0
  374. data/test/interopR2/clientApacheAxis.rb +17 -0
  375. data/test/interopR2/clientApacheSOAP.rb +18 -0
  376. data/test/interopR2/clientBEAWebLogic.rb +18 -0
  377. data/test/interopR2/clientBase.rb +1968 -0
  378. data/test/interopR2/clientCapeConnect.rb +19 -0
  379. data/test/interopR2/clientDelphi.rb +20 -0
  380. data/test/interopR2/clientEasySoap.rb +15 -0
  381. data/test/interopR2/clientFrontier.rb +26 -0
  382. data/test/interopR2/clientGLUE.rb +33 -0
  383. data/test/interopR2/clientHP.rb +14 -0
  384. data/test/interopR2/clientJAX-RPC.rb +20 -0
  385. data/test/interopR2/clientJSOAP.rb +15 -0
  386. data/test/interopR2/clientKafkaXSLT.rb +16 -0
  387. data/test/interopR2/clientMSSOAPToolkit2.0.rb +18 -0
  388. data/test/interopR2/clientMSSOAPToolkit3.0.rb +18 -0
  389. data/test/interopR2/clientNuSOAP.rb +20 -0
  390. data/test/interopR2/clientNuWave.rb +16 -0
  391. data/test/interopR2/clientOpenLink.rb +16 -0
  392. data/test/interopR2/clientOracle.rb +16 -0
  393. data/test/interopR2/clientPEAR.rb +19 -0
  394. data/test/interopR2/clientPhalanx.rb +19 -0
  395. data/test/interopR2/clientSIMACE.rb +19 -0
  396. data/test/interopR2/clientSOAP4R.rb +19 -0
  397. data/test/interopR2/clientSOAP__Lite.rb +15 -0
  398. data/test/interopR2/clientSQLData.rb +19 -0
  399. data/test/interopR2/clientSilverStream.rb +18 -0
  400. data/test/interopR2/clientSpray2001.rb +18 -0
  401. data/test/interopR2/clientSun.rb +20 -0
  402. data/test/interopR2/clientVWOpentalkSoap.rb +20 -0
  403. data/test/interopR2/clientWASP.rb +20 -0
  404. data/test/interopR2/clientWASPC.rb +19 -0
  405. data/test/interopR2/clientWebMethods.rb +16 -0
  406. data/test/interopR2/clientWhiteMesa.rb +29 -0
  407. data/test/interopR2/clientWingfoot.rb +16 -0
  408. data/test/interopR2/clientXMLBus.rb +20 -0
  409. data/test/interopR2/clientXMLRPC-EPI.rb +18 -0
  410. data/test/interopR2/clientXSOAP.rb +15 -0
  411. data/test/interopR2/clientZSI.rb +20 -0
  412. data/test/interopR2/clienteSOAP.rb +19 -0
  413. data/test/interopR2/clientgSOAP.rb +19 -0
  414. data/test/interopR2/clientkSOAP.rb +18 -0
  415. data/test/interopR2/iSimonReg.rb +113 -0
  416. data/test/interopR2/interopResultBase.rb +115 -0
  417. data/test/interopR2/interopService.rb +248 -0
  418. data/test/interopR2/rwikiInteropService.rb +106 -0
  419. data/test/interopR2/server.cgi +271 -0
  420. data/test/interopR2/server.rb +276 -0
  421. data/test/interopR2/simonReg.rb +124 -0
  422. data/test/interopR2/test.sh +49 -0
  423. data/test/interopR4/client.rb +113 -0
  424. data/test/runner.rb +8 -0
  425. data/test/sm11/classDef.rb +157 -0
  426. data/test/sm11/client.rb +543 -0
  427. data/test/sm11/driver.rb +184 -0
  428. data/test/sm11/servant.rb +1068 -0
  429. data/test/sm11/server.rb +26 -0
  430. data/test/soap/asp.net/hello.wsdl +96 -0
  431. data/test/soap/asp.net/test_aspdotnet.rb +124 -0
  432. data/test/soap/auth/htdigest +2 -0
  433. data/test/soap/auth/htpasswd +2 -0
  434. data/test/soap/auth/test_basic.rb +118 -0
  435. data/test/soap/auth/test_digest.rb +119 -0
  436. data/test/soap/calc/calc.rb +18 -0
  437. data/test/soap/calc/calc2.rb +30 -0
  438. data/test/soap/calc/server.cgi +16 -0
  439. data/test/soap/calc/server.rb +18 -0
  440. data/test/soap/calc/server2.rb +21 -0
  441. data/test/soap/calc/test_calc.rb +53 -0
  442. data/test/soap/calc/test_calc2.rb +57 -0
  443. data/test/soap/calc/test_calc_cgi.rb +72 -0
  444. data/test/soap/case/test_mapping.rb +58 -0
  445. data/test/soap/fault/test_customfault.rb +61 -0
  446. data/test/soap/fault/test_fault.rb +47 -0
  447. data/test/soap/fault/test_soaparray.rb +36 -0
  448. data/test/soap/filter/test_filter.rb +147 -0
  449. data/test/soap/header/server.cgi +121 -0
  450. data/test/soap/header/test_authheader.rb +241 -0
  451. data/test/soap/header/test_authheader_cgi.rb +122 -0
  452. data/test/soap/header/test_simplehandler.rb +117 -0
  453. data/test/soap/helloworld/hw_s.rb +17 -0
  454. data/test/soap/helloworld/test_helloworld.rb +45 -0
  455. data/test/soap/htpasswd +2 -0
  456. data/test/soap/literalArrayMapping/amazonEc.rb +4779 -0
  457. data/test/soap/literalArrayMapping/amazonEcDriver.rb +173 -0
  458. data/test/soap/literalArrayMapping/amazonresponse.xml +100 -0
  459. data/test/soap/literalArrayMapping/test_definedarray.rb +35 -0
  460. data/test/soap/marshal/marshaltestlib.rb +498 -0
  461. data/test/soap/marshal/test_digraph.rb +57 -0
  462. data/test/soap/marshal/test_marshal.rb +28 -0
  463. data/test/soap/marshal/test_struct.rb +48 -0
  464. data/test/soap/ssl/README +1 -0
  465. data/test/soap/ssl/ca.cert +23 -0
  466. data/test/soap/ssl/client.cert +19 -0
  467. data/test/soap/ssl/client.key +15 -0
  468. data/test/soap/ssl/server.cert +19 -0
  469. data/test/soap/ssl/server.key +15 -0
  470. data/test/soap/ssl/sslsvr.rb +59 -0
  471. data/test/soap/ssl/subca.cert +21 -0
  472. data/test/soap/ssl/test_ssl.rb +236 -0
  473. data/test/soap/struct/test_struct.rb +71 -0
  474. data/test/soap/styleuse/client.rb +21 -0
  475. data/test/soap/styleuse/server.rb +87 -0
  476. data/test/soap/swa/test_file.rb +76 -0
  477. data/test/soap/test_basetype.rb +1091 -0
  478. data/test/soap/test_cookie.rb +113 -0
  479. data/test/soap/test_custom_ns.rb +106 -0
  480. data/test/soap/test_custommap.rb +111 -0
  481. data/test/soap/test_empty.rb +106 -0
  482. data/test/soap/test_envelopenamespace.rb +86 -0
  483. data/test/soap/test_extraattr.rb +55 -0
  484. data/test/soap/test_generator.rb +32 -0
  485. data/test/soap/test_httpconfigloader.rb +72 -0
  486. data/test/soap/test_mapping.rb +132 -0
  487. data/test/soap/test_nestedexception.rb +71 -0
  488. data/test/soap/test_nil.rb +71 -0
  489. data/test/soap/test_no_indent.rb +89 -0
  490. data/test/soap/test_property.rb +429 -0
  491. data/test/soap/test_response_as_xml.rb +118 -0
  492. data/test/soap/test_soapelement.rb +139 -0
  493. data/test/soap/test_streamhandler.rb +271 -0
  494. data/test/soap/test_styleuse.rb +327 -0
  495. data/test/soap/wsdlDriver/README.txt +2 -0
  496. data/test/soap/wsdlDriver/calc.wsdl +126 -0
  497. data/test/soap/wsdlDriver/document.wsdl +54 -0
  498. data/test/soap/wsdlDriver/echo_version.rb +30 -0
  499. data/test/soap/wsdlDriver/simpletype.wsdl +63 -0
  500. data/test/soap/wsdlDriver/test_calc.rb +72 -0
  501. data/test/soap/wsdlDriver/test_document.rb +72 -0
  502. data/test/soap/wsdlDriver/test_simpletype.rb +82 -0
  503. data/test/testutil.rb +55 -0
  504. data/test/wsdl/abstract/abstract.wsdl +176 -0
  505. data/test/wsdl/abstract/test_abstract.rb +160 -0
  506. data/test/wsdl/anonymous/expectedClassDef.rb +129 -0
  507. data/test/wsdl/anonymous/expectedDriver.rb +60 -0
  508. data/test/wsdl/anonymous/expectedMappingRegistry.rb +177 -0
  509. data/test/wsdl/anonymous/lp.wsdl +147 -0
  510. data/test/wsdl/anonymous/test_anonymous.rb +131 -0
  511. data/test/wsdl/any/any.wsdl +114 -0
  512. data/test/wsdl/any/expectedDriver.rb +69 -0
  513. data/test/wsdl/any/expectedEcho.rb +58 -0
  514. data/test/wsdl/any/expectedMappingRegistry.rb +64 -0
  515. data/test/wsdl/any/expectedService.rb +70 -0
  516. data/test/wsdl/any/test_any.rb +194 -0
  517. data/test/wsdl/axisArray/axisArray.wsdl +87 -0
  518. data/test/wsdl/axisArray/test_axisarray.rb +125 -0
  519. data/test/wsdl/choice/choice.wsdl +167 -0
  520. data/test/wsdl/choice/test_choice.rb +311 -0
  521. data/test/wsdl/complexcontent/complexContent.wsdl +83 -0
  522. data/test/wsdl/complexcontent/test_echo.rb +91 -0
  523. data/test/wsdl/datetime/DatetimeService.rb +45 -0
  524. data/test/wsdl/datetime/datetime.rb +0 -0
  525. data/test/wsdl/datetime/datetime.wsdl +45 -0
  526. data/test/wsdl/datetime/datetimeServant.rb +23 -0
  527. data/test/wsdl/datetime/test_datetime.rb +88 -0
  528. data/test/wsdl/document/array/double.wsdl +161 -0
  529. data/test/wsdl/document/array/test_array.rb +202 -0
  530. data/test/wsdl/document/document.wsdl +76 -0
  531. data/test/wsdl/document/number.wsdl +54 -0
  532. data/test/wsdl/document/ping_nosoapaction.wsdl +66 -0
  533. data/test/wsdl/document/test_nosoapaction.rb +103 -0
  534. data/test/wsdl/document/test_number.rb +93 -0
  535. data/test/wsdl/document/test_rpc.rb +356 -0
  536. data/test/wsdl/emptycomplextype.wsdl +31 -0
  537. data/test/wsdl/fault/fault.wsdl +79 -0
  538. data/test/wsdl/fault/multifault.wsdl +96 -0
  539. data/test/wsdl/fault/test_fault.rb +120 -0
  540. data/test/wsdl/fault/test_multifault.rb +135 -0
  541. data/test/wsdl/group/expectedClassdef.rb +59 -0
  542. data/test/wsdl/group/expectedDriver.rb +52 -0
  543. data/test/wsdl/group/expectedMappingRegistry.rb +68 -0
  544. data/test/wsdl/group/group.wsdl +88 -0
  545. data/test/wsdl/group/test_rpc.rb +146 -0
  546. data/test/wsdl/list/list.wsdl +93 -0
  547. data/test/wsdl/list/test_list.rb +125 -0
  548. data/test/wsdl/map/map.wsdl +92 -0
  549. data/test/wsdl/map/map.xml +43 -0
  550. data/test/wsdl/map/test_map.rb +100 -0
  551. data/test/wsdl/marshal/person.wsdl +21 -0
  552. data/test/wsdl/marshal/person_org.rb +24 -0
  553. data/test/wsdl/marshal/test_wsdlmarshal.rb +76 -0
  554. data/test/wsdl/multiplefault.wsdl +75 -0
  555. data/test/wsdl/oneway/oneway.wsdl +36 -0
  556. data/test/wsdl/oneway/test_oneway.rb +109 -0
  557. data/test/wsdl/overload/expectedClient.rb +38 -0
  558. data/test/wsdl/overload/expectedDriver.rb +62 -0
  559. data/test/wsdl/overload/expectedServant.rb +36 -0
  560. data/test/wsdl/overload/overload.wsdl +70 -0
  561. data/test/wsdl/overload/test_overload.rb +132 -0
  562. data/test/wsdl/qualified/lp.wsdl +47 -0
  563. data/test/wsdl/qualified/lp.xsd +26 -0
  564. data/test/wsdl/qualified/np.wsdl +51 -0
  565. data/test/wsdl/qualified/test_qualified.rb +138 -0
  566. data/test/wsdl/qualified/test_unqualified.rb +139 -0
  567. data/test/wsdl/raa/RAAService.rb +126 -0
  568. data/test/wsdl/raa/README.txt +8 -0
  569. data/test/wsdl/raa/expectedClassDef.rb +101 -0
  570. data/test/wsdl/raa/expectedDriver.rb +97 -0
  571. data/test/wsdl/raa/expectedMappingRegistry.rb +122 -0
  572. data/test/wsdl/raa/raa.wsdl +264 -0
  573. data/test/wsdl/raa/test_raa.rb +127 -0
  574. data/test/wsdl/ref/expectedDriver.rb +52 -0
  575. data/test/wsdl/ref/expectedProduct.rb +244 -0
  576. data/test/wsdl/ref/product.wsdl +147 -0
  577. data/test/wsdl/ref/test_ref.rb +269 -0
  578. data/test/wsdl/rpc/rpc.wsdl +109 -0
  579. data/test/wsdl/rpc/test-rpc-lit.wsdl +371 -0
  580. data/test/wsdl/rpc/test_rpc.rb +177 -0
  581. data/test/wsdl/rpc/test_rpc_lit.rb +471 -0
  582. data/test/wsdl/simplecontent/simplecontent.wsdl +84 -0
  583. data/test/wsdl/simplecontent/test_simplecontent.rb +103 -0
  584. data/test/wsdl/simpletype/rpc/expectedClient.rb +35 -0
  585. data/test/wsdl/simpletype/rpc/expectedDriver.rb +59 -0
  586. data/test/wsdl/simpletype/rpc/expectedEchoVersion.rb +37 -0
  587. data/test/wsdl/simpletype/rpc/expectedMappingRegistry.rb +58 -0
  588. data/test/wsdl/simpletype/rpc/expectedServant.rb +33 -0
  589. data/test/wsdl/simpletype/rpc/expectedService.rb +56 -0
  590. data/test/wsdl/simpletype/rpc/rpc.wsdl +98 -0
  591. data/test/wsdl/simpletype/rpc/test_rpc.rb +53 -0
  592. data/test/wsdl/simpletype/simpletype.wsdl +114 -0
  593. data/test/wsdl/simpletype/test_simpletype.rb +93 -0
  594. data/test/wsdl/soap/soapbodyparts.wsdl +103 -0
  595. data/test/wsdl/soap/test_soapbodyparts.rb +80 -0
  596. data/test/wsdl/soap/wsdl2ruby/expectedClassdef.rb +22 -0
  597. data/test/wsdl/soap/wsdl2ruby/expectedClient.rb +35 -0
  598. data/test/wsdl/soap/wsdl2ruby/expectedDriver.rb +59 -0
  599. data/test/wsdl/soap/wsdl2ruby/expectedMappingRegistry.rb +37 -0
  600. data/test/wsdl/soap/wsdl2ruby/expectedServant.rb +33 -0
  601. data/test/wsdl/soap/wsdl2ruby/expectedService.cgi +49 -0
  602. data/test/wsdl/soap/wsdl2ruby/expectedService.rb +56 -0
  603. data/test/wsdl/soap/wsdl2ruby/rpc.wsdl +80 -0
  604. data/test/wsdl/soap/wsdl2ruby/section/expectedClassdef.rb +38 -0
  605. data/test/wsdl/soap/wsdl2ruby/section/section.xsd +31 -0
  606. data/test/wsdl/soap/wsdl2ruby/section/test_section.rb +54 -0
  607. data/test/wsdl/soap/wsdl2ruby/soapenc/soapenc.wsdl +64 -0
  608. data/test/wsdl/soap/wsdl2ruby/soapenc/test_soapenc.rb +84 -0
  609. data/test/wsdl/soap/wsdl2ruby/test_wsdl2ruby.rb +103 -0
  610. data/test/wsdl/soaptype/soaptype.wsdl +61 -0
  611. data/test/wsdl/soaptype/test_soaptype.rb +179 -0
  612. data/test/wsdl/test_emptycomplextype.rb +22 -0
  613. data/test/wsdl/test_fault.rb +51 -0
  614. data/test/wsdl/test_multiplefault.rb +42 -0
  615. data/test/xsd/codegen/test_classdef.rb +245 -0
  616. data/test/xsd/noencoding.xml +4 -0
  617. data/test/xsd/test_noencoding.rb +33 -0
  618. data/test/xsd/test_ns.rb +42 -0
  619. data/test/xsd/test_xmlschemaparser.rb +23 -0
  620. data/test/xsd/test_xsd.rb +1639 -0
  621. data/test/xsd/xmllang.xml +43 -0
  622. data/test/xsd/xmlschema.xml +12 -0
  623. data/test/xsd/xsd2ruby/expected_mysample.rb +66 -0
  624. data/test/xsd/xsd2ruby/expected_mysample_mapper.rb +12 -0
  625. data/test/xsd/xsd2ruby/expected_mysample_mapping_registry.rb +52 -0
  626. data/test/xsd/xsd2ruby/section.xsd +49 -0
  627. data/test/xsd/xsd2ruby/test_xsd2ruby.rb +91 -0
  628. metadata +1033 -0
@@ -0,0 +1,377 @@
1
+ # encoding: ASCII-8BIT
2
+ # WSDL4R - Creating MappingRegistry support.
3
+ # Copyright (C) 2000-2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
4
+
5
+ # This program is copyrighted free software by NAKAMURA, Hiroshi. You can
6
+ # redistribute it and/or modify it under the same terms of Ruby's license;
7
+ # either the dual license version in 2003, or any later version.
8
+
9
+
10
+ require 'wsdl/soap/classDefCreatorSupport'
11
+
12
+
13
+ module WSDL
14
+ module SOAP
15
+
16
+
17
+ # requires @defined_const = {}, @dump_with_inner, @modulepath
18
+ module MappingRegistryCreatorSupport
19
+ include ClassDefCreatorSupport
20
+ include XSD::CodeGen
21
+
22
+ def dump_with_inner
23
+ @dump_with_inner = []
24
+ @dump_with_inner.unshift(yield)
25
+ @dump_with_inner.join("\n")
26
+ end
27
+
28
+ def dump_complextypedef(mpath, qname, typedef, as_element = nil, opt = {})
29
+ case typedef.compoundtype
30
+ when :TYPE_STRUCT, :TYPE_EMPTY
31
+ dump_complex_typemap(mpath, qname, typedef, as_element, opt)
32
+ when :TYPE_ARRAY
33
+ dump_array_typemap(mpath, qname, typedef, as_element, opt)
34
+ when :TYPE_SIMPLE
35
+ dump_simple_typemap(mpath, qname, typedef, as_element, opt)
36
+ when :TYPE_MAP
37
+ # mapped as a general Hash
38
+ nil
39
+ else
40
+ raise RuntimeError.new(
41
+ "unknown kind of complexContent: #{typedef.compoundtype}")
42
+ end
43
+ end
44
+
45
+ def dump_array_typemap(mpath, qname, typedef, as_element, opt)
46
+ if typedef.find_soapenc_arytype
47
+ if opt[:encoded]
48
+ dump_encoded_array_typemap(mpath, qname, typedef, as_element, opt)
49
+ end
50
+ else
51
+ dump_literal_array_typemap(mpath, qname, typedef, as_element, opt)
52
+ end
53
+ end
54
+
55
+ def dump_complex_typemap(mpath, qname, typedef, as_element, opt)
56
+ var = {}
57
+ define_dump_class(var, mpath, qname, typedef, as_element, opt)
58
+ schema_ns = (var[:schema_name] || var[:schema_type]).namespace
59
+ if var[:schema_type] and typedef.base
60
+ var[:schema_basetype] = typedef.base
61
+ end
62
+ parentmodule = var[:class]
63
+ parsed_element =
64
+ parse_elements(typedef.elements, qname.namespace, parentmodule, opt)
65
+ if typedef.choice?
66
+ parsed_element.unshift(:choice)
67
+ end
68
+ var[:schema_element] = dump_schema_element_definition(parsed_element, 2)
69
+ unless typedef.attributes.empty?
70
+ var[:schema_attribute] = define_attribute(typedef.attributes)
71
+ end
72
+ assign_const(schema_ns, 'Ns')
73
+ dump_entry(@varname, var)
74
+ end
75
+
76
+ def dump_simple_typemap(mpath, qname, typedef, as_element, opt)
77
+ var = {}
78
+ define_dump_class(var, mpath, qname, typedef, as_element, opt)
79
+ schema_ns = (var[:schema_name] || var[:schema_type]).namespace
80
+ unless typedef.attributes.empty?
81
+ var[:schema_attribute] = define_attribute(typedef.attributes)
82
+ end
83
+ assign_const(schema_ns, 'Ns')
84
+ dump_entry(@varname, var)
85
+ end
86
+
87
+ def dump_schema_element_definition(definition, indent = 0)
88
+ return '[]' if definition.empty?
89
+ sp = ' ' * indent
90
+ if definition[0] == :choice
91
+ definition.shift
92
+ "[ :choice,\n" +
93
+ dump_schema_element(definition, indent + 2) + "\n" + sp + "]"
94
+ elsif definition[0].is_a?(::Array)
95
+ "[\n" +
96
+ dump_schema_element(definition, indent + 2) + "\n" + sp + "]"
97
+ else
98
+ varname, name, type, occurrence = definition
99
+ '[' + [
100
+ varname.dump,
101
+ dump_type(name, type),
102
+ dump_occurrence(occurrence)
103
+ ].compact.join(', ') + ']'
104
+ end
105
+ end
106
+
107
+ def dump_schema_element(schema_element, indent = 0)
108
+ sp = ' ' * indent
109
+ delimiter = ",\n" + sp
110
+ sp + schema_element.collect { |definition|
111
+ dump_schema_element_definition(definition, indent)
112
+ }.join(delimiter)
113
+ end
114
+
115
+ def dump_type(name, type)
116
+ if name
117
+ assign_const(name.namespace, 'Ns')
118
+ '[' + ndq(type) + ', ' + dqname(name) + ']'
119
+ else
120
+ ndq(type)
121
+ end
122
+ end
123
+
124
+ def dump_occurrence(occurrence)
125
+ if occurrence and occurrence != [1, 1] # default
126
+ minoccurs, maxoccurs = occurrence
127
+ maxoccurs ||= 'nil'
128
+ "[#{minoccurs}, #{maxoccurs}]"
129
+ end
130
+ end
131
+
132
+ def parse_elements(elements, base_namespace, mpath, opt)
133
+ schema_element = []
134
+ any = false
135
+ elements.each do |element|
136
+ case element
137
+ when XMLSchema::Any
138
+ # only 1 <any/> is allowed for now.
139
+ raise RuntimeError.new("duplicated 'any'") if any
140
+ any = true
141
+ varname = 'any' # not used
142
+ eleqname = XSD::AnyTypeName
143
+ type = nil
144
+ occurrence = nil
145
+ schema_element << [varname, eleqname, type, occurrence]
146
+ when XMLSchema::Element
147
+ next if element.ref == SchemaName
148
+ typebase = @modulepath
149
+ if element.anonymous_type?
150
+ child_opt = {
151
+ :qualified => (element.elementform == 'qualified'),
152
+ :is_anonymous => true
153
+ }
154
+ @dump_with_inner << dump_complextypedef(mpath, element.name, element.local_complextype, nil, child_opt)
155
+ typebase = mpath
156
+ end
157
+ type = create_type_name(typebase, element)
158
+ name = name_element(element).name
159
+ varname = safevarname(name)
160
+ if element.map_as_array?
161
+ if type
162
+ type += '[]'
163
+ else
164
+ type = '[]'
165
+ end
166
+ end
167
+ # nil means @@schema_ns + varname
168
+ eleqname = element.name || element.ref
169
+ if eleqname && varname == name && eleqname.namespace == base_namespace
170
+ eleqname = nil
171
+ end
172
+ occurrence = [element.minoccurs, element.maxoccurs]
173
+ schema_element << [varname, eleqname, type, occurrence]
174
+ when WSDL::XMLSchema::Sequence
175
+ child_schema_element =
176
+ parse_elements(element.elements, base_namespace, mpath, opt)
177
+ schema_element << child_schema_element
178
+ when WSDL::XMLSchema::Choice
179
+ child_schema_element =
180
+ parse_elements(element.elements, base_namespace, mpath, opt)
181
+ if !element.map_as_array?
182
+ # choice + maxOccurs="unbounded" is treated just as 'all' now.
183
+ child_schema_element.unshift(:choice)
184
+ end
185
+ schema_element << child_schema_element
186
+ when WSDL::XMLSchema::Group
187
+ if element.content.nil?
188
+ warn("no group definition found: #{element}")
189
+ next
190
+ end
191
+ child_schema_element =
192
+ parse_elements(element.content.elements, base_namespace, mpath, opt)
193
+ schema_element.concat(child_schema_element)
194
+ else
195
+ raise RuntimeError.new("unknown type: #{element}")
196
+ end
197
+ end
198
+ schema_element
199
+ end
200
+
201
+ def define_attribute(attributes)
202
+ schema_attribute = []
203
+ attributes.each do |attribute|
204
+ name = name_attribute(attribute)
205
+ if klass = attribute_basetype(attribute)
206
+ type = klass.name
207
+ else
208
+ warn("unresolved attribute type #{attribute.type} for #{name}")
209
+ type = nil
210
+ end
211
+ schema_attribute << [name, type]
212
+ end
213
+ "{\n " +
214
+ schema_attribute.collect { |name, type|
215
+ assign_const(name.namespace, 'Ns')
216
+ dqname(name) + ' => ' + ndq(type)
217
+ }.join(",\n ") +
218
+ "\n }"
219
+ end
220
+
221
+ def dump_entry(regname, var)
222
+ "#{regname}.register(\n " +
223
+ [
224
+ dump_entry_item(var, :class),
225
+ dump_entry_item(var, :soap_class),
226
+ dump_entry_item(var, :schema_name, :qname),
227
+ dump_entry_item(var, :schema_type, :qname),
228
+ dump_entry_item(var, :is_anonymous),
229
+ dump_entry_item(var, :schema_basetype, :qname),
230
+ dump_entry_item(var, :schema_qualified),
231
+ dump_entry_item(var, :schema_element),
232
+ dump_entry_item(var, :schema_attribute)
233
+ ].compact.join(",\n ") +
234
+ "\n)\n"
235
+ end
236
+
237
+ def dump_entry_item(var, key, dump_type = :none)
238
+ if var.key?(key)
239
+ case dump_type
240
+ when :none
241
+ ":#{key} => #{var[key]}"
242
+ when :string
243
+ if @defined_const.key?(var[key])
244
+ ":#{key} => #{@defined_const[var[key]]}"
245
+ else
246
+ ":#{key} => #{ndq(var[key])}"
247
+ end
248
+ when :qname
249
+ qname = var[key]
250
+ if @defined_const.key?(qname.namespace)
251
+ ns = @defined_const[qname.namespace]
252
+ else
253
+ ns = ndq(qname.namespace)
254
+ end
255
+ ":#{key} => XSD::QName.new(#{ns}, #{ndq(qname.name)})"
256
+ else
257
+ raise "Unknown dump type: #{dump_type}"
258
+ end
259
+ end
260
+ end
261
+
262
+ def dump_simpletypedef(mpath, qname, simpletype, as_element = nil, opt = {})
263
+ if simpletype.restriction
264
+ dump_simpletypedef_restriction(mpath, qname, simpletype, as_element, opt)
265
+ elsif simpletype.list
266
+ dump_simpletypedef_list(mpath, qname, simpletype, as_element, opt)
267
+ elsif simpletype.union
268
+ dump_simpletypedef_union(mpath, qname, simpletype, as_element, opt)
269
+ else
270
+ raise RuntimeError.new("unknown kind of simpletype: #{simpletype}")
271
+ end
272
+ end
273
+
274
+ def dump_simpletypedef_restriction(mpath, qname, typedef, as_element, opt)
275
+ restriction = typedef.restriction
276
+ unless restriction.enumeration?
277
+ # not supported. minlength?
278
+ return nil
279
+ end
280
+ var = {}
281
+ define_dump_class(var, mpath, qname, typedef, as_element, opt)
282
+ schema_ns = (var[:schema_name] || var[:schema_type]).namespace
283
+ assign_const(schema_ns, 'Ns')
284
+ dump_entry(@varname, var)
285
+ end
286
+
287
+ def dump_simpletypedef_list(mpath, qname, typedef, as_element, opt)
288
+ nil
289
+ end
290
+
291
+ def dump_simpletypedef_union(mpath, qname, typedef, as_element, opt)
292
+ nil
293
+ end
294
+
295
+ DEFAULT_ITEM_NAME = XSD::QName.new(nil, 'item')
296
+
297
+ def dump_literal_array_typemap(mpath, qname, typedef, as_element, opt)
298
+ var = {}
299
+ define_dump_class(var, mpath, qname, typedef, as_element, opt)
300
+ schema_ns = (var[:schema_name] || var[:schema_type]).namespace
301
+ parsed_element =
302
+ parse_elements(typedef.elements, qname.namespace, var[:class], opt)
303
+ if parsed_element.empty?
304
+ parsed_element = [create_array_element_definition(typedef, mpath)]
305
+ end
306
+ var[:schema_element] = dump_schema_element_definition(parsed_element, 2)
307
+ assign_const(schema_ns, 'Ns')
308
+ dump_entry(@varname, var)
309
+ end
310
+
311
+ def dump_encoded_array_typemap(mpath, qname, typedef, as_element, opt)
312
+ arytype = typedef.find_arytype || XSD::AnyTypeName
313
+ type = XSD::QName.new(arytype.namespace, arytype.name.sub(/\[(?:,)*\]$/, ''))
314
+ return <<__EOD__
315
+ #{@varname}.set(
316
+ #{mapped_class_name(qname, mpath)},
317
+ ::SOAP::SOAPArray,
318
+ ::SOAP::Mapping::EncodedRegistry::TypedArrayFactory,
319
+ { :type => #{dqname(type)} }
320
+ )
321
+ __EOD__
322
+ end
323
+
324
+ # used when "soapenc:arrayType" definition
325
+ def create_array_element_definition(typedef, mpath)
326
+ child_type = typedef.child_type
327
+ child_element = typedef.find_aryelement
328
+ if child_type == XSD::AnyTypeName
329
+ type = nil
330
+ elsif child_element
331
+ if klass = element_basetype(child_element)
332
+ type = klass.name
333
+ else
334
+ typename = child_element.type || child_element.name
335
+ type = mapped_class_name(typename, mpath)
336
+ end
337
+ elsif child_type
338
+ type = mapped_class_name(child_type, mpath)
339
+ else
340
+ type = nil
341
+ end
342
+ occurrence = [0, nil]
343
+ if child_element and child_element.name
344
+ if child_element.map_as_array?
345
+ type << '[]' if type
346
+ occurrence = [child_element.minoccurs, child_element.maxoccurs]
347
+ end
348
+ child_element_name = child_element.name
349
+ else
350
+ child_element_name = DEFAULT_ITEM_NAME
351
+ end
352
+ [child_element_name.name, child_element_name, type, occurrence]
353
+ end
354
+
355
+ def define_dump_class(var, mpath, qname, typedef, as_element, opt)
356
+ var[:class] = mapped_class_name(qname, mpath)
357
+ if as_element
358
+ var[:schema_name] = as_element
359
+ schema_ns = as_element.namespace
360
+ elsif typedef.name.nil?
361
+ var[:schema_name] = qname
362
+ schema_ns = qname.namespace
363
+ else
364
+ var[:schema_type] = qname
365
+ schema_ns = qname.namespace
366
+ end
367
+ var[:is_anonymous] = opt[:is_anonymous] if opt.key?(:is_anonymous)
368
+ # true, false, or nil
369
+ if opt.key?(:qualified)
370
+ var[:schema_qualified] = opt[:qualified].to_s
371
+ end
372
+ end
373
+ end
374
+
375
+
376
+ end
377
+ end
@@ -0,0 +1,200 @@
1
+ # encoding: ASCII-8BIT
2
+ # WSDL4R - Creating method definition from WSDL
3
+ # Copyright (C) 2000-2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
4
+
5
+ # This program is copyrighted free software by NAKAMURA, Hiroshi. You can
6
+ # redistribute it and/or modify it under the same terms of Ruby's license;
7
+ # either the dual license version in 2003, or any later version.
8
+
9
+
10
+ require 'wsdl/info'
11
+ require 'wsdl/soap/classDefCreatorSupport'
12
+ require 'soap/rpc/element'
13
+ require 'soap/rpc/methodDef'
14
+
15
+
16
+ module WSDL
17
+ module SOAP
18
+
19
+
20
+ class MethodDefCreator
21
+ include ClassDefCreatorSupport
22
+
23
+ attr_reader :definitions
24
+ # TODO: should not export this kind of stateful information.
25
+ # will be rewwritten in 1.6.1
26
+ attr_reader :assigned_method
27
+
28
+ def initialize(definitions, name_creator, modulepath, defined_const)
29
+ @definitions = definitions
30
+ @name_creator = name_creator
31
+ @modulepath = modulepath
32
+ @simpletypes = @definitions.collect_simpletypes
33
+ @complextypes = @definitions.collect_complextypes
34
+ @elements = @definitions.collect_elements
35
+ @defined_const = defined_const
36
+ @assigned_method = {}
37
+ end
38
+
39
+ def dump(name)
40
+ methoddef = ""
41
+ porttype = @definitions.porttype(name)
42
+ binding = porttype.find_binding
43
+ if binding
44
+ create(binding.name).each do |mdef|
45
+ methoddef << ",\n" unless methoddef.empty?
46
+ methoddef << dump_method(mdef).chomp
47
+ end
48
+ end
49
+ methoddef
50
+ end
51
+
52
+ def create(bindingname)
53
+ binding = @definitions.binding(bindingname)
54
+ if binding
55
+ return binding.operations.collect { |op_bind|
56
+ next unless op_bind.soapoperation # not a SOAP operation binding
57
+ create_methoddef(op_bind)
58
+ }
59
+ end
60
+ nil
61
+ end
62
+
63
+ private
64
+
65
+ def create_methoddef(op_bind)
66
+ op_info = op_bind.operation_info
67
+ name = assign_method_name(op_bind)
68
+ soapaction = op_info.boundid.soapaction
69
+ qname = op_bind.soapoperation_name
70
+ mdef = ::SOAP::RPC::MethodDef.new(name, soapaction, qname)
71
+ op_info.parts.each do |part|
72
+ if op_info.style == :rpc
73
+ mapped_class, qname = rpcdefinedtype(part)
74
+ else
75
+ mapped_class, qname = documentdefinedtype(part)
76
+ end
77
+ mdef.add_parameter(part.io_type, part.name, qname, mapped_class)
78
+ end
79
+ op_info.faults.each do |name, faultinfo|
80
+ faultclass = mapped_class_name(name, @modulepath)
81
+ mdef.faults[faultclass] = faultinfo
82
+ end
83
+ mdef.style = op_info.style
84
+ mdef.inputuse = op_info.inputuse
85
+ mdef.outputuse = op_info.outputuse
86
+ mdef
87
+ end
88
+
89
+ def dump_method(mdef)
90
+ style = mdef.style
91
+ inputuse = mdef.inputuse
92
+ outputuse = mdef.outputuse
93
+ paramstr = param2str(mdef.parameters)
94
+ if paramstr.empty?
95
+ paramstr = '[]'
96
+ else
97
+ paramstr = "[ " << paramstr.split(/\r?\n/).join("\n ") << " ]"
98
+ end
99
+ definitions = <<__EOD__
100
+ #{ndq(mdef.soapaction)},
101
+ #{dq(mdef.name)},
102
+ #{paramstr},
103
+ { :request_style => #{nsym(style)}, :request_use => #{nsym(inputuse)},
104
+ :response_style => #{nsym(style)}, :response_use => #{nsym(outputuse)},
105
+ :faults => #{mdef.faults.inspect} }
106
+ __EOD__
107
+ if style == :rpc
108
+ assign_const(mdef.qname.namespace, 'Ns')
109
+ return <<__EOD__
110
+ [ #{dqname(mdef.qname)},
111
+ #{definitions}]
112
+ __EOD__
113
+ else
114
+ return <<__EOD__
115
+ [ #{definitions}]
116
+ __EOD__
117
+ end
118
+ end
119
+
120
+ def assign_method_name(op_bind)
121
+ method_name = safemethodname(op_bind.name)
122
+ i = 1 # starts from _2
123
+ while @assigned_method.value?(method_name)
124
+ i += 1
125
+ method_name = safemethodname("#{op_bind.name}_#{i}")
126
+ end
127
+ @assigned_method[op_bind.boundid] = method_name
128
+ method_name
129
+ end
130
+
131
+ def rpcdefinedtype(part)
132
+ if mapped = basetype_mapped_class(part.type)
133
+ return ['::' + mapped.name, nil]
134
+ elsif definedtype = @simpletypes[part.type]
135
+ return [nil, definedtype.name]
136
+ elsif definedtype = @elements[part.element]
137
+ return [nil, part.element]
138
+ elsif definedtype = @complextypes[part.type]
139
+ case definedtype.compoundtype
140
+ when :TYPE_STRUCT, :TYPE_EMPTY, :TYPE_ARRAY, :TYPE_SIMPLE
141
+ type = mapped_class_name(part.type, @modulepath)
142
+ return [type, part.type]
143
+ when :TYPE_MAP
144
+ return [Hash.name, part.type]
145
+ else
146
+ raise NotImplementedError.new("must not reach here: #{definedtype.compoundtype}")
147
+ end
148
+ elsif part.type == XSD::AnyTypeName
149
+ return [nil, nil]
150
+ else
151
+ raise RuntimeError.new("part: #{part.name} cannot be resolved")
152
+ end
153
+ end
154
+
155
+ def documentdefinedtype(part)
156
+ if mapped = basetype_mapped_class(part.type)
157
+ return ['::' + mapped.name, XSD::QName.new(nil, part.name)]
158
+ elsif definedtype = @simpletypes[part.type]
159
+ if definedtype.base
160
+ return ['::' + basetype_mapped_class(definedtype.base).name, XSD::QName.new(nil, part.name)]
161
+ else
162
+ raise RuntimeError.new("unsupported simpleType: #{definedtype}")
163
+ end
164
+ elsif definedtype = @elements[part.element]
165
+ return ['::SOAP::SOAPElement', part.element]
166
+ elsif definedtype = @complextypes[part.type]
167
+ return ['::SOAP::SOAPElement', part.type]
168
+ else
169
+ raise RuntimeError.new("part: #{part.name} cannot be resolved")
170
+ end
171
+ end
172
+
173
+ def param2str(params)
174
+ params.collect { |param|
175
+ mappingstr = mapping_info2str(param.mapped_class, param.qname)
176
+ "[:#{param.io_type.id2name}, #{dq(param.name)}, #{mappingstr}]"
177
+ }.join(",\n")
178
+ end
179
+
180
+ def mapping_info2str(mapped_class, qname)
181
+ if qname.nil?
182
+ "[#{ndq(mapped_class)}]"
183
+ else
184
+ "[#{ndq(mapped_class)}, #{ndq(qname.namespace)}, #{dq(qname.name)}]"
185
+ end
186
+ end
187
+
188
+ def ele2str(ele)
189
+ qualified = ele
190
+ if qualified
191
+ "true"
192
+ else
193
+ "false"
194
+ end
195
+ end
196
+ end
197
+
198
+
199
+ end
200
+ end
@@ -0,0 +1,113 @@
1
+ # encoding: ASCII-8BIT
2
+ # WSDL4R - WSDL SOAP operation 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
+ require 'wsdl/info'
11
+
12
+
13
+ module WSDL
14
+ module SOAP
15
+
16
+
17
+ class Operation < Info
18
+ class ParamInfo
19
+ attr_reader :style
20
+ attr_reader :op_name
21
+ attr_reader :optype_name
22
+ attr_reader :encodingstyle
23
+ attr_reader :headerparts
24
+ attr_reader :bodyparts
25
+ attr_reader :faultpart
26
+ attr_reader :soapaction
27
+
28
+ def initialize(style, use, encodingstyle, op_name, optype_name,
29
+ headerparts, bodyparts, faultpart, soapaction)
30
+ @style = style
31
+ @use = use
32
+ @encodingstyle = encodingstyle
33
+ @op_name = op_name
34
+ @optype_name = optype_name
35
+ @headerparts = headerparts
36
+ @bodyparts = bodyparts
37
+ @faultpart = faultpart
38
+ @soapaction = soapaction
39
+ end
40
+ end
41
+
42
+ attr_reader :soapaction
43
+ attr_reader :style
44
+
45
+ def initialize
46
+ super
47
+ @soapaction = nil
48
+ @style = nil
49
+ end
50
+
51
+ def parse_element(element)
52
+ nil
53
+ end
54
+
55
+ def parse_attr(attr, value)
56
+ case attr
57
+ when StyleAttrName
58
+ if ["document", "rpc"].include?(value.source)
59
+ @style = value.source.intern
60
+ else
61
+ raise Parser::AttributeConstraintError.new(
62
+ "Unexpected value #{ value }.")
63
+ end
64
+ when SOAPActionAttrName
65
+ @soapaction = value.source
66
+ else
67
+ nil
68
+ end
69
+ end
70
+
71
+ def operation_style
72
+ return @style if @style
73
+ if parent_binding.soapbinding
74
+ return parent_binding.soapbinding.style
75
+ end
76
+ nil
77
+ end
78
+
79
+ private
80
+
81
+ def parent_binding
82
+ parent.parent
83
+ end
84
+
85
+ def create_param_info(name_info, param)
86
+ op_style = operation_style()
87
+ op_use = param.soapbody_use
88
+ op_encodingstyle = param.soapbody_encodingstyle
89
+ op_name = name_info.op_name
90
+ optype_name = name_info.optype_name
91
+ soapheader = param.soapheader
92
+ headerparts = soapheader.collect { |item| item.find_part }
93
+ soapbody = param.soapbody
94
+ if soapbody.namespace
95
+ op_name = XSD::QName.new(soapbody.namespace, op_name.name)
96
+ end
97
+ if soapbody.parts
98
+ target = soapbody.parts.split(/\s+/)
99
+ bodyparts = name_info.parts.find_all { |part|
100
+ target.include?(part.name)
101
+ }
102
+ else
103
+ bodyparts = name_info.parts
104
+ end
105
+ faultpart = nil
106
+ ParamInfo.new(op_style, op_use, op_encodingstyle, op_name, optype_name,
107
+ headerparts, bodyparts, faultpart, parent.soapaction)
108
+ end
109
+ end
110
+
111
+
112
+ end
113
+ end