soap4r-ruby1.9 1.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 (647) hide show
  1. data/COPYING +7 -0
  2. data/GPL +340 -0
  3. data/Gemfile +13 -0
  4. data/Gemfile.lock +20 -0
  5. data/README.rdoc +35 -0
  6. data/RELEASE_en.html +1900 -0
  7. data/RUBYS +56 -0
  8. data/Rakefile +53 -0
  9. data/VERSION +1 -0
  10. data/bin/wsdl2ruby.rb +137 -0
  11. data/bin/xsd2ruby.rb +90 -0
  12. data/lib/soap/attachment.rb +108 -0
  13. data/lib/soap/attrproxy.rb +34 -0
  14. data/lib/soap/baseData.rb +1094 -0
  15. data/lib/soap/element.rb +277 -0
  16. data/lib/soap/encodingstyle/aspDotNetHandler.rb +207 -0
  17. data/lib/soap/encodingstyle/handler.rb +120 -0
  18. data/lib/soap/encodingstyle/literalHandler.rb +195 -0
  19. data/lib/soap/encodingstyle/soapHandler.rb +559 -0
  20. data/lib/soap/filter.rb +13 -0
  21. data/lib/soap/filter/filterchain.rb +51 -0
  22. data/lib/soap/filter/handler.rb +31 -0
  23. data/lib/soap/filter/streamhandler.rb +29 -0
  24. data/lib/soap/generator.rb +299 -0
  25. data/lib/soap/header/handler.rb +61 -0
  26. data/lib/soap/header/handlerset.rb +70 -0
  27. data/lib/soap/header/mappinghandler.rb +47 -0
  28. data/lib/soap/header/simplehandler.rb +44 -0
  29. data/lib/soap/httpconfigloader.rb +139 -0
  30. data/lib/soap/mapping.rb +12 -0
  31. data/lib/soap/mapping/encodedregistry.rb +537 -0
  32. data/lib/soap/mapping/factory.rb +388 -0
  33. data/lib/soap/mapping/literalregistry.rb +391 -0
  34. data/lib/soap/mapping/mapping.rb +577 -0
  35. data/lib/soap/mapping/registry.rb +295 -0
  36. data/lib/soap/mapping/rubytypeFactory.rb +446 -0
  37. data/lib/soap/mapping/schemadefinition.rb +170 -0
  38. data/lib/soap/mapping/typeMap.rb +105 -0
  39. data/lib/soap/mapping/wsdlencodedregistry.rb +211 -0
  40. data/lib/soap/mapping/wsdlliteralregistry.rb +248 -0
  41. data/lib/soap/marshal.rb +59 -0
  42. data/lib/soap/mimemessage.rb +241 -0
  43. data/lib/soap/nestedexception.rb +42 -0
  44. data/lib/soap/netHttpClient.rb +241 -0
  45. data/lib/soap/ns.rb +34 -0
  46. data/lib/soap/parser.rb +252 -0
  47. data/lib/soap/processor.rb +66 -0
  48. data/lib/soap/property.rb +333 -0
  49. data/lib/soap/proxy.rb +14 -0
  50. data/lib/soap/rpc/cgistub.rb +247 -0
  51. data/lib/soap/rpc/driver.rb +221 -0
  52. data/lib/soap/rpc/element.rb +374 -0
  53. data/lib/soap/rpc/element.rb.orig +374 -0
  54. data/lib/soap/rpc/httpserver.rb +142 -0
  55. data/lib/soap/rpc/methodDef.rb +68 -0
  56. data/lib/soap/rpc/proxy.rb +572 -0
  57. data/lib/soap/rpc/router.rb +662 -0
  58. data/lib/soap/rpc/rpc.rb +25 -0
  59. data/lib/soap/rpc/soaplet.rb +200 -0
  60. data/lib/soap/rpc/standaloneServer.rb +43 -0
  61. data/lib/soap/ruby18ext.rb +13 -0
  62. data/lib/soap/soap.rb +151 -0
  63. data/lib/soap/streamHandler.rb +301 -0
  64. data/lib/soap/wsdlDriver.rb +164 -0
  65. data/lib/wsdl/binding.rb +65 -0
  66. data/lib/wsdl/data.rb +64 -0
  67. data/lib/wsdl/definitions.rb +236 -0
  68. data/lib/wsdl/documentation.rb +32 -0
  69. data/lib/wsdl/import.rb +80 -0
  70. data/lib/wsdl/importer.rb +38 -0
  71. data/lib/wsdl/info.rb +50 -0
  72. data/lib/wsdl/message.rb +54 -0
  73. data/lib/wsdl/operation.rb +151 -0
  74. data/lib/wsdl/operationBinding.rb +240 -0
  75. data/lib/wsdl/param.rb +93 -0
  76. data/lib/wsdl/parser.rb +164 -0
  77. data/lib/wsdl/part.rb +52 -0
  78. data/lib/wsdl/port.rb +66 -0
  79. data/lib/wsdl/portType.rb +75 -0
  80. data/lib/wsdl/service.rb +61 -0
  81. data/lib/wsdl/soap/address.rb +40 -0
  82. data/lib/wsdl/soap/binding.rb +49 -0
  83. data/lib/wsdl/soap/body.rb +58 -0
  84. data/lib/wsdl/soap/cgiStubCreator.rb +92 -0
  85. data/lib/wsdl/soap/classDefCreator.rb +433 -0
  86. data/lib/wsdl/soap/classDefCreatorSupport.rb +240 -0
  87. data/lib/wsdl/soap/classNameCreator.rb +54 -0
  88. data/lib/wsdl/soap/clientSkeltonCreator.rb +104 -0
  89. data/lib/wsdl/soap/complexType.rb +173 -0
  90. data/lib/wsdl/soap/data.rb +42 -0
  91. data/lib/wsdl/soap/definitions.rb +200 -0
  92. data/lib/wsdl/soap/driverCreator.rb +118 -0
  93. data/lib/wsdl/soap/element.rb +33 -0
  94. data/lib/wsdl/soap/encodedMappingRegistryCreator.rb +73 -0
  95. data/lib/wsdl/soap/fault.rb +56 -0
  96. data/lib/wsdl/soap/header.rb +86 -0
  97. data/lib/wsdl/soap/headerfault.rb +56 -0
  98. data/lib/wsdl/soap/literalMappingRegistryCreator.rb +115 -0
  99. data/lib/wsdl/soap/mappingRegistryCreator.rb +58 -0
  100. data/lib/wsdl/soap/mappingRegistryCreatorSupport.rb +376 -0
  101. data/lib/wsdl/soap/methodDefCreator.rb +199 -0
  102. data/lib/wsdl/soap/operation.rb +112 -0
  103. data/lib/wsdl/soap/servantSkeltonCreator.rb +89 -0
  104. data/lib/wsdl/soap/servletStubCreator.rb +104 -0
  105. data/lib/wsdl/soap/standaloneServerStubCreator.rb +100 -0
  106. data/lib/wsdl/soap/wsdl2ruby.rb +217 -0
  107. data/lib/wsdl/types.rb +44 -0
  108. data/lib/wsdl/wsdl.rb +24 -0
  109. data/lib/wsdl/xmlSchema/all.rb +24 -0
  110. data/lib/wsdl/xmlSchema/annotation.rb +34 -0
  111. data/lib/wsdl/xmlSchema/any.rb +61 -0
  112. data/lib/wsdl/xmlSchema/anyAttribute.rb +48 -0
  113. data/lib/wsdl/xmlSchema/attribute.rb +104 -0
  114. data/lib/wsdl/xmlSchema/attributeGroup.rb +68 -0
  115. data/lib/wsdl/xmlSchema/choice.rb +58 -0
  116. data/lib/wsdl/xmlSchema/complexContent.rb +97 -0
  117. data/lib/wsdl/xmlSchema/complexExtension.rb +119 -0
  118. data/lib/wsdl/xmlSchema/complexRestriction.rb +104 -0
  119. data/lib/wsdl/xmlSchema/complexType.rb +193 -0
  120. data/lib/wsdl/xmlSchema/content.rb +95 -0
  121. data/lib/wsdl/xmlSchema/data.rb +116 -0
  122. data/lib/wsdl/xmlSchema/element.rb +153 -0
  123. data/lib/wsdl/xmlSchema/enumeration.rb +36 -0
  124. data/lib/wsdl/xmlSchema/fractiondigits.rb +37 -0
  125. data/lib/wsdl/xmlSchema/group.rb +100 -0
  126. data/lib/wsdl/xmlSchema/import.rb +53 -0
  127. data/lib/wsdl/xmlSchema/importHandler.rb +45 -0
  128. data/lib/wsdl/xmlSchema/importer.rb +102 -0
  129. data/lib/wsdl/xmlSchema/include.rb +48 -0
  130. data/lib/wsdl/xmlSchema/length.rb +37 -0
  131. data/lib/wsdl/xmlSchema/list.rb +48 -0
  132. data/lib/wsdl/xmlSchema/maxexclusive.rb +37 -0
  133. data/lib/wsdl/xmlSchema/maxinclusive.rb +37 -0
  134. data/lib/wsdl/xmlSchema/maxlength.rb +37 -0
  135. data/lib/wsdl/xmlSchema/minexclusive.rb +37 -0
  136. data/lib/wsdl/xmlSchema/mininclusive.rb +37 -0
  137. data/lib/wsdl/xmlSchema/minlength.rb +37 -0
  138. data/lib/wsdl/xmlSchema/parser.rb +167 -0
  139. data/lib/wsdl/xmlSchema/pattern.rb +36 -0
  140. data/lib/wsdl/xmlSchema/ref.rb +33 -0
  141. data/lib/wsdl/xmlSchema/schema.rb +178 -0
  142. data/lib/wsdl/xmlSchema/sequence.rb +54 -0
  143. data/lib/wsdl/xmlSchema/simpleContent.rb +69 -0
  144. data/lib/wsdl/xmlSchema/simpleExtension.rb +62 -0
  145. data/lib/wsdl/xmlSchema/simpleRestriction.rb +132 -0
  146. data/lib/wsdl/xmlSchema/simpleType.rb +87 -0
  147. data/lib/wsdl/xmlSchema/totaldigits.rb +37 -0
  148. data/lib/wsdl/xmlSchema/union.rb +35 -0
  149. data/lib/wsdl/xmlSchema/unique.rb +34 -0
  150. data/lib/wsdl/xmlSchema/whitespace.rb +37 -0
  151. data/lib/wsdl/xmlSchema/xsd2ruby.rb +174 -0
  152. data/lib/xsd/charset.rb +188 -0
  153. data/lib/xsd/codegen.rb +12 -0
  154. data/lib/xsd/codegen/classdef.rb +208 -0
  155. data/lib/xsd/codegen/commentdef.rb +34 -0
  156. data/lib/xsd/codegen/gensupport.rb +273 -0
  157. data/lib/xsd/codegen/methoddef.rb +70 -0
  158. data/lib/xsd/codegen/moduledef.rb +208 -0
  159. data/lib/xsd/datatypes.rb +1466 -0
  160. data/lib/xsd/datatypes1999.rb +20 -0
  161. data/lib/xsd/iconvcharset.rb +33 -0
  162. data/lib/xsd/mapping.rb +68 -0
  163. data/lib/xsd/namedelements.rb +132 -0
  164. data/lib/xsd/ns.rb +182 -0
  165. data/lib/xsd/qname.rb +79 -0
  166. data/lib/xsd/xmlparser.rb +82 -0
  167. data/lib/xsd/xmlparser.rb.orig +76 -0
  168. data/lib/xsd/xmlparser/libxmlparser.rb +119 -0
  169. data/lib/xsd/xmlparser/parser.rb +100 -0
  170. data/lib/xsd/xmlparser/rexmlparser.rb +58 -0
  171. data/lib/xsd/xmlparser/xmlparser.rb +50 -0
  172. data/lib/xsd/xmlparser/xmlscanner.rb +149 -0
  173. data/rubyStyle.css +104 -0
  174. data/sample/attachment/complexmime/EdmService.rb +124 -0
  175. data/sample/attachment/complexmime/README.txt +3 -0
  176. data/sample/attachment/complexmime/client.rb +57 -0
  177. data/sample/attachment/complexmime/drift.cdf +1 -0
  178. data/sample/attachment/complexmime/plaatje.png +1 -0
  179. data/sample/attachment/complexmime/server.rb +68 -0
  180. data/sample/attachment/swa/client.rb +13 -0
  181. data/sample/attachment/swa/server.rb +23 -0
  182. data/sample/basic/apacheClient.rb +92 -0
  183. data/sample/basic/babelfish.rb +16 -0
  184. data/sample/basic/calc/calc.rb +17 -0
  185. data/sample/basic/calc/calc2.rb +29 -0
  186. data/sample/basic/calc/client.rb +26 -0
  187. data/sample/basic/calc/client2.rb +29 -0
  188. data/sample/basic/calc/httpd.rb +20 -0
  189. data/sample/basic/calc/samplehttpd.conf +2 -0
  190. data/sample/basic/calc/server.cgi +15 -0
  191. data/sample/basic/calc/server.fcgi +22 -0
  192. data/sample/basic/calc/server.rb +21 -0
  193. data/sample/basic/calc/server2.rb +24 -0
  194. data/sample/basic/exchange/client.rb +19 -0
  195. data/sample/basic/exchange/exchange.rb +17 -0
  196. data/sample/basic/exchange/httpd.rb +20 -0
  197. data/sample/basic/exchange/samplehttpd.conf +2 -0
  198. data/sample/basic/exchange/server.cgi +14 -0
  199. data/sample/basic/exchange/server.rb +20 -0
  200. data/sample/basic/flickr.rb +26 -0
  201. data/sample/basic/helloworld/client.rb +6 -0
  202. data/sample/basic/helloworld/server.rb +20 -0
  203. data/sample/basic/sampleStruct/client.rb +16 -0
  204. data/sample/basic/sampleStruct/httpd.rb +20 -0
  205. data/sample/basic/sampleStruct/iSampleStruct.rb +22 -0
  206. data/sample/basic/sampleStruct/sampleStruct.rb +13 -0
  207. data/sample/basic/sampleStruct/samplehttpd.conf +2 -0
  208. data/sample/basic/sampleStruct/server.cgi +14 -0
  209. data/sample/basic/sampleStruct/server.rb +20 -0
  210. data/sample/basic/whois.rb +14 -0
  211. data/sample/basic/wsdl_helloworld/README +15 -0
  212. data/sample/basic/wsdl_helloworld/client/default.rb +1 -0
  213. data/sample/basic/wsdl_helloworld/client/defaultDriver.rb +47 -0
  214. data/sample/basic/wsdl_helloworld/client/hws.wsdl +46 -0
  215. data/sample/basic/wsdl_helloworld/client/hwsClient.rb +22 -0
  216. data/sample/basic/wsdl_helloworld/server/hw_s.rb +25 -0
  217. data/sample/basic/wsdl_helloworld/server/hws.wsdl +46 -0
  218. data/sample/basic/yahooNewsSearch.rb +36 -0
  219. data/sample/howto/as_xml/client.rb +22 -0
  220. data/sample/howto/as_xml/server.rb +22 -0
  221. data/sample/howto/base64/client.rb +17 -0
  222. data/sample/howto/base64/server.rb +30 -0
  223. data/sample/howto/custom_ns/client.rb +37 -0
  224. data/sample/howto/custom_ns/server.rb +42 -0
  225. data/sample/howto/documentliteral/README.txt +19 -0
  226. data/sample/howto/documentliteral/client.rb +11 -0
  227. data/sample/howto/documentliteral/echo.wsdl +66 -0
  228. data/sample/howto/documentliteral/servant.rb +11 -0
  229. data/sample/howto/filter/client.rb +42 -0
  230. data/sample/howto/filter/server.rb +67 -0
  231. data/sample/howto/scopesample/client.rb +34 -0
  232. data/sample/howto/scopesample/httpd.rb +22 -0
  233. data/sample/howto/scopesample/samplehttpd.conf +2 -0
  234. data/sample/howto/scopesample/servant.rb +18 -0
  235. data/sample/howto/scopesample/server.cgi +29 -0
  236. data/sample/howto/scopesample/server.rb +20 -0
  237. data/sample/howto/styleuse/client.rb +21 -0
  238. data/sample/howto/styleuse/server.rb +86 -0
  239. data/sample/howto/wsdl_fault/README.txt +11 -0
  240. data/sample/howto/wsdl_fault/fault/AddClient.rb +24 -0
  241. data/sample/howto/wsdl_fault/fault/AddServer.rb +15 -0
  242. data/sample/howto/wsdl_fault/fault/AddServiceImpl.rb +18 -0
  243. data/sample/howto/wsdl_fault/fault/fault.wsdl +79 -0
  244. data/sample/howto/wsdl_fault/multifault/AddClient.rb +28 -0
  245. data/sample/howto/wsdl_fault/multifault/AddServer.rb +15 -0
  246. data/sample/howto/wsdl_fault/multifault/AddServiceImpl.rb +24 -0
  247. data/sample/howto/wsdl_fault/multifault/fault.wsdl +96 -0
  248. data/sample/howto/wsdl_hash/client.rb +11 -0
  249. data/sample/howto/wsdl_hash/hash.wsdl +69 -0
  250. data/sample/howto/wsdl_hash/server.rb +17 -0
  251. data/sample/marshal/customfactory.rb +97 -0
  252. data/sample/marshal/customregistry.rb +17 -0
  253. data/sample/marshal/digraph.rb +43 -0
  254. data/sample/marshal/enum/README.txt +6 -0
  255. data/sample/marshal/enum/enum.xsd +23 -0
  256. data/sample/marshal/enum/enumsample.rb +20 -0
  257. data/sample/marshal/enum/enumsample_mapper.rb +7 -0
  258. data/sample/marshal/enum/enumsample_mapping_registry.rb +23 -0
  259. data/sample/marshal/enum/marshal.rb +9 -0
  260. data/sample/payload/basicauth/client.rb +10 -0
  261. data/sample/payload/basicauth/htpasswd +2 -0
  262. data/sample/payload/basicauth/server.rb +43 -0
  263. data/sample/payload/cookies/calc.rb +52 -0
  264. data/sample/payload/cookies/client.rb +30 -0
  265. data/sample/payload/cookies/filterclient.rb +52 -0
  266. data/sample/payload/cookies/server.rb +24 -0
  267. data/sample/payload/gzipped/client.rb +8 -0
  268. data/sample/payload/gzipped/server.rb +21 -0
  269. data/sample/payload/ssl/files/README +1 -0
  270. data/sample/payload/ssl/files/ca.cert +23 -0
  271. data/sample/payload/ssl/files/client.cert +19 -0
  272. data/sample/payload/ssl/files/client.key +15 -0
  273. data/sample/payload/ssl/files/server.cert +19 -0
  274. data/sample/payload/ssl/files/server.key +15 -0
  275. data/sample/payload/ssl/files/sslclient.properties +5 -0
  276. data/sample/payload/ssl/files/sslclient_require_noserverauth.properties +2 -0
  277. data/sample/payload/ssl/files/sslclient_with_clientauth.properties +9 -0
  278. data/sample/payload/ssl/files/subca.cert +21 -0
  279. data/sample/payload/ssl/sslclient.rb +12 -0
  280. data/sample/payload/ssl/sslclient_require_noserverauth.rb +12 -0
  281. data/sample/payload/ssl/sslclient_with_clientauth.rb +12 -0
  282. data/sample/payload/ssl/sslserver.rb +49 -0
  283. data/sample/payload/ssl/sslserver_noauth.rb +45 -0
  284. data/sample/payload/ssl/sslserver_require_clientauth.rb +50 -0
  285. data/sample/showcase/soap/hippo5tq/hippo5tq.rb +41 -0
  286. data/sample/showcase/soap/hippo5tq/hippo5tq2.rb +99 -0
  287. data/sample/showcase/soap/hippo5tq/hippoClient.rb +106 -0
  288. data/sample/showcase/soap/icd/IICD.rb +17 -0
  289. data/sample/showcase/soap/icd/icd.rb +46 -0
  290. data/sample/showcase/soap/mssoap/README.txt +62 -0
  291. data/sample/showcase/soap/mssoap/client.vba +19 -0
  292. data/sample/showcase/soap/mssoap/stockQuoteService.cgi +44 -0
  293. data/sample/showcase/soap/mssoap/stockQuoteService.rb +9 -0
  294. data/sample/showcase/soap/mssoap/stockQuoteService.wsdl +47 -0
  295. data/sample/showcase/soap/mssoap/stockQuoteServiceClient.rb +26 -0
  296. data/sample/showcase/soap/mssoap/stockQuoteServiceClient.xls +0 -0
  297. data/sample/showcase/soap/mssoap/stockQuoteServicePortTypeDriver.rb +46 -0
  298. data/sample/showcase/soap/netDicV06/INetDicV06.rb +36 -0
  299. data/sample/showcase/soap/netDicV06/netDicV06.rb +16 -0
  300. data/sample/showcase/soap/raa/SOAP__Lite.pl +15 -0
  301. data/sample/showcase/soap/raa/pocketSOAP.js +33 -0
  302. data/sample/showcase/soap/raa2.4/raa.rb +332 -0
  303. data/sample/showcase/soap/raa2.4/raa.wsdl +644 -0
  304. data/sample/showcase/soap/raa2.4/raaDriver.rb +255 -0
  305. data/sample/showcase/soap/raa2.4/raaServiceClient.rb +354 -0
  306. data/sample/showcase/soap/raa2.4/sample.rb +115 -0
  307. data/sample/showcase/soap/rwiki/rwikiClient.rb +29 -0
  308. data/sample/showcase/soap/rwiki/rwikiServer.cgi +44 -0
  309. data/sample/showcase/soap/soapbox/ContactsDataSet.xml +37 -0
  310. data/sample/showcase/soap/soapbox/ExceptionDataSet.xml +23 -0
  311. data/sample/showcase/soap/soapbox/MessageDataSet.xml +8 -0
  312. data/sample/showcase/soap/soapbox/SoapBoxWebService.wsdl +1233 -0
  313. data/sample/showcase/soap/soapbox/SoapBoxWebServiceWithRawXML.wsdl +1226 -0
  314. data/sample/showcase/soap/soapbox/wsdlDriver.rb +23 -0
  315. data/sample/showcase/wsdl/PayPalSvc/client.rb +36 -0
  316. data/sample/showcase/wsdl/amazon/AmazonSearch.rb +3160 -0
  317. data/sample/showcase/wsdl/amazon/AmazonSearchDriver.rb +546 -0
  318. data/sample/showcase/wsdl/amazon/sampleClient.rb +37 -0
  319. data/sample/showcase/wsdl/amazon/wsdlDriver.rb +52 -0
  320. data/sample/showcase/wsdl/amazonEC/client.rb +13 -0
  321. data/sample/showcase/wsdl/eBaySvc/sampleclient.rb +60 -0
  322. data/sample/showcase/wsdl/googleAdwords/CampaignService.wsdl +785 -0
  323. data/sample/showcase/wsdl/googleAdwords/ca.pem +19 -0
  324. data/sample/showcase/wsdl/googleAdwords/client.rb +40 -0
  325. data/sample/showcase/wsdl/googleAdwords/soap/property +1 -0
  326. data/sample/showcase/wsdl/googleSearch/GoogleSearch.rb +97 -0
  327. data/sample/showcase/wsdl/googleSearch/GoogleSearchDriver.rb +102 -0
  328. data/sample/showcase/wsdl/googleSearch/README +6 -0
  329. data/sample/showcase/wsdl/googleSearch/httpd.rb +20 -0
  330. data/sample/showcase/wsdl/googleSearch/sampleClient.rb +56 -0
  331. data/sample/showcase/wsdl/googleSearch/samplehttpd.conf +2 -0
  332. data/sample/showcase/wsdl/googleSearch/sjissearch.sh +3 -0
  333. data/sample/showcase/wsdl/googleSearch/wsdlDriver.rb +29 -0
  334. data/sample/showcase/wsdl/noaa/README.txt +5 -0
  335. data/sample/showcase/wsdl/noaa/client.rb +44 -0
  336. data/sample/showcase/wsdl/noaa/default.rb +46 -0
  337. data/sample/showcase/wsdl/noaa/defaultDriver.rb +66 -0
  338. data/sample/showcase/wsdl/noaa/defaultMappingRegistry.rb +74 -0
  339. data/sample/showcase/wsdl/noaa/ndfdXMLClient.rb +43 -0
  340. data/sample/showcase/wsdl/raa2.4/raa.rb +134 -0
  341. data/sample/showcase/wsdl/raa2.4/raa.wsdl +644 -0
  342. data/sample/showcase/wsdl/raa2.4/wsdlDriver.rb +117 -0
  343. data/sample/showcase/wsdl/rnn/client.rb +59 -0
  344. data/sample/showcase/wsdl/rnn/post.rb +27 -0
  345. data/sample/showcase/wsdl/rnn/rnn-hash.wsdl +282 -0
  346. data/sample/showcase/wsdl/rnn/rnn.wsdl +310 -0
  347. data/sample/showcase/wsdl/rnn/submit.rb +63 -0
  348. data/sample/showcase/wsdl/salesforce/SforceServiceClient.rb +280 -0
  349. data/sample/showcase/wsdl/salesforce/ca.pem +35 -0
  350. data/sample/showcase/wsdl/salesforce/client.rb +156 -0
  351. data/sample/showcase/wsdl/salesforce/default.rb +1740 -0
  352. data/sample/showcase/wsdl/salesforce/defaultDriver.rb +165 -0
  353. data/sample/showcase/wsdl/salesforce/soap/property +1 -0
  354. data/sample/soapheader/authheader/authmgr.rb +41 -0
  355. data/sample/soapheader/authheader/client.rb +40 -0
  356. data/sample/soapheader/authheader/client2.rb +42 -0
  357. data/sample/soapheader/authheader/server.rb +73 -0
  358. data/sample/soapheader/authheader/server2.rb +83 -0
  359. data/sample/soapheader/soapext_basicauth/client.rb +25 -0
  360. data/sample/soapheader/soapext_basicauth/mms_MizGIS.rb +701 -0
  361. data/sample/soapheader/soapext_basicauth/mms_MizGIS.wsdl +1007 -0
  362. data/sample/soapheader/soapext_basicauth/mms_MizGISClient.rb +231 -0
  363. data/sample/soapheader/soapext_basicauth/mms_MizGISDriver.rb +210 -0
  364. data/sample/soapheader/soapext_basicauth/mms_MizGISMappingRegistry.rb +1232 -0
  365. data/setup.rb +1585 -0
  366. data/soap4r-ruby1.9.gemspec +907 -0
  367. data/test/16runner.rb +68 -0
  368. data/test/interopR2/README.txt +2 -0
  369. data/test/interopR2/SOAPBuildersInterop_R2.wsdl +461 -0
  370. data/test/interopR2/SOAPBuildersInterop_R2GrB.wsdl +19 -0
  371. data/test/interopR2/base.rb +288 -0
  372. data/test/interopR2/client.NetRemoting.rb +17 -0
  373. data/test/interopR2/client.rb +1234 -0
  374. data/test/interopR2/client4S4C.rb +15 -0
  375. data/test/interopR2/client4S4C2.rb +14 -0
  376. data/test/interopR2/clientASP.NET.rb +17 -0
  377. data/test/interopR2/clientApacheAxis.rb +16 -0
  378. data/test/interopR2/clientApacheSOAP.rb +17 -0
  379. data/test/interopR2/clientBEAWebLogic.rb +17 -0
  380. data/test/interopR2/clientBase.rb +1967 -0
  381. data/test/interopR2/clientCapeConnect.rb +18 -0
  382. data/test/interopR2/clientDelphi.rb +19 -0
  383. data/test/interopR2/clientEasySoap.rb +14 -0
  384. data/test/interopR2/clientFrontier.rb +25 -0
  385. data/test/interopR2/clientGLUE.rb +32 -0
  386. data/test/interopR2/clientHP.rb +13 -0
  387. data/test/interopR2/clientJAX-RPC.rb +19 -0
  388. data/test/interopR2/clientJSOAP.rb +14 -0
  389. data/test/interopR2/clientKafkaXSLT.rb +15 -0
  390. data/test/interopR2/clientMSSOAPToolkit2.0.rb +17 -0
  391. data/test/interopR2/clientMSSOAPToolkit3.0.rb +17 -0
  392. data/test/interopR2/clientNuSOAP.rb +19 -0
  393. data/test/interopR2/clientNuWave.rb +15 -0
  394. data/test/interopR2/clientOpenLink.rb +15 -0
  395. data/test/interopR2/clientOracle.rb +15 -0
  396. data/test/interopR2/clientPEAR.rb +18 -0
  397. data/test/interopR2/clientPhalanx.rb +18 -0
  398. data/test/interopR2/clientSIMACE.rb +18 -0
  399. data/test/interopR2/clientSOAP4R.rb +18 -0
  400. data/test/interopR2/clientSOAP__Lite.rb +14 -0
  401. data/test/interopR2/clientSQLData.rb +18 -0
  402. data/test/interopR2/clientSilverStream.rb +17 -0
  403. data/test/interopR2/clientSpray2001.rb +17 -0
  404. data/test/interopR2/clientSun.rb +19 -0
  405. data/test/interopR2/clientVWOpentalkSoap.rb +19 -0
  406. data/test/interopR2/clientWASP.rb +19 -0
  407. data/test/interopR2/clientWASPC.rb +18 -0
  408. data/test/interopR2/clientWebMethods.rb +15 -0
  409. data/test/interopR2/clientWhiteMesa.rb +28 -0
  410. data/test/interopR2/clientWingfoot.rb +15 -0
  411. data/test/interopR2/clientXMLBus.rb +19 -0
  412. data/test/interopR2/clientXMLRPC-EPI.rb +17 -0
  413. data/test/interopR2/clientXSOAP.rb +14 -0
  414. data/test/interopR2/clientZSI.rb +19 -0
  415. data/test/interopR2/clienteSOAP.rb +18 -0
  416. data/test/interopR2/clientgSOAP.rb +18 -0
  417. data/test/interopR2/clientkSOAP.rb +17 -0
  418. data/test/interopR2/iSimonReg.rb +112 -0
  419. data/test/interopR2/interopResultBase.rb +114 -0
  420. data/test/interopR2/interopService.rb +247 -0
  421. data/test/interopR2/rwikiInteropService.rb +105 -0
  422. data/test/interopR2/server.cgi +270 -0
  423. data/test/interopR2/server.rb +275 -0
  424. data/test/interopR2/simonReg.rb +123 -0
  425. data/test/interopR2/test.sh +49 -0
  426. data/test/interopR4/client.rb +112 -0
  427. data/test/results +4810 -0
  428. data/test/runner.rb +7 -0
  429. data/test/sm11/classDef.rb +156 -0
  430. data/test/sm11/client.rb +542 -0
  431. data/test/sm11/driver.rb +183 -0
  432. data/test/sm11/servant.rb +1067 -0
  433. data/test/sm11/server.rb +25 -0
  434. data/test/soap/asp.net/hello.wsdl +96 -0
  435. data/test/soap/asp.net/test_aspdotnet.rb +123 -0
  436. data/test/soap/auth/htdigest +2 -0
  437. data/test/soap/auth/htpasswd +2 -0
  438. data/test/soap/auth/test_basic.rb +117 -0
  439. data/test/soap/auth/test_digest.rb +118 -0
  440. data/test/soap/calc/calc.rb +17 -0
  441. data/test/soap/calc/calc2.rb +29 -0
  442. data/test/soap/calc/server.cgi +13 -0
  443. data/test/soap/calc/server.rb +17 -0
  444. data/test/soap/calc/server2.rb +20 -0
  445. data/test/soap/calc/test_calc.rb +51 -0
  446. data/test/soap/calc/test_calc2.rb +55 -0
  447. data/test/soap/calc/test_calc_cgi.rb +71 -0
  448. data/test/soap/case/test_mapping.rb +57 -0
  449. data/test/soap/fault/test_customfault.rb +60 -0
  450. data/test/soap/fault/test_fault.rb +46 -0
  451. data/test/soap/fault/test_soaparray.rb +35 -0
  452. data/test/soap/filter/test_filter.rb +146 -0
  453. data/test/soap/header/server.cgi +119 -0
  454. data/test/soap/header/session.pstoredb +0 -0
  455. data/test/soap/header/test_authheader.rb +240 -0
  456. data/test/soap/header/test_authheader_cgi.rb +121 -0
  457. data/test/soap/header/test_simplehandler.rb +116 -0
  458. data/test/soap/helloworld/hw_s.rb +16 -0
  459. data/test/soap/helloworld/test_helloworld.rb +43 -0
  460. data/test/soap/htpasswd +2 -0
  461. data/test/soap/literalArrayMapping/amazonEc.rb +4778 -0
  462. data/test/soap/literalArrayMapping/amazonEcDriver.rb +172 -0
  463. data/test/soap/literalArrayMapping/amazonresponse.xml +100 -0
  464. data/test/soap/literalArrayMapping/test_definedarray.rb +34 -0
  465. data/test/soap/marshal/marshaltestlib.rb +494 -0
  466. data/test/soap/marshal/test_digraph.rb +56 -0
  467. data/test/soap/marshal/test_marshal.rb +26 -0
  468. data/test/soap/marshal/test_struct.rb +47 -0
  469. data/test/soap/ssl/README +1 -0
  470. data/test/soap/ssl/ca.cert +23 -0
  471. data/test/soap/ssl/client.cert +19 -0
  472. data/test/soap/ssl/client.key +15 -0
  473. data/test/soap/ssl/server.cert +19 -0
  474. data/test/soap/ssl/server.key +15 -0
  475. data/test/soap/ssl/sslsvr.rb +57 -0
  476. data/test/soap/ssl/subca.cert +21 -0
  477. data/test/soap/ssl/test_ssl.rb +235 -0
  478. data/test/soap/struct/test_struct.rb +70 -0
  479. data/test/soap/styleuse/client.rb +20 -0
  480. data/test/soap/styleuse/server.rb +86 -0
  481. data/test/soap/swa/test_file.rb +75 -0
  482. data/test/soap/test_basetype.rb +1090 -0
  483. data/test/soap/test_cookie.rb +112 -0
  484. data/test/soap/test_custom_ns.rb +105 -0
  485. data/test/soap/test_custommap.rb +110 -0
  486. data/test/soap/test_empty.rb +105 -0
  487. data/test/soap/test_envelopenamespace.rb +85 -0
  488. data/test/soap/test_extraattr.rb +54 -0
  489. data/test/soap/test_generator.rb +27 -0
  490. data/test/soap/test_httpconfigloader.rb +71 -0
  491. data/test/soap/test_mapping.rb +131 -0
  492. data/test/soap/test_nestedexception.rb +56 -0
  493. data/test/soap/test_nil.rb +57 -0
  494. data/test/soap/test_no_indent.rb +88 -0
  495. data/test/soap/test_property.rb +428 -0
  496. data/test/soap/test_response_as_xml.rb +117 -0
  497. data/test/soap/test_soapelement.rb +138 -0
  498. data/test/soap/test_streamhandler.rb +270 -0
  499. data/test/soap/test_styleuse.rb +326 -0
  500. data/test/soap/wsdlDriver/README.txt +2 -0
  501. data/test/soap/wsdlDriver/calc.wsdl +126 -0
  502. data/test/soap/wsdlDriver/document.wsdl +54 -0
  503. data/test/soap/wsdlDriver/echo_version.rb +29 -0
  504. data/test/soap/wsdlDriver/simpletype.wsdl +63 -0
  505. data/test/soap/wsdlDriver/test_calc.rb +71 -0
  506. data/test/soap/wsdlDriver/test_document.rb +71 -0
  507. data/test/soap/wsdlDriver/test_simpletype.rb +80 -0
  508. data/test/testutil.rb +54 -0
  509. data/test/wsdl/abstract/abstract.wsdl +176 -0
  510. data/test/wsdl/abstract/test_abstract.rb +159 -0
  511. data/test/wsdl/anonymous/expectedClassDef.rb +128 -0
  512. data/test/wsdl/anonymous/expectedDriver.rb +59 -0
  513. data/test/wsdl/anonymous/expectedMappingRegistry.rb +176 -0
  514. data/test/wsdl/anonymous/lp.wsdl +147 -0
  515. data/test/wsdl/anonymous/test_anonymous.rb +130 -0
  516. data/test/wsdl/any/any.wsdl +114 -0
  517. data/test/wsdl/any/expectedDriver.rb +68 -0
  518. data/test/wsdl/any/expectedEcho.rb +57 -0
  519. data/test/wsdl/any/expectedMappingRegistry.rb +63 -0
  520. data/test/wsdl/any/expectedService.rb +69 -0
  521. data/test/wsdl/any/test_any.rb +193 -0
  522. data/test/wsdl/axisArray/axisArray.wsdl +87 -0
  523. data/test/wsdl/axisArray/test_axisarray.rb +124 -0
  524. data/test/wsdl/choice/choice.wsdl +167 -0
  525. data/test/wsdl/choice/test_choice.rb +310 -0
  526. data/test/wsdl/complexcontent/complexContent.wsdl +83 -0
  527. data/test/wsdl/complexcontent/test_echo.rb +90 -0
  528. data/test/wsdl/datetime/DatetimeService.rb +44 -0
  529. data/test/wsdl/datetime/datetime.rb +0 -0
  530. data/test/wsdl/datetime/datetime.wsdl +45 -0
  531. data/test/wsdl/datetime/datetimeServant.rb +22 -0
  532. data/test/wsdl/datetime/test_datetime.rb +86 -0
  533. data/test/wsdl/document/array/double.wsdl +161 -0
  534. data/test/wsdl/document/array/test_array.rb +201 -0
  535. data/test/wsdl/document/document.wsdl +76 -0
  536. data/test/wsdl/document/number.wsdl +54 -0
  537. data/test/wsdl/document/ping_nosoapaction.wsdl +66 -0
  538. data/test/wsdl/document/test_nosoapaction.rb +102 -0
  539. data/test/wsdl/document/test_number.rb +92 -0
  540. data/test/wsdl/document/test_rpc.rb +355 -0
  541. data/test/wsdl/emptycomplextype.wsdl +31 -0
  542. data/test/wsdl/fault/fault.wsdl +79 -0
  543. data/test/wsdl/fault/multifault.wsdl +96 -0
  544. data/test/wsdl/fault/test_fault.rb +119 -0
  545. data/test/wsdl/fault/test_multifault.rb +134 -0
  546. data/test/wsdl/group/expectedClassdef.rb +58 -0
  547. data/test/wsdl/group/expectedDriver.rb +51 -0
  548. data/test/wsdl/group/expectedMappingRegistry.rb +67 -0
  549. data/test/wsdl/group/group.wsdl +88 -0
  550. data/test/wsdl/group/test_rpc.rb +145 -0
  551. data/test/wsdl/list/list.wsdl +93 -0
  552. data/test/wsdl/list/test_list.rb +124 -0
  553. data/test/wsdl/map/map.wsdl +92 -0
  554. data/test/wsdl/map/map.xml +43 -0
  555. data/test/wsdl/map/test_map.rb +99 -0
  556. data/test/wsdl/marshal/Person.rb +1 -0
  557. data/test/wsdl/marshal/person.wsdl +21 -0
  558. data/test/wsdl/marshal/person_org.rb +23 -0
  559. data/test/wsdl/marshal/test_wsdlmarshal.rb +76 -0
  560. data/test/wsdl/multiplefault.wsdl +75 -0
  561. data/test/wsdl/oneway/oneway.wsdl +36 -0
  562. data/test/wsdl/oneway/test_oneway.rb +108 -0
  563. data/test/wsdl/overload/expectedClient.rb +37 -0
  564. data/test/wsdl/overload/expectedDriver.rb +61 -0
  565. data/test/wsdl/overload/expectedServant.rb +35 -0
  566. data/test/wsdl/overload/overload.wsdl +70 -0
  567. data/test/wsdl/overload/test_overload.rb +131 -0
  568. data/test/wsdl/qualified/lp.wsdl +47 -0
  569. data/test/wsdl/qualified/lp.xsd +26 -0
  570. data/test/wsdl/qualified/np.wsdl +51 -0
  571. data/test/wsdl/qualified/test_qualified.rb +137 -0
  572. data/test/wsdl/qualified/test_unqualified.rb +138 -0
  573. data/test/wsdl/raa/RAAService.rb +125 -0
  574. data/test/wsdl/raa/README.txt +8 -0
  575. data/test/wsdl/raa/expectedClassDef.rb +100 -0
  576. data/test/wsdl/raa/expectedDriver.rb +96 -0
  577. data/test/wsdl/raa/expectedMappingRegistry.rb +121 -0
  578. data/test/wsdl/raa/raa.wsdl +264 -0
  579. data/test/wsdl/raa/test_raa.rb +126 -0
  580. data/test/wsdl/ref/expectedDriver.rb +51 -0
  581. data/test/wsdl/ref/expectedProduct.rb +243 -0
  582. data/test/wsdl/ref/product.wsdl +147 -0
  583. data/test/wsdl/ref/test_ref.rb +268 -0
  584. data/test/wsdl/rpc/rpc.wsdl +109 -0
  585. data/test/wsdl/rpc/test-rpc-lit.wsdl +371 -0
  586. data/test/wsdl/rpc/test_rpc.rb +176 -0
  587. data/test/wsdl/rpc/test_rpc_lit.rb +470 -0
  588. data/test/wsdl/simplecontent/simplecontent.wsdl +84 -0
  589. data/test/wsdl/simplecontent/test_simplecontent.rb +102 -0
  590. data/test/wsdl/simpletype/rpc/echo_version.rb +1 -0
  591. data/test/wsdl/simpletype/rpc/echo_versionDriver.rb +10 -0
  592. data/test/wsdl/simpletype/rpc/echo_versionMappingRegistry.rb +4 -0
  593. data/test/wsdl/simpletype/rpc/echo_versionServant.rb +3 -0
  594. data/test/wsdl/simpletype/rpc/echo_version_service.rb +3 -0
  595. data/test/wsdl/simpletype/rpc/echo_version_serviceClient.rb +34 -0
  596. data/test/wsdl/simpletype/rpc/expectedClient.rb +34 -0
  597. data/test/wsdl/simpletype/rpc/expectedDriver.rb +58 -0
  598. data/test/wsdl/simpletype/rpc/expectedEchoVersion.rb +36 -0
  599. data/test/wsdl/simpletype/rpc/expectedMappingRegistry.rb +57 -0
  600. data/test/wsdl/simpletype/rpc/expectedServant.rb +32 -0
  601. data/test/wsdl/simpletype/rpc/expectedService.rb +55 -0
  602. data/test/wsdl/simpletype/rpc/rpc.wsdl +98 -0
  603. data/test/wsdl/simpletype/rpc/test_rpc.rb +52 -0
  604. data/test/wsdl/simpletype/simpletype.wsdl +114 -0
  605. data/test/wsdl/simpletype/test_simpletype.rb +92 -0
  606. data/test/wsdl/soap/soapbodyparts.wsdl +103 -0
  607. data/test/wsdl/soap/test_soapbodyparts.rb +79 -0
  608. data/test/wsdl/soap/wsdl2ruby/echo_version.rb +1 -0
  609. data/test/wsdl/soap/wsdl2ruby/echo_versionDriver.rb +10 -0
  610. data/test/wsdl/soap/wsdl2ruby/echo_versionMappingRegistry.rb +4 -0
  611. data/test/wsdl/soap/wsdl2ruby/echo_versionServant.rb +3 -0
  612. data/test/wsdl/soap/wsdl2ruby/echo_version_service.cgi +3 -0
  613. data/test/wsdl/soap/wsdl2ruby/echo_version_service.rb +7 -0
  614. data/test/wsdl/soap/wsdl2ruby/echo_version_serviceClient.rb +34 -0
  615. data/test/wsdl/soap/wsdl2ruby/expectedClassdef.rb +21 -0
  616. data/test/wsdl/soap/wsdl2ruby/expectedClient.rb +34 -0
  617. data/test/wsdl/soap/wsdl2ruby/expectedDriver.rb +58 -0
  618. data/test/wsdl/soap/wsdl2ruby/expectedMappingRegistry.rb +36 -0
  619. data/test/wsdl/soap/wsdl2ruby/expectedServant.rb +32 -0
  620. data/test/wsdl/soap/wsdl2ruby/expectedService.cgi +48 -0
  621. data/test/wsdl/soap/wsdl2ruby/expectedService.rb +55 -0
  622. data/test/wsdl/soap/wsdl2ruby/rpc.wsdl +80 -0
  623. data/test/wsdl/soap/wsdl2ruby/section/expectedClassdef.rb +37 -0
  624. data/test/wsdl/soap/wsdl2ruby/section/section.xsd +31 -0
  625. data/test/wsdl/soap/wsdl2ruby/section/test_section.rb +53 -0
  626. data/test/wsdl/soap/wsdl2ruby/soapenc/soapenc.wsdl +64 -0
  627. data/test/wsdl/soap/wsdl2ruby/soapenc/test_soapenc.rb +83 -0
  628. data/test/wsdl/soap/wsdl2ruby/test_wsdl2ruby.rb +102 -0
  629. data/test/wsdl/soaptype/soaptype.wsdl +61 -0
  630. data/test/wsdl/soaptype/test_soaptype.rb +178 -0
  631. data/test/wsdl/test_emptycomplextype.rb +21 -0
  632. data/test/wsdl/test_fault.rb +50 -0
  633. data/test/wsdl/test_multiplefault.rb +41 -0
  634. data/test/xsd/codegen/test_classdef.rb +244 -0
  635. data/test/xsd/noencoding.xml +4 -0
  636. data/test/xsd/test_noencoding.rb +32 -0
  637. data/test/xsd/test_ns.rb +41 -0
  638. data/test/xsd/test_xmlschemaparser.rb +22 -0
  639. data/test/xsd/test_xsd.rb +1638 -0
  640. data/test/xsd/xmllang.xml +43 -0
  641. data/test/xsd/xmlschema.xml +12 -0
  642. data/test/xsd/xsd2ruby/expected_mysample.rb +65 -0
  643. data/test/xsd/xsd2ruby/expected_mysample_mapper.rb +11 -0
  644. data/test/xsd/xsd2ruby/expected_mysample_mapping_registry.rb +51 -0
  645. data/test/xsd/xsd2ruby/section.xsd +49 -0
  646. data/test/xsd/xsd2ruby/test_xsd2ruby.rb +90 -0
  647. metadata +958 -0
data/lib/wsdl/param.rb ADDED
@@ -0,0 +1,93 @@
1
+ # WSDL4R - WSDL param definition.
2
+ # Copyright (C) 2000-2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
3
+
4
+ # This program is copyrighted free software by NAKAMURA, Hiroshi. You can
5
+ # redistribute it and/or modify it under the same terms of Ruby's license;
6
+ # either the dual license version in 2003, or any later version.
7
+
8
+
9
+ require 'wsdl/info'
10
+
11
+
12
+ module WSDL
13
+
14
+
15
+ class Param < Info
16
+ attr_reader :message # required
17
+ attr_reader :name # optional but required for fault.
18
+ attr_reader :soapbody
19
+ attr_reader :soapheader
20
+ attr_reader :soapfault
21
+
22
+ def initialize
23
+ super
24
+ @message = nil
25
+ @name = nil
26
+ @soapbody = nil
27
+ @soapheader = []
28
+ @soapfault = nil
29
+ end
30
+
31
+ def targetnamespace
32
+ parent.targetnamespace
33
+ end
34
+
35
+ def find_message
36
+ root.message(@message) or raise RuntimeError.new("#{@message} not found")
37
+ end
38
+
39
+ def soapbody_use
40
+ if @soapbody
41
+ @soapbody.use || :literal
42
+ else
43
+ nil
44
+ end
45
+ end
46
+
47
+ def soapbody_encodingstyle
48
+ if @soapbody
49
+ @soapbody.encodingstyle
50
+ else
51
+ nil
52
+ end
53
+ end
54
+
55
+ def parse_element(element)
56
+ case element
57
+ when SOAPBodyName
58
+ o = WSDL::SOAP::Body.new
59
+ @soapbody = o
60
+ o
61
+ when SOAPHeaderName
62
+ o = WSDL::SOAP::Header.new
63
+ @soapheader << o
64
+ o
65
+ when SOAPFaultName
66
+ o = WSDL::SOAP::Fault.new
67
+ @soapfault = o
68
+ o
69
+ when DocumentationName
70
+ o = Documentation.new
71
+ o
72
+ else
73
+ nil
74
+ end
75
+ end
76
+
77
+ def parse_attr(attr, value)
78
+ case attr
79
+ when MessageAttrName
80
+ if value.namespace.nil?
81
+ value = XSD::QName.new(targetnamespace, value.source)
82
+ end
83
+ @message = value
84
+ when NameAttrName
85
+ @name = XSD::QName.new(targetnamespace, value.source)
86
+ else
87
+ nil
88
+ end
89
+ end
90
+ end
91
+
92
+
93
+ end
@@ -0,0 +1,164 @@
1
+ # WSDL4R - WSDL XML Instance parser library.
2
+ # Copyright (C) 2000-2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
3
+
4
+ # This program is copyrighted free software by NAKAMURA, Hiroshi. You can
5
+ # redistribute it and/or modify it under the same terms of Ruby's license;
6
+ # either the dual license version in 2003, or any later version.
7
+
8
+
9
+ require 'xsd/qname'
10
+ require 'xsd/charset'
11
+ require 'xsd/datatypes'
12
+ require 'xsd/xmlparser'
13
+ require 'soap/ns'
14
+ require 'wsdl/wsdl'
15
+ require 'wsdl/data'
16
+ require 'wsdl/xmlSchema/data'
17
+ require 'wsdl/soap/data'
18
+
19
+
20
+ module WSDL
21
+
22
+
23
+ class Parser
24
+ include WSDL
25
+
26
+ class ParseError < Error; end
27
+ class FormatDecodeError < ParseError; end
28
+ class UnknownElementError < FormatDecodeError; end
29
+ class UnknownAttributeError < FormatDecodeError; end
30
+ class UnexpectedElementError < FormatDecodeError; end
31
+ class ElementConstraintError < FormatDecodeError; end
32
+ class AttributeConstraintError < FormatDecodeError; end
33
+
34
+ private
35
+
36
+ class ParseFrame
37
+ attr_reader :ns
38
+ attr_reader :name
39
+ attr_accessor :node
40
+
41
+ private
42
+
43
+ def initialize(ns, name, node)
44
+ @ns = ns
45
+ @name = name
46
+ @node = node
47
+ end
48
+ end
49
+
50
+ public
51
+
52
+ def initialize(opt = {})
53
+ @parser = XSD::XMLParser.create_parser(self, opt)
54
+ @parsestack = nil
55
+ @lastnode = nil
56
+ @ignored = {}
57
+ @location = opt[:location]
58
+ @originalroot = opt[:originalroot]
59
+ end
60
+
61
+ def parse(string_or_readable)
62
+ @parsestack = []
63
+ @lastnode = nil
64
+ @textbuf = ''
65
+ @parser.do_parse(string_or_readable)
66
+ @lastnode
67
+ end
68
+
69
+ def charset
70
+ @parser.charset
71
+ end
72
+
73
+ def start_element(name, attrs)
74
+ lastframe = @parsestack.last
75
+ ns = parent = nil
76
+ if lastframe
77
+ ns = lastframe.ns
78
+ parent = lastframe.node
79
+ else
80
+ ns = ::SOAP::NS.new
81
+ parent = nil
82
+ end
83
+ # ns might be the same
84
+ ns, attrs = XSD::XMLParser.filter_ns(ns, attrs)
85
+ node = decode_tag(ns, name, attrs, parent)
86
+ @parsestack << ParseFrame.new(ns, name, node)
87
+ end
88
+
89
+ def characters(text)
90
+ lastframe = @parsestack.last
91
+ if lastframe
92
+ # Need not to be cloned because character does not have attr.
93
+ ns = lastframe.ns
94
+ decode_text(ns, text)
95
+ else
96
+ p text if $DEBUG
97
+ end
98
+ end
99
+
100
+ def end_element(name)
101
+ lastframe = @parsestack.pop
102
+ unless name == lastframe.name
103
+ raise UnexpectedElementError.new("closing element name '#{name}' does not match with opening element '#{lastframe.name}'")
104
+ end
105
+ decode_tag_end(lastframe.ns, lastframe.node)
106
+ @lastnode = lastframe.node
107
+ end
108
+
109
+ private
110
+
111
+ def decode_tag(ns, name, attrs, parent)
112
+ o = nil
113
+ elename = ns.parse(name)
114
+ if !parent
115
+ if elename == DefinitionsName
116
+ o = Definitions.parse_element(elename)
117
+ o.location = @location
118
+ else
119
+ raise UnknownElementError.new("unknown element: #{elename}")
120
+ end
121
+ o.root = @originalroot if @originalroot # o.root = o otherwise
122
+ else
123
+ if elename == XMLSchema::AnnotationName
124
+ # only the first annotation element is allowed for each xsd element.
125
+ o = XMLSchema::Annotation.new
126
+ else
127
+ o = parent.parse_element(elename)
128
+ end
129
+ if o.nil?
130
+ unless @ignored.key?(elename)
131
+ warn("ignored element: #{elename} : #{parent.inspect}")
132
+ @ignored[elename] = elename
133
+ end
134
+ o = Documentation.new # which accepts any element.
135
+ end
136
+ # node could be a pseudo element. pseudo element has its own parent.
137
+ o.root = parent.root
138
+ o.parent = parent if o.parent.nil?
139
+ end
140
+ attrs.each do |key, value|
141
+ attr_ele = ns.parse(key, true)
142
+ value_ele = ns.parse(value, false)
143
+ value_ele.source = value # for recovery; value may not be a QName
144
+ if o.parse_attr(attr_ele, value_ele).nil?
145
+ unless @ignored.key?(attr_ele)
146
+ warn("ignored attr: #{attr_ele}")
147
+ @ignored[attr_ele] = attr_ele
148
+ end
149
+ end
150
+ end
151
+ o
152
+ end
153
+
154
+ def decode_tag_end(ns, node)
155
+ node.parse_epilogue
156
+ end
157
+
158
+ def decode_text(ns, text)
159
+ @textbuf << text
160
+ end
161
+ end
162
+
163
+
164
+ end
data/lib/wsdl/part.rb ADDED
@@ -0,0 +1,52 @@
1
+ # WSDL4R - WSDL part definition.
2
+ # Copyright (C) 2000-2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
3
+
4
+ # This program is copyrighted free software by NAKAMURA, Hiroshi. You can
5
+ # redistribute it and/or modify it under the same terms of Ruby's license;
6
+ # either the dual license version in 2003, or any later version.
7
+
8
+
9
+ require 'wsdl/info'
10
+
11
+
12
+ module WSDL
13
+
14
+
15
+ class Part < Info
16
+ attr_reader :name # required
17
+ attr_reader :element # optional
18
+ attr_reader :type # optional
19
+
20
+ def initialize
21
+ super
22
+ @name = nil
23
+ @element = nil
24
+ @type = nil
25
+ end
26
+
27
+ def parse_element(element)
28
+ case element
29
+ when DocumentationName
30
+ o = Documentation.new
31
+ o
32
+ else
33
+ nil
34
+ end
35
+ end
36
+
37
+ def parse_attr(attr, value)
38
+ case attr
39
+ when NameAttrName
40
+ @name = value.source
41
+ when ElementAttrName
42
+ @element = value
43
+ when TypeAttrName
44
+ @type = value
45
+ else
46
+ nil
47
+ end
48
+ end
49
+ end
50
+
51
+
52
+ end
data/lib/wsdl/port.rb ADDED
@@ -0,0 +1,66 @@
1
+ # WSDL4R - WSDL port definition.
2
+ # Copyright (C) 2000-2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
3
+
4
+ # This program is copyrighted free software by NAKAMURA, Hiroshi. You can
5
+ # redistribute it and/or modify it under the same terms of Ruby's license;
6
+ # either the dual license version in 2003, or any later version.
7
+
8
+
9
+ require 'wsdl/info'
10
+
11
+
12
+ module WSDL
13
+
14
+
15
+ class Port < Info
16
+ attr_reader :name # required
17
+ attr_reader :binding # required
18
+ attr_reader :soap_address
19
+
20
+ def initialize
21
+ super
22
+ @name = nil
23
+ @binding = nil
24
+ @soap_address = nil
25
+ end
26
+
27
+ def targetnamespace
28
+ parent.targetnamespace
29
+ end
30
+
31
+ def porttype
32
+ root.porttype(find_binding.type)
33
+ end
34
+
35
+ def find_binding
36
+ root.binding(@binding) or raise RuntimeError.new("#{@binding} not found")
37
+ end
38
+
39
+ def parse_element(element)
40
+ case element
41
+ when SOAPAddressName
42
+ o = WSDL::SOAP::Address.new
43
+ @soap_address = o
44
+ o
45
+ when DocumentationName
46
+ o = Documentation.new
47
+ o
48
+ else
49
+ nil
50
+ end
51
+ end
52
+
53
+ def parse_attr(attr, value)
54
+ case attr
55
+ when NameAttrName
56
+ @name = XSD::QName.new(targetnamespace, value.source)
57
+ when BindingAttrName
58
+ @binding = value
59
+ else
60
+ nil
61
+ end
62
+ end
63
+ end
64
+
65
+
66
+ end
@@ -0,0 +1,75 @@
1
+ # WSDL4R - WSDL portType definition.
2
+ # Copyright (C) 2000-2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
3
+
4
+ # This program is copyrighted free software by NAKAMURA, Hiroshi. You can
5
+ # redistribute it and/or modify it under the same terms of Ruby's license;
6
+ # either the dual license version in 2003, or any later version.
7
+
8
+
9
+ require 'wsdl/info'
10
+ require 'xsd/namedelements'
11
+
12
+
13
+ module WSDL
14
+
15
+
16
+ class PortType < Info
17
+ attr_reader :name # required
18
+ attr_reader :operations
19
+
20
+ def targetnamespace
21
+ parent.targetnamespace
22
+ end
23
+
24
+ def initialize
25
+ super
26
+ @name = nil
27
+ @operations = XSD::NamedElements.new
28
+ end
29
+
30
+ # may be nil if not defined
31
+ def find_binding
32
+ root.bindings.find { |item| item.type == @name }
33
+ end
34
+
35
+ def locations
36
+ binding = find_binding
37
+ return [] if binding.nil?
38
+ bind_name = binding.name
39
+ result = []
40
+ root.services.each do |service|
41
+ service.ports.each do |port|
42
+ if port.binding == bind_name
43
+ result << port.soap_address.location if port.soap_address
44
+ end
45
+ end
46
+ end
47
+ result
48
+ end
49
+
50
+ def parse_element(element)
51
+ case element
52
+ when OperationName
53
+ o = Operation.new
54
+ @operations << o
55
+ o
56
+ when DocumentationName
57
+ o = Documentation.new
58
+ o
59
+ else
60
+ nil
61
+ end
62
+ end
63
+
64
+ def parse_attr(attr, value)
65
+ case attr
66
+ when NameAttrName
67
+ @name = XSD::QName.new(targetnamespace, value.source)
68
+ else
69
+ nil
70
+ end
71
+ end
72
+ end
73
+
74
+
75
+ end