soap4r 1.5.5.20061022 → 1.5.6
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/wsdl2ruby.rb +8 -8
- data/lib/soap/XMLSchemaDatatypes.rb +1 -1
- data/lib/soap/XMLSchemaDatatypes1999.rb +1 -1
- data/lib/soap/attachment.rb +1 -1
- data/lib/soap/baseData.rb +102 -54
- data/lib/soap/cgistub.rb +1 -1
- data/lib/soap/charset.rb +1 -1
- data/lib/soap/driver.rb +1 -1
- data/lib/soap/element.rb +20 -12
- data/lib/soap/encodingstyle/aspDotNetHandler.rb +2 -2
- data/lib/soap/encodingstyle/handler.rb +1 -1
- data/lib/soap/encodingstyle/literalHandler.rb +29 -73
- data/lib/soap/encodingstyle/soapHandler.rb +8 -7
- data/lib/soap/filter.rb +10 -0
- data/lib/soap/filter/filterchain.rb +51 -0
- data/lib/soap/filter/handler.rb +31 -0
- data/lib/soap/generator.rb +11 -3
- data/lib/soap/header/handler.rb +6 -5
- data/lib/soap/header/handlerset.rb +7 -7
- data/lib/soap/header/simplehandler.rb +1 -1
- data/lib/soap/httpconfigloader.rb +7 -2
- data/lib/soap/mapping.rb +1 -1
- data/lib/soap/mapping/encodedregistry.rb +36 -26
- data/lib/soap/mapping/encodedregistry.rb~ +531 -0
- data/lib/soap/mapping/factory.rb +2 -2
- data/lib/soap/mapping/literalregistry.rb +107 -67
- data/lib/soap/mapping/mapping.rb +92 -112
- data/lib/soap/mapping/registry.rb +25 -8
- data/lib/soap/mapping/rubytypeFactory.rb +1 -1
- data/lib/soap/mapping/schemadefinition.rb +163 -0
- data/lib/soap/mapping/typeMap.rb +7 -1
- data/lib/soap/mapping/wsdlencodedregistry.rb +2 -2
- data/lib/soap/mapping/wsdlliteralregistry.rb +14 -23
- data/lib/soap/mappingRegistry.rb +1 -1
- data/lib/soap/marshal.rb +1 -1
- data/lib/soap/namespace.rb +1 -1
- data/lib/soap/netHttpClient.rb +43 -13
- data/lib/soap/parser.rb +40 -42
- data/lib/soap/processor.rb +1 -1
- data/lib/soap/property.rb +7 -7
- data/lib/soap/proxy.rb +1 -1
- data/lib/soap/qname.rb +1 -1
- data/lib/soap/rpc/cgistub.rb +34 -1
- data/lib/soap/rpc/driver.rb +2 -1
- data/lib/soap/rpc/element.rb +42 -15
- data/lib/soap/rpc/httpserver.rb +13 -1
- data/lib/soap/rpc/proxy.rb +51 -41
- data/lib/soap/rpc/router.rb +88 -33
- data/lib/soap/rpc/rpc.rb +1 -1
- data/lib/soap/rpc/soaplet.rb +51 -3
- data/lib/soap/rpc/standaloneServer.rb +1 -1
- data/lib/soap/rpcRouter.rb +1 -1
- data/lib/soap/rpcUtils.rb +1 -1
- data/lib/soap/server.rb +1 -1
- data/lib/soap/soap.rb +2 -2
- data/lib/soap/standaloneServer.rb +1 -1
- data/lib/soap/streamHandler.rb +13 -4
- data/lib/soap/wsdlDriver.rb +11 -15
- data/lib/tags +5144 -0
- data/lib/wsdl/binding.rb +1 -1
- data/lib/wsdl/data.rb +1 -1
- data/lib/wsdl/definitions.rb +1 -1
- data/lib/wsdl/documentation.rb +1 -1
- data/lib/wsdl/import.rb +1 -1
- data/lib/wsdl/importer.rb +1 -1
- data/lib/wsdl/info.rb +1 -1
- data/lib/wsdl/message.rb +1 -1
- data/lib/wsdl/operation.rb +10 -7
- data/lib/wsdl/operationBinding.rb +19 -5
- data/lib/wsdl/param.rb +11 -3
- data/lib/wsdl/parser.rb +4 -3
- data/lib/wsdl/part.rb +1 -1
- data/lib/wsdl/port.rb +1 -1
- data/lib/wsdl/portType.rb +1 -1
- data/lib/wsdl/service.rb +1 -1
- data/lib/wsdl/soap/address.rb +1 -1
- data/lib/wsdl/soap/binding.rb +1 -1
- data/lib/wsdl/soap/body.rb +3 -1
- data/lib/wsdl/soap/cgiStubCreator.rb +1 -1
- data/lib/wsdl/soap/classDefCreator.rb +78 -14
- data/lib/wsdl/soap/classDefCreatorSupport.rb +28 -11
- data/lib/wsdl/soap/clientSkeltonCreator.rb +3 -2
- data/lib/wsdl/soap/complexType.rb +8 -11
- data/lib/wsdl/soap/data.rb +1 -1
- data/lib/wsdl/soap/definitions.rb +49 -4
- data/lib/wsdl/soap/driverCreator.rb +1 -1
- data/lib/wsdl/soap/element.rb +3 -2
- data/lib/wsdl/soap/encodedMappingRegistryCreator.rb +1 -1
- data/lib/wsdl/soap/fault.rb +1 -1
- data/lib/wsdl/soap/header.rb +1 -1
- data/lib/wsdl/soap/headerfault.rb +1 -1
- data/lib/wsdl/soap/literalMappingRegistryCreator.rb +41 -21
- data/lib/wsdl/soap/mappingRegistryCreator.rb +2 -1
- data/lib/wsdl/soap/mappingRegistryCreatorSupport.rb +45 -19
- data/lib/wsdl/soap/methodDefCreator.rb +28 -17
- data/lib/wsdl/soap/operation.rb +11 -11
- data/lib/wsdl/soap/servantSkeltonCreator.rb +3 -2
- data/lib/wsdl/soap/standaloneServerStubCreator.rb +1 -1
- data/lib/wsdl/soap/wsdl2ruby.rb +8 -2
- data/lib/wsdl/types.rb +1 -1
- data/lib/wsdl/wsdl.rb +1 -1
- data/lib/wsdl/xmlSchema/all.rb +1 -1
- data/lib/wsdl/xmlSchema/annotation.rb +1 -1
- data/lib/wsdl/xmlSchema/any.rb +10 -5
- data/lib/wsdl/xmlSchema/attribute.rb +1 -1
- data/lib/wsdl/xmlSchema/choice.rb +1 -1
- data/lib/wsdl/xmlSchema/complexContent.rb +11 -2
- data/lib/wsdl/xmlSchema/complexExtension.rb +8 -1
- data/lib/wsdl/xmlSchema/complexRestriction.rb +6 -2
- data/lib/wsdl/xmlSchema/complexType.rb +9 -1
- data/lib/wsdl/xmlSchema/content.rb +26 -5
- data/lib/wsdl/xmlSchema/data.rb +4 -1
- data/lib/wsdl/xmlSchema/element.rb +12 -9
- data/lib/wsdl/xmlSchema/enumeration.rb +1 -1
- data/lib/wsdl/xmlSchema/import.rb +1 -1
- data/lib/wsdl/xmlSchema/importer.rb +9 -6
- data/lib/wsdl/xmlSchema/include.rb +1 -1
- data/lib/wsdl/xmlSchema/length.rb +1 -1
- data/lib/wsdl/xmlSchema/list.rb +1 -1
- data/lib/wsdl/xmlSchema/maxlength.rb +1 -1
- data/lib/wsdl/xmlSchema/minlength.rb +1 -1
- data/lib/wsdl/xmlSchema/parser.rb +4 -3
- data/lib/wsdl/xmlSchema/pattern.rb +1 -1
- data/lib/wsdl/xmlSchema/schema.rb +1 -1
- data/lib/wsdl/xmlSchema/sequence.rb +1 -1
- data/lib/wsdl/xmlSchema/simpleContent.rb +1 -1
- data/lib/wsdl/xmlSchema/simpleExtension.rb +1 -1
- data/lib/wsdl/xmlSchema/simpleRestriction.rb +1 -1
- data/lib/wsdl/xmlSchema/simpleType.rb +8 -1
- data/lib/wsdl/xmlSchema/union.rb +35 -0
- data/lib/wsdl/xmlSchema/unique.rb +1 -1
- data/lib/wsdl/xmlSchema/xsd2ruby.rb +6 -1
- data/lib/xsd/charset.rb +1 -1
- data/lib/xsd/classloader.rb +26 -0
- data/lib/xsd/codegen.rb +1 -1
- data/lib/xsd/codegen/classdef.rb +1 -1
- data/lib/xsd/codegen/commentdef.rb +1 -1
- data/lib/xsd/codegen/gensupport.rb +119 -14
- data/lib/xsd/codegen/methoddef.rb +1 -1
- data/lib/xsd/codegen/moduledef.rb +1 -1
- data/lib/xsd/datatypes.rb +52 -13
- data/lib/xsd/datatypes1999.rb +1 -1
- data/lib/xsd/iconvcharset.rb +1 -1
- data/lib/xsd/mapping.rb +1 -1
- data/lib/xsd/namedelements.rb +1 -1
- data/lib/xsd/ns.rb +2 -2
- data/lib/xsd/qname.rb +1 -1
- data/lib/xsd/xmlparser.rb +16 -3
- data/lib/xsd/xmlparser/parser.rb +6 -2
- data/lib/xsd/xmlparser/rexmlparser.rb +5 -1
- data/lib/xsd/xmlparser/xmlparser.rb +1 -1
- data/lib/xsd/xmlparser/xmlscanner.rb +4 -2
- data/test/interopR2/InteropTest.rb +83 -0
- data/test/interopR2/InteropTest.wsdl +315 -0
- data/test/interopR2/InteropTestC.wsdl +208 -0
- data/test/interopR2/InteropTestDriver.rb +328 -0
- data/test/interopR2/SOAP4R_SOAPBuildersInteropTest_R2.wsdl +461 -0
- data/test/interopR2/SOAP4R_SOAPBuildersInteropTest_R2GroupB.wsdl +20 -0
- data/test/interopR2/SOAP4R_SOAPBuildersInteropTest_R2GroupCClient.rb +178 -0
- data/test/interopR2/SOAPBuildersInterop_R2GrC.wsdl +17 -0
- data/test/interopR2/clientBase.rb +0 -3
- data/test/interopR2/groupc.wsdl +17 -0
- data/test/interopR2/result_client.NetRemoting.txt +0 -4593
- data/test/interopR2/test.sh +9 -9
- data/test/runner.rb +1 -3
- data/test/soap/asp.net/test_aspdotnet.rb +20 -9
- data/test/soap/case/test_mapping.rb +57 -0
- data/test/soap/filter/test_filter.rb +146 -0
- data/test/soap/literalArrayMapping/test_definedarray.rb +7 -9
- data/test/soap/marshal/marshaltestlib.rb +1 -1
- data/test/soap/ssl/test_ssl.rb +0 -10
- data/test/soap/struct/test_struct.rb +2 -9
- data/test/soap/test_basetype.rb +114 -0
- data/test/soap/test_empty.rb +26 -2
- data/test/soap/test_envelopenamespace.rb +2 -9
- data/test/soap/test_extraattr.rb +55 -0
- data/test/soap/test_httpconfigloader.rb +17 -0
- data/test/soap/test_property.rb +4 -1
- data/test/soap/test_response_as_xml.rb +31 -9
- data/test/soap/test_soapelement.rb +21 -3
- data/test/soap/test_streamhandler.rb +3 -10
- data/test/soap/test_styleuse.rb +2 -9
- data/test/soap/wsdlDriver/test_calc.rb +3 -20
- data/test/soap/wsdlDriver/test_document.rb +2 -9
- data/test/soap/wsdlDriver/test_simpletype.rb +2 -9
- data/test/testutil.rb +54 -0
- data/test/wsdl/abstract/abstract.wsdl +82 -3
- data/test/wsdl/abstract/test_abstract.rb +48 -19
- data/test/wsdl/any/any.wsdl +63 -0
- data/test/wsdl/any/expectedDriver.rb +22 -1
- data/test/wsdl/any/expectedEcho.rb +19 -0
- data/test/wsdl/any/expectedService.rb +29 -4
- data/test/wsdl/any/test_any.rb +36 -31
- data/test/wsdl/choice/choice.wsdl +37 -0
- data/test/wsdl/choice/test_choice.rb +66 -17
- data/test/wsdl/complexcontent/test_echo.rb +7 -18
- data/test/wsdl/document/array/test_array.rb +8 -18
- data/test/wsdl/document/ping_nosoapaction.wsdl +1 -1
- data/test/wsdl/document/test_nosoapaction.rb +2 -9
- data/test/wsdl/document/test_number.rb +3 -10
- data/test/wsdl/document/test_rpc.rb +96 -21
- data/test/wsdl/fault/fault.wsdl +79 -0
- data/test/wsdl/fault/multifault.wsdl +96 -0
- data/test/wsdl/fault/test_fault.rb +119 -0
- data/test/wsdl/fault/test_multifault.rb +134 -0
- data/test/wsdl/list/test_list.rb +6 -16
- data/test/wsdl/marshal/test_wsdlmarshal.rb +10 -13
- data/test/wsdl/oneway/oneway.wsdl +36 -0
- data/test/wsdl/oneway/test_oneway.rb +108 -0
- data/test/wsdl/overload/test_overload.rb +3 -10
- data/test/wsdl/qualified/test_qualified.rb +9 -17
- data/test/wsdl/qualified/test_unqualified.rb +14 -21
- data/test/wsdl/ref/expectedDriver.rb +51 -0
- data/test/wsdl/ref/expectedProduct.rb +71 -71
- data/test/wsdl/ref/test_ref.rb +13 -35
- data/test/wsdl/rpc/rpc.wsdl +27 -1
- data/test/wsdl/rpc/test-rpc-lit-qualified.wsdl +74 -0
- data/test/wsdl/rpc/test-rpc-lit.wsdl +11 -4
- data/test/wsdl/rpc/test-rpc-lit12.wsdl +455 -0
- data/test/wsdl/rpc/test_rpc.rb +20 -19
- data/test/wsdl/rpc/test_rpc_lit.rb +82 -29
- data/test/wsdl/simplecontent/simplecontent.wsdl +1 -0
- data/test/wsdl/simplecontent/test_simplecontent.rb +5 -19
- data/test/wsdl/simpletype/rpc/expectedDriver.rb +6 -4
- data/test/wsdl/simpletype/rpc/expectedEchoVersion.rb +15 -0
- data/test/wsdl/simpletype/rpc/expectedMappingRegistry.rb +64 -0
- data/test/wsdl/simpletype/rpc/expectedService.rb +6 -4
- data/test/wsdl/simpletype/rpc/rpc.wsdl +18 -0
- data/test/wsdl/simpletype/rpc/test_rpc.rb +6 -16
- data/test/wsdl/simpletype/simpletype.wsdl +19 -0
- data/test/wsdl/simpletype/test_simpletype.rb +2 -9
- data/test/wsdl/soap/wsdl2ruby/expectedDriver.rb +6 -4
- data/test/wsdl/soap/wsdl2ruby/expectedMappingRegistry.rb +40 -0
- data/test/wsdl/soap/wsdl2ruby/expectedService.cgi +6 -4
- data/test/wsdl/soap/wsdl2ruby/expectedService.rb +6 -4
- data/test/wsdl/soap/wsdl2ruby/section/test_section.rb +5 -6
- data/test/wsdl/soap/wsdl2ruby/soapenc/test_soapenc.rb +3 -16
- data/test/wsdl/soap/wsdl2ruby/test_wsdl2ruby.rb +9 -17
- data/test/wsdl/soaptype/test_soaptype.rb +29 -11
- data/test/xsd/test_xsd.rb +115 -1
- metadata +421 -454
- data/test/interopR2/client.NetRemoting.rb.result +0 -3410
- data/test/interopR2/client.NetRemoting_Base.log +0 -6279
- data/test/interopR2/client.NetRemoting_GroupB.log +0 -1188
- data/test/interopR2/client4S4C2_Base.log +0 -4955
- data/test/interopR2/client4S4C2_GroupB.log +0 -1000
- data/test/interopR2/client4S4C_Base.log +0 -4635
- data/test/interopR2/client4S4C_GroupB.log +0 -900
- data/test/interopR2/clientASP.NET_Base.log +0 -5468
- data/test/interopR2/clientASP.NET_GroupB.log +0 -977
- data/test/interopR2/clientApacheAxis_Base.log +0 -3171
- data/test/interopR2/clientApacheAxis_GroupB.log +0 -498
- data/test/interopR2/clientApacheSOAP_Base.log +0 -3171
- data/test/interopR2/clientBEAWebLogic_Base.log +0 -3171
- data/test/interopR2/clientBEAWebLogic_GroupB.log +0 -498
- data/test/interopR2/clientCapeConnect_Base.log +0 -2126
- data/test/interopR2/clientDelphi_Base.log +0 -0
- data/test/interopR2/clientEasySoap_Base.log +0 -6187
- data/test/interopR2/clientEasySoap_GroupB.log +0 -1076
- data/test/interopR2/clientFrontier_Base.log +0 -5188
- data/test/interopR2/clientHP_Base.log +0 -3171
- data/test/interopR2/clientHP_GroupB.log +0 -498
- data/test/interopR2/clientJSOAP_Base.log +0 -4465
- data/test/interopR2/clientJSOAP_GroupB.log +0 -824
- data/test/interopR2/clientKafkaXSLT_Base.log +0 -10299
- data/test/interopR2/clientKafkaXSLT_GroupB.log +0 -1739
- data/test/interopR2/clientMSSOAPToolkit2.0_Base.log +0 -4805
- data/test/interopR2/clientMSSOAPToolkit2.0_GroupB.log +0 -871
- data/test/interopR2/clientMSSOAPToolkit3.0_Base.log +0 -5076
- data/test/interopR2/clientMSSOAPToolkit3.0_GroupB.log +0 -908
- data/test/interopR2/clientNuSOAP_Base.log +0 -5076
- data/test/interopR2/clientNuSOAP_GroupB.log +0 -958
- data/test/interopR2/clientNuWave_Base.log +0 -2019
- data/test/interopR2/clientOpenLink_Base.log +0 -6171
- data/test/interopR2/clientOpenLink_GroupB.log +0 -1094
- data/test/interopR2/clientOracle_Base.log +0 -5594
- data/test/interopR2/clientPEAR_Base.log +0 -6261
- data/test/interopR2/clientPEAR_GroupB.log +0 -1106
- data/test/interopR2/clientPhalanx_Base.log +0 -41036
- data/test/interopR2/clientPhalanx_GroupB.log +0 -6519
- data/test/interopR2/clientSIMACE_Base.log +0 -6171
- data/test/interopR2/clientSIMACE_GroupB.log +0 -1093
- data/test/interopR2/clientSOAP4R.rb.result +0 -3409
- data/test/interopR2/clientSOAP4R_Base.log +0 -6366
- data/test/interopR2/clientSOAP4R_GroupB.log +0 -1112
- data/test/interopR2/clientSQLData_Base.log +0 -4857
- data/test/interopR2/clientSQLData_GroupB.log +0 -770
- data/test/interopR2/clientSilverStream_Base.log +0 -3171
- data/test/interopR2/clientSpray2001_Base.log +0 -8187
- data/test/interopR2/clientSpray2001_GroupB.log +0 -1408
- data/test/interopR2/clientSun_Base.log +0 -4641
- data/test/interopR2/clientSun_GroupB.log +0 -856
- data/test/interopR2/clientVWOpentalkSoap_Base.log +0 -5402
- data/test/interopR2/clientVWOpentalkSoap_GroupB.log +0 -972
- data/test/interopR2/clientWASPC_Base.log +0 -4187
- data/test/interopR2/clientWASPC_GroupB.log +0 -763
- data/test/interopR2/clientWASP_Base.log +0 -5414
- data/test/interopR2/clientWASP_GroupB.log +0 -970
- data/test/interopR2/clientWebMethods_Base.log +0 -3075
- data/test/interopR2/clientWebMethods_GroupB.log +0 -483
- data/test/interopR2/clientWhiteMesa_Base.log +0 -4359
- data/test/interopR2/clientWhiteMesa_GroupB.log +0 -808
- data/test/interopR2/clientWingfoot_Base.log +0 -4445
- data/test/interopR2/clientWingfoot_GroupB.log +0 -848
- data/test/interopR2/clientXMLBus_Base.log +0 -3075
- data/test/interopR2/clientXMLBus_GroupB.log +0 -483
- data/test/interopR2/clientXSOAP_Base.log +0 -4445
- data/test/interopR2/clienteSOAP_Base.log +0 -8728
- data/test/interopR2/clientgSOAP_Base.log +0 -4689
- data/test/interopR2/clientgSOAP_GroupB.log +0 -1014
- data/test/interopR2/clientkSOAP_Base.log +0 -5625
data/bin/wsdl2ruby.rb
CHANGED
@@ -96,15 +96,15 @@ __EOU__
|
|
96
96
|
when "--type"
|
97
97
|
case arg
|
98
98
|
when "server"
|
99
|
-
opt['classdef']
|
100
|
-
opt['mapping_registry']
|
101
|
-
opt['servant_skelton']
|
102
|
-
opt['standalone_server_stub']
|
99
|
+
opt['classdef'] ||= nil
|
100
|
+
opt['mapping_registry'] ||= nil
|
101
|
+
opt['servant_skelton'] ||= nil
|
102
|
+
opt['standalone_server_stub'] ||= nil
|
103
103
|
when "client"
|
104
|
-
opt['classdef']
|
105
|
-
opt['mapping_registry']
|
106
|
-
opt['driver']
|
107
|
-
opt['client_skelton']
|
104
|
+
opt['classdef'] ||= nil
|
105
|
+
opt['mapping_registry'] ||= nil
|
106
|
+
opt['driver'] ||= nil
|
107
|
+
opt['client_skelton'] ||= nil
|
108
108
|
else
|
109
109
|
raise ArgumentError.new("Unknown type #{ arg }")
|
110
110
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# soap/XMLSchemaDatatypes.rb: SOAP4R - XML Schema Datatype implementation.
|
2
|
-
# Copyright (C)
|
2
|
+
# Copyright (C) 2000-2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
|
3
3
|
|
4
4
|
# This program is copyrighted free software by NAKAMURA, Hiroshi. You can
|
5
5
|
# redistribute it and/or modify it under the same terms of Ruby's license;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# soap/XMLSchemaDatatypes1999.rb: SOAP4R - XML Schema Datatype 1999 support
|
2
|
-
# Copyright (C)
|
2
|
+
# Copyright (C) 2000-2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
|
3
3
|
|
4
4
|
# This program is copyrighted free software by NAKAMURA, Hiroshi. You can
|
5
5
|
# redistribute it and/or modify it under the same terms of Ruby's license;
|
data/lib/soap/attachment.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# soap/attachment.rb: SOAP4R - SwA implementation.
|
2
|
-
# Copyright (C)
|
2
|
+
# Copyright (C) 2000-2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
|
3
3
|
|
4
4
|
# This program is copyrighted free software by NAKAMURA, Hiroshi. You can
|
5
5
|
# redistribute it and/or modify it under the same terms of Ruby's license;
|
data/lib/soap/baseData.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# soap/baseData.rb: SOAP4R - Base type library
|
2
|
-
# Copyright (C) 2000
|
2
|
+
# Copyright (C) 2000-2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
|
3
3
|
|
4
4
|
# This program is copyrighted free software by NAKAMURA, Hiroshi. You can
|
5
5
|
# redistribute it and/or modify it under the same terms of Ruby's license;
|
@@ -8,6 +8,7 @@
|
|
8
8
|
|
9
9
|
require 'xsd/datatypes'
|
10
10
|
require 'soap/soap'
|
11
|
+
require 'xsd/codegen/gensupport'
|
11
12
|
|
12
13
|
|
13
14
|
module SOAP
|
@@ -238,6 +239,24 @@ class SOAPString < XSD::XSDString
|
|
238
239
|
SOAPENCType = QName.new(EncodingNamespace, StringLiteral)
|
239
240
|
end
|
240
241
|
|
242
|
+
class SOAPNormalizedString < XSD::XSDNormalizedString
|
243
|
+
include SOAPBasetype
|
244
|
+
extend SOAPModuleUtils
|
245
|
+
SOAPENCType = QName.new(EncodingNamespace, NormalizedStringLiteral)
|
246
|
+
end
|
247
|
+
|
248
|
+
class SOAPToken < XSD::XSDToken
|
249
|
+
include SOAPBasetype
|
250
|
+
extend SOAPModuleUtils
|
251
|
+
SOAPENCType = QName.new(EncodingNamespace, TokenLiteral)
|
252
|
+
end
|
253
|
+
|
254
|
+
class SOAPLanguage < XSD::XSDLanguage
|
255
|
+
include SOAPBasetype
|
256
|
+
extend SOAPModuleUtils
|
257
|
+
SOAPENCType = QName.new(EncodingNamespace, LanguageLiteral)
|
258
|
+
end
|
259
|
+
|
241
260
|
class SOAPBoolean < XSD::XSDBoolean
|
242
261
|
include SOAPBasetype
|
243
262
|
extend SOAPModuleUtils
|
@@ -493,6 +512,10 @@ public
|
|
493
512
|
@array
|
494
513
|
end
|
495
514
|
|
515
|
+
def have_member
|
516
|
+
!@array.empty?
|
517
|
+
end
|
518
|
+
|
496
519
|
def to_obj
|
497
520
|
hash = {}
|
498
521
|
proptype = {}
|
@@ -548,33 +571,21 @@ end
|
|
548
571
|
# SOAPElement is not typed so it is not derived from NSDBase.
|
549
572
|
class SOAPElement
|
550
573
|
include Enumerable
|
574
|
+
include SOAPCompoundtype
|
551
575
|
|
552
|
-
attr_accessor :
|
553
|
-
|
554
|
-
attr_accessor :
|
555
|
-
|
556
|
-
attr_reader :precedents
|
557
|
-
attr_accessor :root
|
558
|
-
attr_accessor :parent
|
559
|
-
attr_accessor :position
|
560
|
-
attr_accessor :extraattr
|
561
|
-
|
562
|
-
attr_accessor :qualified
|
576
|
+
attr_accessor :type
|
577
|
+
# Text interface.
|
578
|
+
attr_accessor :text
|
579
|
+
alias data text
|
563
580
|
|
564
581
|
def initialize(elename, text = nil)
|
582
|
+
super()
|
565
583
|
if !elename.is_a?(XSD::QName)
|
566
584
|
elename = XSD::QName.new(nil, elename)
|
567
585
|
end
|
568
586
|
@encodingstyle = LiteralNamespace
|
569
587
|
@elename = elename
|
570
|
-
@
|
571
|
-
@precedents = []
|
572
|
-
@root = false
|
573
|
-
@parent = nil
|
574
|
-
@position = nil
|
575
|
-
@extraattr = {}
|
576
|
-
|
577
|
-
@qualified = nil
|
588
|
+
@type = nil
|
578
589
|
|
579
590
|
@array = []
|
580
591
|
@data = []
|
@@ -587,9 +598,9 @@ class SOAPElement
|
|
587
598
|
@data.collect { |ele| "\n#{ele.inspect}" }.join.gsub(/^/, ' ')
|
588
599
|
end
|
589
600
|
|
590
|
-
|
591
|
-
|
592
|
-
|
601
|
+
def set(value)
|
602
|
+
@text = value
|
603
|
+
end
|
593
604
|
|
594
605
|
# Element interfaces.
|
595
606
|
def add(value)
|
@@ -621,6 +632,10 @@ class SOAPElement
|
|
621
632
|
@array
|
622
633
|
end
|
623
634
|
|
635
|
+
def have_member
|
636
|
+
!@array.empty?
|
637
|
+
end
|
638
|
+
|
624
639
|
def to_obj
|
625
640
|
if members.empty?
|
626
641
|
@text
|
@@ -670,23 +685,41 @@ class SOAPElement
|
|
670
685
|
}
|
671
686
|
end
|
672
687
|
|
688
|
+
# when obj is a Hash or an Array:
|
689
|
+
# when key starts with "xmlattr_":
|
690
|
+
# value is added as an XML attribute with the key name however the
|
691
|
+
# "xmlattr_" is dropped from the name.
|
692
|
+
# when key starts with "xmlele_":
|
693
|
+
# value is added as an XML element with the key name however the
|
694
|
+
# "xmlele_" is dropped from the name.
|
695
|
+
# if else:
|
696
|
+
# value is added as an XML element with the key name.
|
673
697
|
def self.from_obj(obj, namespace = nil)
|
674
698
|
o = SOAPElement.new(nil)
|
675
699
|
case obj
|
676
700
|
when nil
|
677
701
|
o.text = nil
|
678
702
|
when Hash, Array
|
679
|
-
obj.each do |
|
703
|
+
obj.each do |name, value|
|
704
|
+
addname, is_attr = parse_name(name, namespace)
|
680
705
|
if value.is_a?(Array)
|
681
706
|
value.each do |subvalue|
|
682
|
-
|
683
|
-
|
684
|
-
|
707
|
+
if is_attr
|
708
|
+
o.extraattr[addname] = subvalue
|
709
|
+
else
|
710
|
+
child = from_obj(subvalue, namespace)
|
711
|
+
child.elename = addname
|
712
|
+
o.add(child)
|
713
|
+
end
|
685
714
|
end
|
686
715
|
else
|
687
|
-
|
688
|
-
|
689
|
-
|
716
|
+
if is_attr
|
717
|
+
o.extraattr[addname] = value
|
718
|
+
else
|
719
|
+
child = from_obj(value, namespace)
|
720
|
+
child.elename = addname
|
721
|
+
o.add(child)
|
722
|
+
end
|
690
723
|
end
|
691
724
|
end
|
692
725
|
else
|
@@ -695,7 +728,20 @@ class SOAPElement
|
|
695
728
|
o
|
696
729
|
end
|
697
730
|
|
698
|
-
def self.
|
731
|
+
def self.parse_name(obj, namespace = nil)
|
732
|
+
qname = to_qname(obj, namespace)
|
733
|
+
if /\Axmlele_/ =~ qname.name
|
734
|
+
qname = XSD::QName.new(qname.namespace, qname.name.sub(/\Axmlele_/, ''))
|
735
|
+
return qname, false
|
736
|
+
elsif /\Axmlattr_/ =~ qname.name
|
737
|
+
qname = XSD::QName.new(qname.namespace, qname.name.sub(/\Axmlattr_/, ''))
|
738
|
+
return qname, true
|
739
|
+
else
|
740
|
+
return qname, false
|
741
|
+
end
|
742
|
+
end
|
743
|
+
|
744
|
+
def self.to_qname(obj, namespace = nil)
|
699
745
|
if obj.is_a?(XSD::QName)
|
700
746
|
obj
|
701
747
|
elsif /\A(.+):([^:]+)\z/ =~ obj.to_s
|
@@ -708,35 +754,33 @@ class SOAPElement
|
|
708
754
|
private
|
709
755
|
|
710
756
|
def add_member(name, value)
|
711
|
-
add_accessor(name)
|
712
757
|
@array.push(name)
|
713
758
|
@data.push(value)
|
714
759
|
value.parent = self if value.respond_to?(:parent=)
|
715
760
|
value
|
716
761
|
end
|
762
|
+
end
|
717
763
|
|
718
|
-
|
719
|
-
|
720
|
-
|
721
|
-
|
722
|
-
|
723
|
-
|
724
|
-
|
725
|
-
|
726
|
-
|
727
|
-
|
728
|
-
|
729
|
-
|
730
|
-
|
731
|
-
|
732
|
-
|
733
|
-
|
734
|
-
|
735
|
-
|
736
|
-
|
737
|
-
|
738
|
-
EOS
|
739
|
-
end
|
764
|
+
|
765
|
+
class SOAPRawData < SOAPElement
|
766
|
+
def initialize(obj)
|
767
|
+
super(XSD::QName::EMPTY)
|
768
|
+
@obj = obj
|
769
|
+
end
|
770
|
+
|
771
|
+
def to_xmlpart
|
772
|
+
@obj.to_xmlpart
|
773
|
+
end
|
774
|
+
end
|
775
|
+
|
776
|
+
|
777
|
+
class SOAPREXMLElementWrap
|
778
|
+
def initialize(ele)
|
779
|
+
@ele = ele
|
780
|
+
end
|
781
|
+
|
782
|
+
def to_xmlpart
|
783
|
+
@ele.to_s
|
740
784
|
end
|
741
785
|
end
|
742
786
|
|
@@ -775,6 +819,10 @@ public
|
|
775
819
|
self[*(@offset)] = value
|
776
820
|
end
|
777
821
|
|
822
|
+
def have_member
|
823
|
+
!@data.empty?
|
824
|
+
end
|
825
|
+
|
778
826
|
def [](*idxary)
|
779
827
|
if idxary.size != @rank
|
780
828
|
raise ArgumentError.new("given #{idxary.size} params does not match rank: #{@rank}")
|
data/lib/soap/cgistub.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# SOAP4R - CGI stub library
|
2
|
-
# Copyright (C)
|
2
|
+
# Copyright (C) 2000-2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
|
3
3
|
|
4
4
|
# This program is copyrighted free software by NAKAMURA, Hiroshi. You can
|
5
5
|
# redistribute it and/or modify it under the same terms of Ruby's license;
|
data/lib/soap/charset.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# SOAP4R - Charset encoding handler.
|
2
|
-
# Copyright (C)
|
2
|
+
# Copyright (C) 2000-2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
|
3
3
|
|
4
4
|
# This program is copyrighted free software by NAKAMURA, Hiroshi. You can
|
5
5
|
# redistribute it and/or modify it under the same terms of Ruby's license;
|
data/lib/soap/driver.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# SOAP4R - SOAP driver
|
2
|
-
# Copyright (C)
|
2
|
+
# Copyright (C) 2000-2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
|
3
3
|
|
4
4
|
# This program is copyrighted free software by NAKAMURA, Hiroshi. You can
|
5
5
|
# redistribute it and/or modify it under the same terms of Ruby's license;
|
data/lib/soap/element.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# SOAP4R - SOAP elements library
|
2
|
-
# Copyright (C) 2000
|
2
|
+
# Copyright (C) 2000-2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
|
3
3
|
|
4
4
|
# This program is copyrighted free software by NAKAMURA, Hiroshi. You can
|
5
5
|
# redistribute it and/or modify it under the same terms of Ruby's license;
|
@@ -95,11 +95,18 @@ end
|
|
95
95
|
class SOAPBody < SOAPStruct
|
96
96
|
include SOAPEnvelopeElement
|
97
97
|
|
98
|
+
attr_reader :is_fault
|
99
|
+
|
98
100
|
def initialize(data = nil, is_fault = false)
|
99
101
|
super(nil)
|
100
102
|
@elename = EleBodyName
|
101
103
|
@encodingstyle = nil
|
102
104
|
if data
|
105
|
+
if data.respond_to?(:to_xmlpart)
|
106
|
+
data = SOAP::SOAPRawData.new(data)
|
107
|
+
elsif defined?(::REXML) and data.is_a?(::REXML::Element)
|
108
|
+
data = SOAP::SOAPRawData.new(SOAP::SOAPREXMLElementWrap.new(data))
|
109
|
+
end
|
103
110
|
if data.respond_to?(:elename)
|
104
111
|
add(data.elename.name, data)
|
105
112
|
else
|
@@ -114,14 +121,10 @@ class SOAPBody < SOAPStruct
|
|
114
121
|
def encode(generator, ns, attrs = {})
|
115
122
|
name = ns.name(@elename)
|
116
123
|
generator.encode_tag(name, attrs)
|
117
|
-
|
118
|
-
yield(
|
119
|
-
else
|
120
|
-
@data.each do |data|
|
121
|
-
yield(data)
|
122
|
-
end
|
124
|
+
@data.each do |data|
|
125
|
+
yield(data)
|
123
126
|
end
|
124
|
-
generator.encode_tag_end(name,
|
127
|
+
generator.encode_tag_end(name, @data.size > 0)
|
125
128
|
end
|
126
129
|
|
127
130
|
def root_node
|
@@ -186,10 +189,13 @@ end
|
|
186
189
|
class SOAPHeader < SOAPStruct
|
187
190
|
include SOAPEnvelopeElement
|
188
191
|
|
192
|
+
attr_writer :force_encode
|
193
|
+
|
189
194
|
def initialize
|
190
195
|
super(nil)
|
191
196
|
@elename = EleHeaderName
|
192
197
|
@encodingstyle = nil
|
198
|
+
@force_encode = false
|
193
199
|
end
|
194
200
|
|
195
201
|
def encode(generator, ns, attrs = {})
|
@@ -198,7 +204,7 @@ class SOAPHeader < SOAPStruct
|
|
198
204
|
@data.each do |data|
|
199
205
|
yield(data)
|
200
206
|
end
|
201
|
-
generator.encode_tag_end(name,
|
207
|
+
generator.encode_tag_end(name, @data.size > 0)
|
202
208
|
end
|
203
209
|
|
204
210
|
def add(name, value)
|
@@ -213,6 +219,10 @@ class SOAPHeader < SOAPStruct
|
|
213
219
|
@data.length
|
214
220
|
end
|
215
221
|
alias size length
|
222
|
+
|
223
|
+
def encode?
|
224
|
+
@force_encode or length > 0
|
225
|
+
end
|
216
226
|
end
|
217
227
|
|
218
228
|
|
@@ -250,10 +260,8 @@ class SOAPEnvelope < XSD::NSDBase
|
|
250
260
|
SOAPGenerator.assign_ns(attrs, ns, elename.namespace, SOAPNamespaceTag)
|
251
261
|
name = ns.name(@elename)
|
252
262
|
generator.encode_tag(name, attrs)
|
253
|
-
|
254
|
-
yield(@header) if @header and @header.length > 0
|
263
|
+
yield(@header) if @header and @header.encode?
|
255
264
|
yield(@body)
|
256
|
-
|
257
265
|
generator.encode_tag_end(name, true)
|
258
266
|
end
|
259
267
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# SOAP4R - ASP.NET EncodingStyle handler library
|
2
|
-
# Copyright (C)
|
2
|
+
# Copyright (C) 2000-2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
|
3
3
|
|
4
4
|
# This program is copyrighted free software by NAKAMURA, Hiroshi. You can
|
5
5
|
# redistribute it and/or modify it under the same terms of Ruby's license;
|
@@ -67,7 +67,7 @@ class ASPDotNetHandler < Handler
|
|
67
67
|
|
68
68
|
def encode_data_end(generator, ns, data, parent)
|
69
69
|
name = generator.encode_name_end(ns, data)
|
70
|
-
cr = data.is_a?(SOAPCompoundtype)
|
70
|
+
cr = (data.is_a?(SOAPCompoundtype) and data.have_member)
|
71
71
|
generator.encode_tag_end(name, cr)
|
72
72
|
end
|
73
73
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# SOAP4R - EncodingStyle handler library
|
2
|
-
# Copyright (C)
|
2
|
+
# Copyright (C) 2000-2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
|
3
3
|
|
4
4
|
# This program is copyrighted free software by NAKAMURA, Hiroshi. You can
|
5
5
|
# redistribute it and/or modify it under the same terms of Ruby's license;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# SOAP4R - XML Literal EncodingStyle handler library
|
2
|
-
# Copyright (C)
|
2
|
+
# Copyright (C) 2000-2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
|
3
3
|
|
4
4
|
# This program is copyrighted free software by NAKAMURA, Hiroshi. You can
|
5
5
|
# redistribute it and/or modify it under the same terms of Ruby's license;
|
@@ -19,7 +19,7 @@ class LiteralHandler < Handler
|
|
19
19
|
|
20
20
|
def initialize(charset = nil)
|
21
21
|
super(charset)
|
22
|
-
@textbuf =
|
22
|
+
@textbuf = []
|
23
23
|
end
|
24
24
|
|
25
25
|
|
@@ -41,6 +41,10 @@ class LiteralHandler < Handler
|
|
41
41
|
attrs[key] = value
|
42
42
|
end
|
43
43
|
case data
|
44
|
+
when SOAPExternalReference
|
45
|
+
# do not encode SOAPExternalReference in
|
46
|
+
# literalHandler (which is used for literal service)
|
47
|
+
data.referred
|
44
48
|
when SOAPRawString
|
45
49
|
generator.encode_tag(name, attrs)
|
46
50
|
generator.encode_rawstring(data.to_s)
|
@@ -92,9 +96,11 @@ class LiteralHandler < Handler
|
|
92
96
|
end
|
93
97
|
|
94
98
|
def encode_data_end(generator, ns, data, parent)
|
99
|
+
# do not encode SOAPExternalReference in
|
100
|
+
# literalHandler (which is used for literal service)
|
101
|
+
return nil if data.is_a?(SOAPExternalReference)
|
95
102
|
name = generator.encode_name_end(ns, data)
|
96
|
-
cr = (data.is_a?(SOAPCompoundtype)
|
97
|
-
(data.is_a?(SOAPElement) and !data.text))
|
103
|
+
cr = (data.is_a?(SOAPCompoundtype) and data.have_member)
|
98
104
|
generator.encode_tag_end(name, cr)
|
99
105
|
end
|
100
106
|
|
@@ -102,74 +108,28 @@ class LiteralHandler < Handler
|
|
102
108
|
###
|
103
109
|
## decode interface.
|
104
110
|
#
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
class SOAPUnknown < SOAPTemporalObject
|
114
|
-
def initialize(handler, elename, extraattr)
|
115
|
-
super()
|
116
|
-
@handler = handler
|
117
|
-
@elename = elename
|
118
|
-
@extraattr = extraattr
|
119
|
-
end
|
120
|
-
|
121
|
-
def as_element
|
122
|
-
if @extraattr[XSD::AttrNilName] == 'true'
|
123
|
-
return as_nil
|
124
|
-
end
|
125
|
-
o = SOAPElement.decode(@elename)
|
126
|
-
o.parent = @parent
|
127
|
-
o.extraattr.update(@extraattr)
|
128
|
-
@handler.decode_parent(@parent, o)
|
129
|
-
o
|
130
|
-
end
|
131
|
-
|
132
|
-
def as_string
|
133
|
-
if @extraattr[XSD::AttrNilName] == 'true'
|
134
|
-
return as_nil
|
135
|
-
end
|
136
|
-
o = SOAPString.decode(@elename)
|
137
|
-
o.parent = @parent
|
138
|
-
o.extraattr.update(@extraattr)
|
139
|
-
@handler.decode_parent(@parent, o)
|
140
|
-
o
|
111
|
+
def decode_tag(ns, elename, attrs, parent)
|
112
|
+
@textbuf.clear
|
113
|
+
extraattrs = decode_attrs(ns, attrs)
|
114
|
+
if extraattrs[XSD::AttrNilName] == 'true'
|
115
|
+
o = SOAPNil.decode(elename)
|
116
|
+
else
|
117
|
+
o = SOAPElement.decode(elename)
|
141
118
|
end
|
142
|
-
|
143
|
-
|
144
|
-
o = SOAPNil.decode(@elename)
|
145
|
-
o.parent = @parent
|
146
|
-
o.extraattr.update(@extraattr)
|
147
|
-
@handler.decode_parent(@parent, o)
|
148
|
-
o
|
119
|
+
if definedtype = extraattrs[XSD::AttrTypeName]
|
120
|
+
o.type = ns.parse(definedtype)
|
149
121
|
end
|
150
|
-
end
|
151
|
-
|
152
|
-
def decode_tag(ns, elename, attrs, parent)
|
153
|
-
@textbuf = ''
|
154
|
-
o = SOAPUnknown.new(self, elename, decode_attrs(ns, attrs))
|
155
122
|
o.parent = parent
|
123
|
+
o.extraattr.update(extraattrs)
|
124
|
+
decode_parent(parent, o)
|
156
125
|
o
|
157
126
|
end
|
158
127
|
|
159
128
|
def decode_tag_end(ns, node)
|
129
|
+
textbufstr = @textbuf.join
|
130
|
+
@textbuf.clear
|
160
131
|
o = node.node
|
161
|
-
|
162
|
-
if /\A\s*\z/ =~ @textbuf
|
163
|
-
newnode = o.as_element
|
164
|
-
else
|
165
|
-
newnode = o.as_string
|
166
|
-
end
|
167
|
-
node.replace_node(newnode)
|
168
|
-
o = node.node
|
169
|
-
end
|
170
|
-
|
171
|
-
decode_textbuf(o)
|
172
|
-
@textbuf = ''
|
132
|
+
decode_textbuf(o, textbufstr)
|
173
133
|
end
|
174
134
|
|
175
135
|
def decode_text(ns, text)
|
@@ -195,11 +155,6 @@ class LiteralHandler < Handler
|
|
195
155
|
def decode_parent(parent, node)
|
196
156
|
return unless parent.node
|
197
157
|
case parent.node
|
198
|
-
when SOAPUnknown
|
199
|
-
newparent = parent.node.as_element
|
200
|
-
node.parent = newparent
|
201
|
-
parent.replace_node(newparent)
|
202
|
-
decode_parent(parent, node)
|
203
158
|
when SOAPElement
|
204
159
|
parent.node.add(node)
|
205
160
|
node.parent = parent.node
|
@@ -221,12 +176,13 @@ class LiteralHandler < Handler
|
|
221
176
|
|
222
177
|
private
|
223
178
|
|
224
|
-
def decode_textbuf(node)
|
225
|
-
|
179
|
+
def decode_textbuf(node, textbufstr)
|
180
|
+
case node
|
181
|
+
when XSD::XSDString, SOAPElement
|
226
182
|
if @charset
|
227
|
-
node.set(XSD::Charset.encoding_from_xml(
|
183
|
+
node.set(XSD::Charset.encoding_from_xml(textbufstr, @charset))
|
228
184
|
else
|
229
|
-
node.set(
|
185
|
+
node.set(textbufstr)
|
230
186
|
end
|
231
187
|
else
|
232
188
|
# Nothing to do...
|