rtiss_soap4r 1.6.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.
- data/bin/wsdl2ruby.rb +139 -0
- data/bin/xsd2ruby.rb +91 -0
- data/lib/soap/attachment.rb +109 -0
- data/lib/soap/attrproxy.rb +35 -0
- data/lib/soap/baseData.rb +1095 -0
- data/lib/soap/element.rb +278 -0
- data/lib/soap/encodingstyle/aspDotNetHandler.rb +208 -0
- data/lib/soap/encodingstyle/handler.rb +121 -0
- data/lib/soap/encodingstyle/literalHandler.rb +196 -0
- data/lib/soap/encodingstyle/soapHandler.rb +560 -0
- data/lib/soap/filter/filterchain.rb +52 -0
- data/lib/soap/filter/handler.rb +32 -0
- data/lib/soap/filter/streamhandler.rb +30 -0
- data/lib/soap/filter.rb +14 -0
- data/lib/soap/generator.rb +299 -0
- data/lib/soap/header/handler.rb +62 -0
- data/lib/soap/header/handlerset.rb +71 -0
- data/lib/soap/header/mappinghandler.rb +48 -0
- data/lib/soap/header/simplehandler.rb +45 -0
- data/lib/soap/httpconfigloader.rb +140 -0
- data/lib/soap/mapping/encodedregistry.rb +539 -0
- data/lib/soap/mapping/factory.rb +389 -0
- data/lib/soap/mapping/literalregistry.rb +392 -0
- data/lib/soap/mapping/mapping.rb +577 -0
- data/lib/soap/mapping/registry.rb +296 -0
- data/lib/soap/mapping/rubytypeFactory.rb +446 -0
- data/lib/soap/mapping/schemadefinition.rb +171 -0
- data/lib/soap/mapping/typeMap.rb +107 -0
- data/lib/soap/mapping/wsdlencodedregistry.rb +212 -0
- data/lib/soap/mapping/wsdlliteralregistry.rb +249 -0
- data/lib/soap/mapping.rb +13 -0
- data/lib/soap/marshal.rb +60 -0
- data/lib/soap/mimemessage.rb +243 -0
- data/lib/soap/nestedexception.rb +43 -0
- data/lib/soap/netHttpClient.rb +242 -0
- data/lib/soap/ns.rb +39 -0
- data/lib/soap/parser.rb +253 -0
- data/lib/soap/processor.rb +67 -0
- data/lib/soap/property.rb +340 -0
- data/lib/soap/proxy.rb +15 -0
- data/lib/soap/rpc/cgistub.rb +248 -0
- data/lib/soap/rpc/driver.rb +222 -0
- data/lib/soap/rpc/element.rb +375 -0
- data/lib/soap/rpc/httpserver.rb +143 -0
- data/lib/soap/rpc/methodDef.rb +69 -0
- data/lib/soap/rpc/proxy.rb +573 -0
- data/lib/soap/rpc/router.rb +663 -0
- data/lib/soap/rpc/rpc.rb +26 -0
- data/lib/soap/rpc/soaplet.rb +201 -0
- data/lib/soap/rpc/standaloneServer.rb +44 -0
- data/lib/soap/soap.rb +154 -0
- data/lib/soap/streamHandler.rb +306 -0
- data/lib/soap/version.rb +9 -0
- data/lib/soap/wsdlDriver.rb +165 -0
- data/lib/wsdl/binding.rb +66 -0
- data/lib/wsdl/data.rb +65 -0
- data/lib/wsdl/definitions.rb +237 -0
- data/lib/wsdl/documentation.rb +33 -0
- data/lib/wsdl/import.rb +81 -0
- data/lib/wsdl/importer.rb +39 -0
- data/lib/wsdl/info.rb +51 -0
- data/lib/wsdl/message.rb +55 -0
- data/lib/wsdl/operation.rb +152 -0
- data/lib/wsdl/operationBinding.rb +241 -0
- data/lib/wsdl/param.rb +94 -0
- data/lib/wsdl/parser.rb +165 -0
- data/lib/wsdl/part.rb +53 -0
- data/lib/wsdl/port.rb +67 -0
- data/lib/wsdl/portType.rb +76 -0
- data/lib/wsdl/service.rb +62 -0
- data/lib/wsdl/soap/address.rb +41 -0
- data/lib/wsdl/soap/binding.rb +50 -0
- data/lib/wsdl/soap/body.rb +59 -0
- data/lib/wsdl/soap/cgiStubCreator.rb +93 -0
- data/lib/wsdl/soap/classDefCreator.rb +434 -0
- data/lib/wsdl/soap/classDefCreatorSupport.rb +241 -0
- data/lib/wsdl/soap/classNameCreator.rb +55 -0
- data/lib/wsdl/soap/clientSkeltonCreator.rb +107 -0
- data/lib/wsdl/soap/complexType.rb +174 -0
- data/lib/wsdl/soap/data.rb +43 -0
- data/lib/wsdl/soap/definitions.rb +201 -0
- data/lib/wsdl/soap/driverCreator.rb +121 -0
- data/lib/wsdl/soap/element.rb +34 -0
- data/lib/wsdl/soap/encodedMappingRegistryCreator.rb +74 -0
- data/lib/wsdl/soap/fault.rb +57 -0
- data/lib/wsdl/soap/header.rb +87 -0
- data/lib/wsdl/soap/headerfault.rb +57 -0
- data/lib/wsdl/soap/literalMappingRegistryCreator.rb +116 -0
- data/lib/wsdl/soap/mappingRegistryCreator.rb +59 -0
- data/lib/wsdl/soap/mappingRegistryCreatorSupport.rb +377 -0
- data/lib/wsdl/soap/methodDefCreator.rb +200 -0
- data/lib/wsdl/soap/operation.rb +113 -0
- data/lib/wsdl/soap/servantSkeltonCreator.rb +92 -0
- data/lib/wsdl/soap/servletStubCreator.rb +105 -0
- data/lib/wsdl/soap/standaloneServerStubCreator.rb +101 -0
- data/lib/wsdl/soap/wsdl2ruby.rb +226 -0
- data/lib/wsdl/types.rb +45 -0
- data/lib/wsdl/wsdl.rb +25 -0
- data/lib/wsdl/xmlSchema/all.rb +25 -0
- data/lib/wsdl/xmlSchema/annotation.rb +35 -0
- data/lib/wsdl/xmlSchema/any.rb +62 -0
- data/lib/wsdl/xmlSchema/anyAttribute.rb +49 -0
- data/lib/wsdl/xmlSchema/attribute.rb +105 -0
- data/lib/wsdl/xmlSchema/attributeGroup.rb +69 -0
- data/lib/wsdl/xmlSchema/choice.rb +59 -0
- data/lib/wsdl/xmlSchema/complexContent.rb +98 -0
- data/lib/wsdl/xmlSchema/complexExtension.rb +120 -0
- data/lib/wsdl/xmlSchema/complexRestriction.rb +105 -0
- data/lib/wsdl/xmlSchema/complexType.rb +194 -0
- data/lib/wsdl/xmlSchema/content.rb +96 -0
- data/lib/wsdl/xmlSchema/data.rb +117 -0
- data/lib/wsdl/xmlSchema/element.rb +154 -0
- data/lib/wsdl/xmlSchema/enumeration.rb +37 -0
- data/lib/wsdl/xmlSchema/fractiondigits.rb +38 -0
- data/lib/wsdl/xmlSchema/group.rb +101 -0
- data/lib/wsdl/xmlSchema/import.rb +54 -0
- data/lib/wsdl/xmlSchema/importHandler.rb +46 -0
- data/lib/wsdl/xmlSchema/importer.rb +103 -0
- data/lib/wsdl/xmlSchema/include.rb +49 -0
- data/lib/wsdl/xmlSchema/length.rb +38 -0
- data/lib/wsdl/xmlSchema/list.rb +49 -0
- data/lib/wsdl/xmlSchema/maxexclusive.rb +38 -0
- data/lib/wsdl/xmlSchema/maxinclusive.rb +38 -0
- data/lib/wsdl/xmlSchema/maxlength.rb +38 -0
- data/lib/wsdl/xmlSchema/minexclusive.rb +38 -0
- data/lib/wsdl/xmlSchema/mininclusive.rb +38 -0
- data/lib/wsdl/xmlSchema/minlength.rb +38 -0
- data/lib/wsdl/xmlSchema/parser.rb +168 -0
- data/lib/wsdl/xmlSchema/pattern.rb +37 -0
- data/lib/wsdl/xmlSchema/ref.rb +34 -0
- data/lib/wsdl/xmlSchema/schema.rb +179 -0
- data/lib/wsdl/xmlSchema/sequence.rb +55 -0
- data/lib/wsdl/xmlSchema/simpleContent.rb +70 -0
- data/lib/wsdl/xmlSchema/simpleExtension.rb +63 -0
- data/lib/wsdl/xmlSchema/simpleRestriction.rb +133 -0
- data/lib/wsdl/xmlSchema/simpleType.rb +88 -0
- data/lib/wsdl/xmlSchema/totaldigits.rb +38 -0
- data/lib/wsdl/xmlSchema/union.rb +36 -0
- data/lib/wsdl/xmlSchema/unique.rb +35 -0
- data/lib/wsdl/xmlSchema/whitespace.rb +38 -0
- data/lib/wsdl/xmlSchema/xsd2ruby.rb +176 -0
- data/lib/xsd/charset.rb +190 -0
- data/lib/xsd/codegen/classdef.rb +209 -0
- data/lib/xsd/codegen/commentdef.rb +35 -0
- data/lib/xsd/codegen/gensupport.rb +277 -0
- data/lib/xsd/codegen/methoddef.rb +71 -0
- data/lib/xsd/codegen/moduledef.rb +209 -0
- data/lib/xsd/codegen.rb +13 -0
- data/lib/xsd/datatypes.rb +1466 -0
- data/lib/xsd/datatypes1999.rb +21 -0
- data/lib/xsd/iconvcharset.rb +34 -0
- data/lib/xsd/mapping.rb +69 -0
- data/lib/xsd/namedelements.rb +133 -0
- data/lib/xsd/ns.rb +183 -0
- data/lib/xsd/qname.rb +80 -0
- data/lib/xsd/xmlparser/libxmlparser.rb +116 -0
- data/lib/xsd/xmlparser/parser.rb +101 -0
- data/lib/xsd/xmlparser/rexmlparser.rb +59 -0
- data/lib/xsd/xmlparser/xmlparser.rb +51 -0
- data/lib/xsd/xmlparser/xmlscanner.rb +150 -0
- data/lib/xsd/xmlparser.rb +77 -0
- data/test/16runner.rb +69 -0
- data/test/helper.rb +7 -0
- data/test/interopR2/README.txt +2 -0
- data/test/interopR2/SOAPBuildersInterop_R2.wsdl +461 -0
- data/test/interopR2/SOAPBuildersInterop_R2GrB.wsdl +19 -0
- data/test/interopR2/base.rb +289 -0
- data/test/interopR2/client.NetRemoting.rb +18 -0
- data/test/interopR2/client.rb +1235 -0
- data/test/interopR2/client4S4C.rb +16 -0
- data/test/interopR2/client4S4C2.rb +15 -0
- data/test/interopR2/clientASP.NET.rb +18 -0
- data/test/interopR2/clientApacheAxis.rb +17 -0
- data/test/interopR2/clientApacheSOAP.rb +18 -0
- data/test/interopR2/clientBEAWebLogic.rb +18 -0
- data/test/interopR2/clientBase.rb +1968 -0
- data/test/interopR2/clientCapeConnect.rb +19 -0
- data/test/interopR2/clientDelphi.rb +20 -0
- data/test/interopR2/clientEasySoap.rb +15 -0
- data/test/interopR2/clientFrontier.rb +26 -0
- data/test/interopR2/clientGLUE.rb +33 -0
- data/test/interopR2/clientHP.rb +14 -0
- data/test/interopR2/clientJAX-RPC.rb +20 -0
- data/test/interopR2/clientJSOAP.rb +15 -0
- data/test/interopR2/clientKafkaXSLT.rb +16 -0
- data/test/interopR2/clientMSSOAPToolkit2.0.rb +18 -0
- data/test/interopR2/clientMSSOAPToolkit3.0.rb +18 -0
- data/test/interopR2/clientNuSOAP.rb +20 -0
- data/test/interopR2/clientNuWave.rb +16 -0
- data/test/interopR2/clientOpenLink.rb +16 -0
- data/test/interopR2/clientOracle.rb +16 -0
- data/test/interopR2/clientPEAR.rb +19 -0
- data/test/interopR2/clientPhalanx.rb +19 -0
- data/test/interopR2/clientSIMACE.rb +19 -0
- data/test/interopR2/clientSOAP4R.rb +19 -0
- data/test/interopR2/clientSOAP__Lite.rb +15 -0
- data/test/interopR2/clientSQLData.rb +19 -0
- data/test/interopR2/clientSilverStream.rb +18 -0
- data/test/interopR2/clientSpray2001.rb +18 -0
- data/test/interopR2/clientSun.rb +20 -0
- data/test/interopR2/clientVWOpentalkSoap.rb +20 -0
- data/test/interopR2/clientWASP.rb +20 -0
- data/test/interopR2/clientWASPC.rb +19 -0
- data/test/interopR2/clientWebMethods.rb +16 -0
- data/test/interopR2/clientWhiteMesa.rb +29 -0
- data/test/interopR2/clientWingfoot.rb +16 -0
- data/test/interopR2/clientXMLBus.rb +20 -0
- data/test/interopR2/clientXMLRPC-EPI.rb +18 -0
- data/test/interopR2/clientXSOAP.rb +15 -0
- data/test/interopR2/clientZSI.rb +20 -0
- data/test/interopR2/clienteSOAP.rb +19 -0
- data/test/interopR2/clientgSOAP.rb +19 -0
- data/test/interopR2/clientkSOAP.rb +18 -0
- data/test/interopR2/iSimonReg.rb +113 -0
- data/test/interopR2/interopResultBase.rb +115 -0
- data/test/interopR2/interopService.rb +248 -0
- data/test/interopR2/rwikiInteropService.rb +106 -0
- data/test/interopR2/server.cgi +271 -0
- data/test/interopR2/server.rb +276 -0
- data/test/interopR2/simonReg.rb +124 -0
- data/test/interopR2/test.sh +49 -0
- data/test/interopR4/client.rb +113 -0
- data/test/runner.rb +8 -0
- data/test/sm11/classDef.rb +157 -0
- data/test/sm11/client.rb +543 -0
- data/test/sm11/driver.rb +184 -0
- data/test/sm11/servant.rb +1068 -0
- data/test/sm11/server.rb +26 -0
- data/test/soap/asp.net/hello.wsdl +96 -0
- data/test/soap/asp.net/test_aspdotnet.rb +124 -0
- data/test/soap/auth/htdigest +2 -0
- data/test/soap/auth/htpasswd +2 -0
- data/test/soap/auth/test_basic.rb +118 -0
- data/test/soap/auth/test_digest.rb +119 -0
- data/test/soap/calc/calc.rb +18 -0
- data/test/soap/calc/calc2.rb +30 -0
- data/test/soap/calc/server.cgi +16 -0
- data/test/soap/calc/server.rb +18 -0
- data/test/soap/calc/server2.rb +21 -0
- data/test/soap/calc/test_calc.rb +53 -0
- data/test/soap/calc/test_calc2.rb +57 -0
- data/test/soap/calc/test_calc_cgi.rb +72 -0
- data/test/soap/case/test_mapping.rb +58 -0
- data/test/soap/fault/test_customfault.rb +61 -0
- data/test/soap/fault/test_fault.rb +47 -0
- data/test/soap/fault/test_soaparray.rb +36 -0
- data/test/soap/filter/test_filter.rb +147 -0
- data/test/soap/header/server.cgi +121 -0
- data/test/soap/header/test_authheader.rb +241 -0
- data/test/soap/header/test_authheader_cgi.rb +122 -0
- data/test/soap/header/test_simplehandler.rb +117 -0
- data/test/soap/helloworld/hw_s.rb +17 -0
- data/test/soap/helloworld/test_helloworld.rb +45 -0
- data/test/soap/htpasswd +2 -0
- data/test/soap/literalArrayMapping/amazonEc.rb +4779 -0
- data/test/soap/literalArrayMapping/amazonEcDriver.rb +173 -0
- data/test/soap/literalArrayMapping/amazonresponse.xml +100 -0
- data/test/soap/literalArrayMapping/test_definedarray.rb +35 -0
- data/test/soap/marshal/marshaltestlib.rb +498 -0
- data/test/soap/marshal/test_digraph.rb +57 -0
- data/test/soap/marshal/test_marshal.rb +28 -0
- data/test/soap/marshal/test_struct.rb +48 -0
- data/test/soap/ssl/README +1 -0
- data/test/soap/ssl/ca.cert +23 -0
- data/test/soap/ssl/client.cert +19 -0
- data/test/soap/ssl/client.key +15 -0
- data/test/soap/ssl/server.cert +19 -0
- data/test/soap/ssl/server.key +15 -0
- data/test/soap/ssl/sslsvr.rb +59 -0
- data/test/soap/ssl/subca.cert +21 -0
- data/test/soap/ssl/test_ssl.rb +236 -0
- data/test/soap/struct/test_struct.rb +71 -0
- data/test/soap/styleuse/client.rb +21 -0
- data/test/soap/styleuse/server.rb +87 -0
- data/test/soap/swa/test_file.rb +76 -0
- data/test/soap/test_basetype.rb +1091 -0
- data/test/soap/test_cookie.rb +113 -0
- data/test/soap/test_custom_ns.rb +106 -0
- data/test/soap/test_custommap.rb +111 -0
- data/test/soap/test_empty.rb +106 -0
- data/test/soap/test_envelopenamespace.rb +86 -0
- data/test/soap/test_extraattr.rb +55 -0
- data/test/soap/test_generator.rb +32 -0
- data/test/soap/test_httpconfigloader.rb +72 -0
- data/test/soap/test_mapping.rb +132 -0
- data/test/soap/test_nestedexception.rb +71 -0
- data/test/soap/test_nil.rb +71 -0
- data/test/soap/test_no_indent.rb +89 -0
- data/test/soap/test_property.rb +429 -0
- data/test/soap/test_response_as_xml.rb +118 -0
- data/test/soap/test_soapelement.rb +139 -0
- data/test/soap/test_streamhandler.rb +271 -0
- data/test/soap/test_styleuse.rb +327 -0
- data/test/soap/wsdlDriver/README.txt +2 -0
- data/test/soap/wsdlDriver/calc.wsdl +126 -0
- data/test/soap/wsdlDriver/document.wsdl +54 -0
- data/test/soap/wsdlDriver/echo_version.rb +30 -0
- data/test/soap/wsdlDriver/simpletype.wsdl +63 -0
- data/test/soap/wsdlDriver/test_calc.rb +72 -0
- data/test/soap/wsdlDriver/test_document.rb +72 -0
- data/test/soap/wsdlDriver/test_simpletype.rb +82 -0
- data/test/testutil.rb +55 -0
- data/test/wsdl/abstract/abstract.wsdl +176 -0
- data/test/wsdl/abstract/test_abstract.rb +160 -0
- data/test/wsdl/anonymous/expectedClassDef.rb +129 -0
- data/test/wsdl/anonymous/expectedDriver.rb +60 -0
- data/test/wsdl/anonymous/expectedMappingRegistry.rb +177 -0
- data/test/wsdl/anonymous/lp.wsdl +147 -0
- data/test/wsdl/anonymous/test_anonymous.rb +131 -0
- data/test/wsdl/any/any.wsdl +114 -0
- data/test/wsdl/any/expectedDriver.rb +69 -0
- data/test/wsdl/any/expectedEcho.rb +58 -0
- data/test/wsdl/any/expectedMappingRegistry.rb +64 -0
- data/test/wsdl/any/expectedService.rb +70 -0
- data/test/wsdl/any/test_any.rb +194 -0
- data/test/wsdl/axisArray/axisArray.wsdl +87 -0
- data/test/wsdl/axisArray/test_axisarray.rb +125 -0
- data/test/wsdl/choice/choice.wsdl +167 -0
- data/test/wsdl/choice/test_choice.rb +311 -0
- data/test/wsdl/complexcontent/complexContent.wsdl +83 -0
- data/test/wsdl/complexcontent/test_echo.rb +91 -0
- data/test/wsdl/datetime/DatetimeService.rb +45 -0
- data/test/wsdl/datetime/datetime.rb +0 -0
- data/test/wsdl/datetime/datetime.wsdl +45 -0
- data/test/wsdl/datetime/datetimeServant.rb +23 -0
- data/test/wsdl/datetime/test_datetime.rb +88 -0
- data/test/wsdl/document/array/double.wsdl +161 -0
- data/test/wsdl/document/array/test_array.rb +202 -0
- data/test/wsdl/document/document.wsdl +76 -0
- data/test/wsdl/document/number.wsdl +54 -0
- data/test/wsdl/document/ping_nosoapaction.wsdl +66 -0
- data/test/wsdl/document/test_nosoapaction.rb +103 -0
- data/test/wsdl/document/test_number.rb +93 -0
- data/test/wsdl/document/test_rpc.rb +356 -0
- data/test/wsdl/emptycomplextype.wsdl +31 -0
- data/test/wsdl/fault/fault.wsdl +79 -0
- data/test/wsdl/fault/multifault.wsdl +96 -0
- data/test/wsdl/fault/test_fault.rb +120 -0
- data/test/wsdl/fault/test_multifault.rb +135 -0
- data/test/wsdl/group/expectedClassdef.rb +59 -0
- data/test/wsdl/group/expectedDriver.rb +52 -0
- data/test/wsdl/group/expectedMappingRegistry.rb +68 -0
- data/test/wsdl/group/group.wsdl +88 -0
- data/test/wsdl/group/test_rpc.rb +146 -0
- data/test/wsdl/list/list.wsdl +93 -0
- data/test/wsdl/list/test_list.rb +125 -0
- data/test/wsdl/map/map.wsdl +92 -0
- data/test/wsdl/map/map.xml +43 -0
- data/test/wsdl/map/test_map.rb +100 -0
- data/test/wsdl/marshal/person.wsdl +21 -0
- data/test/wsdl/marshal/person_org.rb +24 -0
- data/test/wsdl/marshal/test_wsdlmarshal.rb +76 -0
- data/test/wsdl/multiplefault.wsdl +75 -0
- data/test/wsdl/oneway/oneway.wsdl +36 -0
- data/test/wsdl/oneway/test_oneway.rb +109 -0
- data/test/wsdl/overload/expectedClient.rb +38 -0
- data/test/wsdl/overload/expectedDriver.rb +62 -0
- data/test/wsdl/overload/expectedServant.rb +36 -0
- data/test/wsdl/overload/overload.wsdl +70 -0
- data/test/wsdl/overload/test_overload.rb +132 -0
- data/test/wsdl/qualified/lp.wsdl +47 -0
- data/test/wsdl/qualified/lp.xsd +26 -0
- data/test/wsdl/qualified/np.wsdl +51 -0
- data/test/wsdl/qualified/test_qualified.rb +138 -0
- data/test/wsdl/qualified/test_unqualified.rb +139 -0
- data/test/wsdl/raa/RAAService.rb +126 -0
- data/test/wsdl/raa/README.txt +8 -0
- data/test/wsdl/raa/expectedClassDef.rb +101 -0
- data/test/wsdl/raa/expectedDriver.rb +97 -0
- data/test/wsdl/raa/expectedMappingRegistry.rb +122 -0
- data/test/wsdl/raa/raa.wsdl +264 -0
- data/test/wsdl/raa/test_raa.rb +127 -0
- data/test/wsdl/ref/expectedDriver.rb +52 -0
- data/test/wsdl/ref/expectedProduct.rb +244 -0
- data/test/wsdl/ref/product.wsdl +147 -0
- data/test/wsdl/ref/test_ref.rb +269 -0
- data/test/wsdl/rpc/rpc.wsdl +109 -0
- data/test/wsdl/rpc/test-rpc-lit.wsdl +371 -0
- data/test/wsdl/rpc/test_rpc.rb +177 -0
- data/test/wsdl/rpc/test_rpc_lit.rb +471 -0
- data/test/wsdl/simplecontent/simplecontent.wsdl +84 -0
- data/test/wsdl/simplecontent/test_simplecontent.rb +103 -0
- data/test/wsdl/simpletype/rpc/expectedClient.rb +35 -0
- data/test/wsdl/simpletype/rpc/expectedDriver.rb +59 -0
- data/test/wsdl/simpletype/rpc/expectedEchoVersion.rb +37 -0
- data/test/wsdl/simpletype/rpc/expectedMappingRegistry.rb +58 -0
- data/test/wsdl/simpletype/rpc/expectedServant.rb +33 -0
- data/test/wsdl/simpletype/rpc/expectedService.rb +56 -0
- data/test/wsdl/simpletype/rpc/rpc.wsdl +98 -0
- data/test/wsdl/simpletype/rpc/test_rpc.rb +53 -0
- data/test/wsdl/simpletype/simpletype.wsdl +114 -0
- data/test/wsdl/simpletype/test_simpletype.rb +93 -0
- data/test/wsdl/soap/soapbodyparts.wsdl +103 -0
- data/test/wsdl/soap/test_soapbodyparts.rb +80 -0
- data/test/wsdl/soap/wsdl2ruby/expectedClassdef.rb +22 -0
- data/test/wsdl/soap/wsdl2ruby/expectedClient.rb +35 -0
- data/test/wsdl/soap/wsdl2ruby/expectedDriver.rb +59 -0
- data/test/wsdl/soap/wsdl2ruby/expectedMappingRegistry.rb +37 -0
- data/test/wsdl/soap/wsdl2ruby/expectedServant.rb +33 -0
- data/test/wsdl/soap/wsdl2ruby/expectedService.cgi +49 -0
- data/test/wsdl/soap/wsdl2ruby/expectedService.rb +56 -0
- data/test/wsdl/soap/wsdl2ruby/rpc.wsdl +80 -0
- data/test/wsdl/soap/wsdl2ruby/section/expectedClassdef.rb +38 -0
- data/test/wsdl/soap/wsdl2ruby/section/section.xsd +31 -0
- data/test/wsdl/soap/wsdl2ruby/section/test_section.rb +54 -0
- data/test/wsdl/soap/wsdl2ruby/soapenc/soapenc.wsdl +64 -0
- data/test/wsdl/soap/wsdl2ruby/soapenc/test_soapenc.rb +84 -0
- data/test/wsdl/soap/wsdl2ruby/test_wsdl2ruby.rb +103 -0
- data/test/wsdl/soaptype/soaptype.wsdl +61 -0
- data/test/wsdl/soaptype/test_soaptype.rb +179 -0
- data/test/wsdl/test_emptycomplextype.rb +22 -0
- data/test/wsdl/test_fault.rb +51 -0
- data/test/wsdl/test_multiplefault.rb +42 -0
- data/test/xsd/codegen/test_classdef.rb +245 -0
- data/test/xsd/noencoding.xml +4 -0
- data/test/xsd/test_noencoding.rb +33 -0
- data/test/xsd/test_ns.rb +42 -0
- data/test/xsd/test_xmlschemaparser.rb +23 -0
- data/test/xsd/test_xsd.rb +1639 -0
- data/test/xsd/xmllang.xml +43 -0
- data/test/xsd/xmlschema.xml +12 -0
- data/test/xsd/xsd2ruby/expected_mysample.rb +66 -0
- data/test/xsd/xsd2ruby/expected_mysample_mapper.rb +12 -0
- data/test/xsd/xsd2ruby/expected_mysample_mapping_registry.rb +52 -0
- data/test/xsd/xsd2ruby/section.xsd +49 -0
- data/test/xsd/xsd2ruby/test_xsd2ruby.rb +91 -0
- metadata +489 -0
data/lib/wsdl/parser.rb
ADDED
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# encoding: ASCII-8BIT
|
|
2
|
+
# WSDL4R - WSDL XML Instance parser library.
|
|
3
|
+
# Copyright (C) 2000-2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
|
|
4
|
+
|
|
5
|
+
# This program is copyrighted free software by NAKAMURA, Hiroshi. You can
|
|
6
|
+
# redistribute it and/or modify it under the same terms of Ruby's license;
|
|
7
|
+
# either the dual license version in 2003, or any later version.
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
require 'xsd/qname'
|
|
11
|
+
require 'xsd/charset'
|
|
12
|
+
require 'xsd/datatypes'
|
|
13
|
+
require 'xsd/xmlparser'
|
|
14
|
+
require 'soap/ns'
|
|
15
|
+
require 'wsdl/wsdl'
|
|
16
|
+
require 'wsdl/data'
|
|
17
|
+
require 'wsdl/xmlSchema/data'
|
|
18
|
+
require 'wsdl/soap/data'
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
module WSDL
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class Parser
|
|
25
|
+
include WSDL
|
|
26
|
+
|
|
27
|
+
class ParseError < Error; end
|
|
28
|
+
class FormatDecodeError < ParseError; end
|
|
29
|
+
class UnknownElementError < FormatDecodeError; end
|
|
30
|
+
class UnknownAttributeError < FormatDecodeError; end
|
|
31
|
+
class UnexpectedElementError < FormatDecodeError; end
|
|
32
|
+
class ElementConstraintError < FormatDecodeError; end
|
|
33
|
+
class AttributeConstraintError < FormatDecodeError; end
|
|
34
|
+
|
|
35
|
+
private
|
|
36
|
+
|
|
37
|
+
class ParseFrame
|
|
38
|
+
attr_reader :ns
|
|
39
|
+
attr_reader :name
|
|
40
|
+
attr_accessor :node
|
|
41
|
+
|
|
42
|
+
private
|
|
43
|
+
|
|
44
|
+
def initialize(ns, name, node)
|
|
45
|
+
@ns = ns
|
|
46
|
+
@name = name
|
|
47
|
+
@node = node
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
public
|
|
52
|
+
|
|
53
|
+
def initialize(opt = {})
|
|
54
|
+
@parser = XSD::XMLParser.create_parser(self, opt)
|
|
55
|
+
@parsestack = nil
|
|
56
|
+
@lastnode = nil
|
|
57
|
+
@ignored = {}
|
|
58
|
+
@location = opt[:location]
|
|
59
|
+
@originalroot = opt[:originalroot]
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def parse(string_or_readable)
|
|
63
|
+
@parsestack = []
|
|
64
|
+
@lastnode = nil
|
|
65
|
+
@textbuf = ''
|
|
66
|
+
@parser.do_parse(string_or_readable)
|
|
67
|
+
@lastnode
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def charset
|
|
71
|
+
@parser.charset
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def start_element(name, attrs)
|
|
75
|
+
lastframe = @parsestack.last
|
|
76
|
+
ns = parent = nil
|
|
77
|
+
if lastframe
|
|
78
|
+
ns = lastframe.ns
|
|
79
|
+
parent = lastframe.node
|
|
80
|
+
else
|
|
81
|
+
ns = ::SOAP::NS.new
|
|
82
|
+
parent = nil
|
|
83
|
+
end
|
|
84
|
+
# ns might be the same
|
|
85
|
+
ns, attrs = XSD::XMLParser.filter_ns(ns, attrs)
|
|
86
|
+
node = decode_tag(ns, name, attrs, parent)
|
|
87
|
+
@parsestack << ParseFrame.new(ns, name, node)
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def characters(text)
|
|
91
|
+
lastframe = @parsestack.last
|
|
92
|
+
if lastframe
|
|
93
|
+
# Need not to be cloned because character does not have attr.
|
|
94
|
+
ns = lastframe.ns
|
|
95
|
+
decode_text(ns, text)
|
|
96
|
+
else
|
|
97
|
+
p text if $DEBUG
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
def end_element(name)
|
|
102
|
+
lastframe = @parsestack.pop
|
|
103
|
+
unless name == lastframe.name
|
|
104
|
+
raise UnexpectedElementError.new("closing element name '#{name}' does not match with opening element '#{lastframe.name}'")
|
|
105
|
+
end
|
|
106
|
+
decode_tag_end(lastframe.ns, lastframe.node)
|
|
107
|
+
@lastnode = lastframe.node
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
private
|
|
111
|
+
|
|
112
|
+
def decode_tag(ns, name, attrs, parent)
|
|
113
|
+
o = nil
|
|
114
|
+
elename = ns.parse(name)
|
|
115
|
+
if !parent
|
|
116
|
+
if elename == DefinitionsName
|
|
117
|
+
o = Definitions.parse_element(elename)
|
|
118
|
+
o.location = @location
|
|
119
|
+
else
|
|
120
|
+
raise UnknownElementError.new("unknown element: #{elename}")
|
|
121
|
+
end
|
|
122
|
+
o.root = @originalroot if @originalroot # o.root = o otherwise
|
|
123
|
+
else
|
|
124
|
+
if elename == XMLSchema::AnnotationName
|
|
125
|
+
# only the first annotation element is allowed for each xsd element.
|
|
126
|
+
o = XMLSchema::Annotation.new
|
|
127
|
+
else
|
|
128
|
+
o = parent.parse_element(elename)
|
|
129
|
+
end
|
|
130
|
+
if o.nil?
|
|
131
|
+
unless @ignored.key?(elename)
|
|
132
|
+
warn("ignored element: #{elename}")
|
|
133
|
+
@ignored[elename] = elename
|
|
134
|
+
end
|
|
135
|
+
o = Documentation.new # which accepts any element.
|
|
136
|
+
end
|
|
137
|
+
# node could be a pseudo element. pseudo element has its own parent.
|
|
138
|
+
o.root = parent.root
|
|
139
|
+
o.parent = parent if o.parent.nil?
|
|
140
|
+
end
|
|
141
|
+
attrs.each do |key, value|
|
|
142
|
+
attr_ele = ns.parse(key, true)
|
|
143
|
+
value_ele = ns.parse(value, false)
|
|
144
|
+
value_ele.source = value # for recovery; value may not be a QName
|
|
145
|
+
if o.parse_attr(attr_ele, value_ele).nil?
|
|
146
|
+
unless @ignored.key?(attr_ele)
|
|
147
|
+
warn("ignored attr: #{attr_ele}")
|
|
148
|
+
@ignored[attr_ele] = attr_ele
|
|
149
|
+
end
|
|
150
|
+
end
|
|
151
|
+
end
|
|
152
|
+
o
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
def decode_tag_end(ns, node)
|
|
156
|
+
node.parse_epilogue
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
def decode_text(ns, text)
|
|
160
|
+
@textbuf << text
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
end
|
data/lib/wsdl/part.rb
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# encoding: ASCII-8BIT
|
|
2
|
+
# WSDL4R - WSDL part 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
|
+
|
|
15
|
+
|
|
16
|
+
class Part < Info
|
|
17
|
+
attr_reader :name # required
|
|
18
|
+
attr_reader :element # optional
|
|
19
|
+
attr_reader :type # optional
|
|
20
|
+
|
|
21
|
+
def initialize
|
|
22
|
+
super
|
|
23
|
+
@name = nil
|
|
24
|
+
@element = nil
|
|
25
|
+
@type = nil
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def parse_element(element)
|
|
29
|
+
case element
|
|
30
|
+
when DocumentationName
|
|
31
|
+
o = Documentation.new
|
|
32
|
+
o
|
|
33
|
+
else
|
|
34
|
+
nil
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def parse_attr(attr, value)
|
|
39
|
+
case attr
|
|
40
|
+
when NameAttrName
|
|
41
|
+
@name = value.source
|
|
42
|
+
when ElementAttrName
|
|
43
|
+
@element = value
|
|
44
|
+
when TypeAttrName
|
|
45
|
+
@type = value
|
|
46
|
+
else
|
|
47
|
+
nil
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
end
|
data/lib/wsdl/port.rb
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# encoding: ASCII-8BIT
|
|
2
|
+
# WSDL4R - WSDL port 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
|
+
|
|
15
|
+
|
|
16
|
+
class Port < Info
|
|
17
|
+
attr_reader :name # required
|
|
18
|
+
attr_reader :binding # required
|
|
19
|
+
attr_reader :soap_address
|
|
20
|
+
|
|
21
|
+
def initialize
|
|
22
|
+
super
|
|
23
|
+
@name = nil
|
|
24
|
+
@binding = nil
|
|
25
|
+
@soap_address = nil
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def targetnamespace
|
|
29
|
+
parent.targetnamespace
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def porttype
|
|
33
|
+
root.porttype(find_binding.type)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def find_binding
|
|
37
|
+
root.binding(@binding) or raise RuntimeError.new("#{@binding} not found")
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def parse_element(element)
|
|
41
|
+
case element
|
|
42
|
+
when SOAPAddressName
|
|
43
|
+
o = WSDL::SOAP::Address.new
|
|
44
|
+
@soap_address = o
|
|
45
|
+
o
|
|
46
|
+
when DocumentationName
|
|
47
|
+
o = Documentation.new
|
|
48
|
+
o
|
|
49
|
+
else
|
|
50
|
+
nil
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def parse_attr(attr, value)
|
|
55
|
+
case attr
|
|
56
|
+
when NameAttrName
|
|
57
|
+
@name = XSD::QName.new(targetnamespace, value.source)
|
|
58
|
+
when BindingAttrName
|
|
59
|
+
@binding = value
|
|
60
|
+
else
|
|
61
|
+
nil
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
end
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# encoding: ASCII-8BIT
|
|
2
|
+
# WSDL4R - WSDL portType 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
|
+
require 'xsd/namedelements'
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
module WSDL
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class PortType < Info
|
|
18
|
+
attr_reader :name # required
|
|
19
|
+
attr_reader :operations
|
|
20
|
+
|
|
21
|
+
def targetnamespace
|
|
22
|
+
parent.targetnamespace
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def initialize
|
|
26
|
+
super
|
|
27
|
+
@name = nil
|
|
28
|
+
@operations = XSD::NamedElements.new
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# may be nil if not defined
|
|
32
|
+
def find_binding
|
|
33
|
+
root.bindings.find { |item| item.type == @name }
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def locations
|
|
37
|
+
binding = find_binding
|
|
38
|
+
return [] if binding.nil?
|
|
39
|
+
bind_name = binding.name
|
|
40
|
+
result = []
|
|
41
|
+
root.services.each do |service|
|
|
42
|
+
service.ports.each do |port|
|
|
43
|
+
if port.binding == bind_name
|
|
44
|
+
result << port.soap_address.location if port.soap_address
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
result
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def parse_element(element)
|
|
52
|
+
case element
|
|
53
|
+
when OperationName
|
|
54
|
+
o = Operation.new
|
|
55
|
+
@operations << o
|
|
56
|
+
o
|
|
57
|
+
when DocumentationName
|
|
58
|
+
o = Documentation.new
|
|
59
|
+
o
|
|
60
|
+
else
|
|
61
|
+
nil
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def parse_attr(attr, value)
|
|
66
|
+
case attr
|
|
67
|
+
when NameAttrName
|
|
68
|
+
@name = XSD::QName.new(targetnamespace, value.source)
|
|
69
|
+
else
|
|
70
|
+
nil
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
end
|
data/lib/wsdl/service.rb
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# encoding: ASCII-8BIT
|
|
2
|
+
# WSDL4R - WSDL service 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
|
+
require 'xsd/namedelements'
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
module WSDL
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class Service < Info
|
|
18
|
+
attr_reader :name # required
|
|
19
|
+
attr_reader :ports
|
|
20
|
+
attr_reader :soap_address
|
|
21
|
+
|
|
22
|
+
def initialize
|
|
23
|
+
super
|
|
24
|
+
@name = nil
|
|
25
|
+
@ports = XSD::NamedElements.new
|
|
26
|
+
@soap_address = nil
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def targetnamespace
|
|
30
|
+
parent.targetnamespace
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def parse_element(element)
|
|
34
|
+
case element
|
|
35
|
+
when PortName
|
|
36
|
+
o = Port.new
|
|
37
|
+
@ports << o
|
|
38
|
+
o
|
|
39
|
+
when SOAPAddressName
|
|
40
|
+
o = WSDL::SOAP::Address.new
|
|
41
|
+
@soap_address = o
|
|
42
|
+
o
|
|
43
|
+
when DocumentationName
|
|
44
|
+
o = Documentation.new
|
|
45
|
+
o
|
|
46
|
+
else
|
|
47
|
+
nil
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def parse_attr(attr, value)
|
|
52
|
+
case attr
|
|
53
|
+
when NameAttrName
|
|
54
|
+
@name = XSD::QName.new(targetnamespace, value.source)
|
|
55
|
+
else
|
|
56
|
+
nil
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# encoding: ASCII-8BIT
|
|
2
|
+
# WSDL4R - WSDL SOAP address 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 Address < Info
|
|
18
|
+
attr_reader :location
|
|
19
|
+
|
|
20
|
+
def initialize
|
|
21
|
+
super
|
|
22
|
+
@location = nil
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def parse_element(element)
|
|
26
|
+
nil
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def parse_attr(attr, value)
|
|
30
|
+
case attr
|
|
31
|
+
when LocationAttrName
|
|
32
|
+
@location = value.source
|
|
33
|
+
else
|
|
34
|
+
nil
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# encoding: ASCII-8BIT
|
|
2
|
+
# WSDL4R - WSDL SOAP binding 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 Binding < Info
|
|
18
|
+
attr_reader :style
|
|
19
|
+
attr_reader :transport
|
|
20
|
+
|
|
21
|
+
def initialize
|
|
22
|
+
super
|
|
23
|
+
@style = nil
|
|
24
|
+
@transport = nil
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def parse_element(element)
|
|
28
|
+
nil
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def parse_attr(attr, value)
|
|
32
|
+
case attr
|
|
33
|
+
when StyleAttrName
|
|
34
|
+
if ["document", "rpc"].include?(value.source)
|
|
35
|
+
@style = value.source.intern
|
|
36
|
+
else
|
|
37
|
+
raise Parser::AttributeConstraintError.new(
|
|
38
|
+
"Unexpected value #{ value }.")
|
|
39
|
+
end
|
|
40
|
+
when TransportAttrName
|
|
41
|
+
@transport = value.source
|
|
42
|
+
else
|
|
43
|
+
nil
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
end
|
|
50
|
+
end
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# encoding: ASCII-8BIT
|
|
2
|
+
# WSDL4R - WSDL SOAP body 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 Body < Info
|
|
18
|
+
attr_reader :parts
|
|
19
|
+
attr_reader :use # required
|
|
20
|
+
attr_reader :encodingstyle
|
|
21
|
+
attr_reader :namespace
|
|
22
|
+
|
|
23
|
+
def initialize
|
|
24
|
+
super
|
|
25
|
+
@parts = nil
|
|
26
|
+
@use = nil
|
|
27
|
+
@encodingstyle = nil
|
|
28
|
+
@namespace = nil
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def parse_element(element)
|
|
32
|
+
nil
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def parse_attr(attr, value)
|
|
36
|
+
case attr
|
|
37
|
+
when PartsAttrName
|
|
38
|
+
@parts = value.source
|
|
39
|
+
when UseAttrName
|
|
40
|
+
if ['literal', 'encoded'].include?(value.source)
|
|
41
|
+
@use = value.source.intern
|
|
42
|
+
else
|
|
43
|
+
raise RuntimeError.new("unknown use of soap:body: #{value.source}")
|
|
44
|
+
end
|
|
45
|
+
when EncodingStyleAttrName
|
|
46
|
+
@encodingstyle = value.source
|
|
47
|
+
@encodingstyle = nil if @encodingstyle.to_s.empty?
|
|
48
|
+
value.source
|
|
49
|
+
when NamespaceAttrName
|
|
50
|
+
@namespace = value.source
|
|
51
|
+
else
|
|
52
|
+
nil
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
end
|
|
59
|
+
end
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# encoding: ASCII-8BIT
|
|
2
|
+
# WSDL4R - Creating CGI stub code 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/mappingRegistryCreator'
|
|
12
|
+
require 'wsdl/soap/methodDefCreator'
|
|
13
|
+
require 'wsdl/soap/classDefCreatorSupport'
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
module WSDL
|
|
17
|
+
module SOAP
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class CGIStubCreator
|
|
21
|
+
include ClassDefCreatorSupport
|
|
22
|
+
|
|
23
|
+
attr_reader :definitions
|
|
24
|
+
|
|
25
|
+
def initialize(definitions, name_creator, modulepath = nil)
|
|
26
|
+
@definitions = definitions
|
|
27
|
+
@name_creator = name_creator
|
|
28
|
+
@modulepath = modulepath
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def dump(service_name)
|
|
32
|
+
warn("CGI stub can have only 1 port. Creating stub for the first port... Rests are ignored.")
|
|
33
|
+
services = @definitions.service(service_name)
|
|
34
|
+
unless services
|
|
35
|
+
raise RuntimeError.new("service not defined: #{service_name}")
|
|
36
|
+
end
|
|
37
|
+
ports = services.ports
|
|
38
|
+
if ports.empty?
|
|
39
|
+
raise RuntimeError.new("ports not found for #{service_name}")
|
|
40
|
+
end
|
|
41
|
+
port = ports[0]
|
|
42
|
+
if port.porttype.nil?
|
|
43
|
+
raise RuntimeError.new("porttype not found for #{port}")
|
|
44
|
+
end
|
|
45
|
+
dump_porttype(port.porttype)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
private
|
|
49
|
+
|
|
50
|
+
def dump_porttype(porttype)
|
|
51
|
+
class_name = mapped_class_name(porttype.name, @modulepath)
|
|
52
|
+
defined_const = {}
|
|
53
|
+
methoddef = MethodDefCreator.new(@definitions, @name_creator, @modulepath, defined_const).dump(porttype.name)
|
|
54
|
+
wsdl_name = @definitions.name ? @definitions.name.name : 'default'
|
|
55
|
+
mrname = safeconstname(wsdl_name + 'MappingRegistry')
|
|
56
|
+
c1 = XSD::CodeGen::ClassDef.new(class_name)
|
|
57
|
+
c1.def_require("soap/rpc/cgistub")
|
|
58
|
+
c1.def_code <<-EOD
|
|
59
|
+
Methods = [
|
|
60
|
+
#{methoddef.gsub(/^/, " ")}
|
|
61
|
+
]
|
|
62
|
+
EOD
|
|
63
|
+
defined_const.each do |ns, tag|
|
|
64
|
+
c1.def_const(tag, dq(ns))
|
|
65
|
+
end
|
|
66
|
+
c2 = XSD::CodeGen::ClassDef.new(class_name + "App",
|
|
67
|
+
"::SOAP::RPC::CGIStub")
|
|
68
|
+
c2.def_method("initialize", "*arg") do
|
|
69
|
+
<<-EOD
|
|
70
|
+
super(*arg)
|
|
71
|
+
servant = #{class_name}.new
|
|
72
|
+
#{class_name}::Methods.each do |definitions|
|
|
73
|
+
opt = definitions.last
|
|
74
|
+
if opt[:request_style] == :document
|
|
75
|
+
@router.add_document_operation(servant, *definitions)
|
|
76
|
+
else
|
|
77
|
+
@router.add_rpc_operation(servant, *definitions)
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
self.mapping_registry = #{mrname}::EncodedRegistry
|
|
81
|
+
self.literal_mapping_registry = #{mrname}::LiteralRegistry
|
|
82
|
+
self.level = Logger::Severity::ERROR
|
|
83
|
+
EOD
|
|
84
|
+
end
|
|
85
|
+
c1.dump + "\n" + c2.dump + format(<<-EOD)
|
|
86
|
+
#{class_name}App.new('app', nil).start
|
|
87
|
+
EOD
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
end
|
|
93
|
+
end
|