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
@@ -1,5 +1,5 @@
|
|
1
1
|
# WSDL4R - Creating MappingRegistry 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;
|
@@ -28,15 +28,12 @@ module MappingRegistryCreatorSupport
|
|
28
28
|
"[\n" +
|
29
29
|
dump_schema_element(definition, indent + 2) + "\n" + sp + "]"
|
30
30
|
else
|
31
|
-
varname, name, type = definition
|
32
|
-
'[' +
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
varname.dump + ', ' + ndq(type)
|
38
|
-
end
|
39
|
-
) + ']'
|
31
|
+
varname, name, type, occurrence = definition
|
32
|
+
'[' + [
|
33
|
+
varname.dump,
|
34
|
+
dump_type(name, type),
|
35
|
+
dump_occurrence(occurrence)
|
36
|
+
].compact.join(', ') + ']'
|
40
37
|
end
|
41
38
|
end
|
42
39
|
|
@@ -48,6 +45,22 @@ module MappingRegistryCreatorSupport
|
|
48
45
|
}.join(delimiter)
|
49
46
|
end
|
50
47
|
|
48
|
+
def dump_type(name, type)
|
49
|
+
if name
|
50
|
+
'[' + ndq(type) + ', ' + dqname(name) + ']'
|
51
|
+
else
|
52
|
+
ndq(type)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def dump_occurrence(occurrence)
|
57
|
+
if occurrence and occurrence != [1, 1] # default
|
58
|
+
minoccurs, maxoccurs = occurrence
|
59
|
+
maxoccurs ||= 'nil'
|
60
|
+
"[#{minoccurs}, #{maxoccurs}]"
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
51
64
|
def parse_elements(elements, base_namespace)
|
52
65
|
schema_element = []
|
53
66
|
any = false
|
@@ -60,7 +73,8 @@ module MappingRegistryCreatorSupport
|
|
60
73
|
varname = 'any' # not used
|
61
74
|
eleqname = XSD::AnyTypeName
|
62
75
|
type = nil
|
63
|
-
|
76
|
+
occurrence = nil
|
77
|
+
schema_element << [varname, eleqname, type, occurrence]
|
64
78
|
when XMLSchema::Element
|
65
79
|
if element.type == XSD::AnyTypeName
|
66
80
|
type = nil
|
@@ -69,6 +83,7 @@ module MappingRegistryCreatorSupport
|
|
69
83
|
elsif element.type
|
70
84
|
type = create_class_name(element.type, @modulepath)
|
71
85
|
elsif element.ref
|
86
|
+
next if element.ref == SchemaName
|
72
87
|
type = create_class_name(element.ref, @modulepath)
|
73
88
|
else
|
74
89
|
type = nil # means anyType.
|
@@ -94,7 +109,8 @@ module MappingRegistryCreatorSupport
|
|
94
109
|
if eleqname && varname == name && eleqname.namespace == base_namespace
|
95
110
|
eleqname = nil
|
96
111
|
end
|
97
|
-
|
112
|
+
occurrence = [element.minoccurs, element.maxoccurs]
|
113
|
+
schema_element << [varname, eleqname, type, occurrence]
|
98
114
|
when WSDL::XMLSchema::Sequence
|
99
115
|
child_schema_element = parse_elements(element.elements, base_namespace)
|
100
116
|
schema_element << child_schema_element
|
@@ -196,17 +212,19 @@ module MappingRegistryCreatorSupport
|
|
196
212
|
end
|
197
213
|
end
|
198
214
|
|
199
|
-
def dump_simpletypedef(qname, simpletype)
|
215
|
+
def dump_simpletypedef(qname, simpletype, as_element = nil, qualified = false)
|
200
216
|
if simpletype.restriction
|
201
|
-
dump_simpletypedef_restriction(qname, simpletype)
|
217
|
+
dump_simpletypedef_restriction(qname, simpletype, as_element, qualified)
|
202
218
|
elsif simpletype.list
|
203
|
-
dump_simpletypedef_list(qname, simpletype)
|
219
|
+
dump_simpletypedef_list(qname, simpletype, as_element, qualified)
|
220
|
+
elsif simpletype.union
|
221
|
+
dump_simpletypedef_union(qname, simpletype, as_element, qualified)
|
204
222
|
else
|
205
223
|
raise RuntimeError.new("unknown kind of simpletype: #{simpletype}")
|
206
224
|
end
|
207
225
|
end
|
208
226
|
|
209
|
-
def dump_simpletypedef_restriction(qname, typedef)
|
227
|
+
def dump_simpletypedef_restriction(qname, typedef, as_element, qualified)
|
210
228
|
restriction = typedef.restriction
|
211
229
|
if restriction.enumeration.empty?
|
212
230
|
# not supported. minlength?
|
@@ -214,16 +232,24 @@ module MappingRegistryCreatorSupport
|
|
214
232
|
end
|
215
233
|
var = {}
|
216
234
|
var[:class] = create_class_name(qname, @modulepath)
|
217
|
-
|
218
|
-
|
235
|
+
if as_element
|
236
|
+
var[:schema_type] = nil
|
237
|
+
var[:schema_ns] = as_element.namespace
|
238
|
+
elsif typedef.name.nil?
|
219
239
|
var[:schema_type] = nil
|
240
|
+
var[:schema_ns] = qname.namespace
|
220
241
|
else
|
221
242
|
var[:schema_type] = qname.name
|
243
|
+
var[:schema_ns] = qname.namespace
|
222
244
|
end
|
223
245
|
dump_entry(@varname, var)
|
224
246
|
end
|
225
247
|
|
226
|
-
def dump_simpletypedef_list(qname, typedef)
|
248
|
+
def dump_simpletypedef_list(qname, typedef, as_element, qualified)
|
249
|
+
nil
|
250
|
+
end
|
251
|
+
|
252
|
+
def dump_simpletypedef_union(qname, typedef, as_element, qualified)
|
227
253
|
nil
|
228
254
|
end
|
229
255
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# WSDL4R - Creating driver code from WSDL.
|
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;
|
@@ -40,9 +40,9 @@ class MethodDefCreator
|
|
40
40
|
binding = port.find_binding
|
41
41
|
if binding
|
42
42
|
binding.operations.each do |op_bind|
|
43
|
-
op = op_bind.find_operation
|
44
43
|
next unless op_bind # no binding is defined
|
45
44
|
next unless op_bind.soapoperation # not a SOAP operation binding
|
45
|
+
op = op_bind.find_operation
|
46
46
|
methoddef << ",\n" unless methoddef.empty?
|
47
47
|
methoddef << dump_method(op, op_bind).chomp
|
48
48
|
end
|
@@ -92,14 +92,27 @@ class MethodDefCreator
|
|
92
92
|
private
|
93
93
|
|
94
94
|
def dump_method(operation, binding)
|
95
|
+
op_faults = {}
|
96
|
+
binding.fault.each do |fault|
|
97
|
+
op_fault = {}
|
98
|
+
soapfault = fault.soapfault
|
99
|
+
faultclass = create_class_name(fault.name, @modulepath)
|
100
|
+
op_fault[:ns] = fault.name.namespace
|
101
|
+
op_fault[:name] = fault.name.name
|
102
|
+
op_fault[:namespace] = soapfault.namespace
|
103
|
+
op_fault[:use] = soapfault.use || "literal"
|
104
|
+
op_fault[:encodingstyle] = soapfault.encodingstyle || "document"
|
105
|
+
op_faults[faultclass] = op_fault
|
106
|
+
end
|
107
|
+
op_faults_str = op_faults.inspect
|
108
|
+
|
95
109
|
name = safemethodname(operation.name)
|
96
110
|
name_as = operation.name
|
97
111
|
style = binding.soapoperation_style
|
98
|
-
inputuse = binding.
|
99
|
-
outputuse = binding.
|
100
|
-
namespace = binding.input.soapbody.namespace
|
112
|
+
inputuse = binding.soapbody_use_input
|
113
|
+
outputuse = binding.soapbody_use_output
|
101
114
|
if style == :rpc
|
102
|
-
qname =
|
115
|
+
qname = binding.soapoperation_name
|
103
116
|
paramstr = param2str(collect_rpcparameter(operation))
|
104
117
|
else
|
105
118
|
qname = nil
|
@@ -114,8 +127,9 @@ private
|
|
114
127
|
#{ndq(binding.soapaction)},
|
115
128
|
#{dq(name)},
|
116
129
|
#{paramstr},
|
117
|
-
{ :request_style => #{
|
118
|
-
:response_style => #{
|
130
|
+
{ :request_style => #{nsym(style)}, :request_use => #{nsym(inputuse)},
|
131
|
+
:response_style => #{nsym(style)}, :response_use => #{nsym(outputuse)},
|
132
|
+
:faults => #{op_faults_str} }
|
119
133
|
__EOD__
|
120
134
|
if inputuse == :encoded or outputuse == :encoded
|
121
135
|
@encoded = true
|
@@ -139,14 +153,9 @@ __EOD__
|
|
139
153
|
if mapped = basetype_mapped_class(part.type)
|
140
154
|
['::' + mapped.name]
|
141
155
|
elsif definedtype = @simpletypes[part.type]
|
142
|
-
|
143
|
-
['::' + basetype_mapped_class(definedtype.base).name]
|
144
|
-
else
|
145
|
-
raise RuntimeError.new("unsupported simpleType: #{definedtype}")
|
146
|
-
end
|
156
|
+
[nil, definedtype.name.namespace, definedtype.name.name]
|
147
157
|
elsif definedtype = @elements[part.element]
|
148
|
-
|
149
|
-
['nil', part.element.namespace, part.element.name]
|
158
|
+
[nil, part.element.namespace, part.element.name]
|
150
159
|
elsif definedtype = @complextypes[part.type]
|
151
160
|
case definedtype.compoundtype
|
152
161
|
when :TYPE_STRUCT, :TYPE_EMPTY # ToDo: empty should be treated as void.
|
@@ -162,6 +171,8 @@ __EOD__
|
|
162
171
|
else
|
163
172
|
raise NotImplementedError.new("must not reach here")
|
164
173
|
end
|
174
|
+
elsif part.type == XSD::AnyTypeName
|
175
|
+
[nil]
|
165
176
|
else
|
166
177
|
raise RuntimeError.new("part: #{part.name} cannot be resolved")
|
167
178
|
end
|
@@ -226,9 +237,9 @@ __EOD__
|
|
226
237
|
|
227
238
|
def type2str(type)
|
228
239
|
if type.size == 1
|
229
|
-
"[#{
|
240
|
+
"[#{ndq(type[0])}]"
|
230
241
|
else
|
231
|
-
"[#{
|
242
|
+
"[#{ndq(type[0])}, #{ndq(type[1])}, #{dq(type[2])}]"
|
232
243
|
end
|
233
244
|
end
|
234
245
|
|
data/lib/wsdl/soap/operation.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# WSDL4R - WSDL SOAP operation definition.
|
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;
|
@@ -18,13 +18,17 @@ class Operation < Info
|
|
18
18
|
attr_reader :style
|
19
19
|
attr_reader :op_name
|
20
20
|
attr_reader :optype_name
|
21
|
+
attr_reader :encodingstyle
|
21
22
|
attr_reader :headerparts
|
22
23
|
attr_reader :bodyparts
|
23
24
|
attr_reader :faultpart
|
24
25
|
attr_reader :soapaction
|
25
26
|
|
26
|
-
def initialize(style,
|
27
|
+
def initialize(style, use, encodingstyle, op_name, optype_name,
|
28
|
+
headerparts, bodyparts, faultpart, soapaction)
|
27
29
|
@style = style
|
30
|
+
@use = use
|
31
|
+
@encodingstyle = encodingstyle
|
28
32
|
@op_name = op_name
|
29
33
|
@optype_name = optype_name
|
30
34
|
@headerparts = headerparts
|
@@ -88,18 +92,14 @@ private
|
|
88
92
|
end
|
89
93
|
|
90
94
|
def param_info(name_info, param)
|
95
|
+
op_style = operation_style()
|
96
|
+
op_use = param.soapbody_use
|
97
|
+
op_encodingstyle = param.soapbody_encodingstyle
|
91
98
|
op_name = name_info.op_name
|
92
99
|
optype_name = name_info.optype_name
|
93
|
-
|
94
100
|
soapheader = param.soapheader
|
95
101
|
headerparts = soapheader.collect { |item| item.find_part }
|
96
|
-
|
97
102
|
soapbody = param.soapbody
|
98
|
-
if soapbody.encodingstyle and
|
99
|
-
soapbody.encodingstyle != ::SOAP::EncodingNamespace
|
100
|
-
raise NotImplementedError.new(
|
101
|
-
"EncodingStyle '#{ soapbody.encodingstyle }' not supported.")
|
102
|
-
end
|
103
103
|
if soapbody.namespace
|
104
104
|
op_name = XSD::QName.new(soapbody.namespace, op_name.name)
|
105
105
|
end
|
@@ -111,9 +111,9 @@ private
|
|
111
111
|
else
|
112
112
|
bodyparts = name_info.parts
|
113
113
|
end
|
114
|
-
|
115
114
|
faultpart = nil
|
116
|
-
OperationInfo.new(
|
115
|
+
OperationInfo.new(op_style, op_use, op_encodingstyle, op_name, optype_name,
|
116
|
+
headerparts, bodyparts, faultpart, parent.soapaction)
|
117
117
|
end
|
118
118
|
end
|
119
119
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# WSDL4R - Creating servant skelton code from WSDL.
|
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;
|
@@ -54,6 +54,7 @@ private
|
|
54
54
|
def dump_porttype(name)
|
55
55
|
class_name = create_class_name(name)
|
56
56
|
c = XSD::CodeGen::ClassDef.new(class_name)
|
57
|
+
element_definitions = @definitions.collect_elements
|
57
58
|
operations = @definitions.porttype(name).operations
|
58
59
|
operations.each do |operation|
|
59
60
|
name = safemethodname(operation.name)
|
@@ -66,7 +67,7 @@ private
|
|
66
67
|
raise NotImplementedError.new
|
67
68
|
EOD
|
68
69
|
end
|
69
|
-
m.comment = dump_method_signature(operation)
|
70
|
+
m.comment = dump_method_signature(operation, element_definitions)
|
70
71
|
c.add_method(m)
|
71
72
|
end
|
72
73
|
c.dump
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# WSDL4R - Creating standalone server stub code from WSDL.
|
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/wsdl/soap/wsdl2ruby.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# WSDL4R - WSDL to ruby mapping 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;
|
@@ -57,7 +57,7 @@ private
|
|
57
57
|
def create_file
|
58
58
|
@modulepath = @opt['module_path']
|
59
59
|
create_classdef if @opt.key?('classdef')
|
60
|
-
create_mapping_registry if @opt.key?('mapping_registry')
|
60
|
+
create_mapping_registry if @opt.key?('mapping_registry')
|
61
61
|
create_servant_skelton(@opt['servant_skelton']) if @opt.key?('servant_skelton')
|
62
62
|
create_cgi_stub(@opt['cgi_stub']) if @opt.key?('cgi_stub')
|
63
63
|
create_standalone_server_stub(@opt['standalone_server_stub']) if @opt.key?('standalone_server_stub')
|
@@ -85,6 +85,7 @@ private
|
|
85
85
|
end
|
86
86
|
|
87
87
|
def create_client_skelton(servicename)
|
88
|
+
return if @wsdl.services.empty?
|
88
89
|
@logger.info { "Creating client skelton." }
|
89
90
|
servicename ||= @wsdl.services[0].name.name
|
90
91
|
@client_skelton_filename = servicename + 'Client.rb'
|
@@ -194,3 +195,8 @@ end
|
|
194
195
|
|
195
196
|
end
|
196
197
|
end
|
198
|
+
|
199
|
+
|
200
|
+
if __FILE__ == $0
|
201
|
+
warn("WARNING: #{File.expand_path(__FILE__)} is a library file used by bin/wsdl2ruby.rb. Find bin/wsdl2ruby.rb from tarball version of soap4r or install soap4r via gem.")
|
202
|
+
end
|
data/lib/wsdl/types.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# WSDL4R - WSDL types definition.
|
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/wsdl/wsdl.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# WSDL4R - Base definitions.
|
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;
|
data/lib/wsdl/xmlSchema/all.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# WSDL4R - XMLSchema complexType definition for WSDL.
|
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
|
# WSDL4R - WSDL SOAP documentation element.
|
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/wsdl/xmlSchema/any.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# WSDL4R - XMLSchema any definition for WSDL.
|
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;
|
@@ -21,8 +21,8 @@ class Any < Info
|
|
21
21
|
|
22
22
|
def initialize
|
23
23
|
super()
|
24
|
-
@maxoccurs =
|
25
|
-
@minoccurs =
|
24
|
+
@maxoccurs = 1
|
25
|
+
@minoccurs = 1
|
26
26
|
@namespace = '##any'
|
27
27
|
@process_contents = 'strict'
|
28
28
|
end
|
@@ -38,9 +38,14 @@ class Any < Info
|
|
38
38
|
def parse_attr(attr, value)
|
39
39
|
case attr
|
40
40
|
when MaxOccursAttrName
|
41
|
-
|
41
|
+
if value.source == 'unbounded'
|
42
|
+
@maxoccurs = nil
|
43
|
+
else
|
44
|
+
@maxoccurs = Integer(value.source)
|
45
|
+
end
|
46
|
+
value.source
|
42
47
|
when MinOccursAttrName
|
43
|
-
@minoccurs = value.source
|
48
|
+
@minoccurs = Integer(value.source)
|
44
49
|
when NamespaceAttrName
|
45
50
|
@namespace = value.source
|
46
51
|
when ProcessContentsAttrName
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# WSDL4R - XMLSchema attribute definition for WSDL.
|
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
|
# WSDL4R - XMLSchema complexType definition for WSDL.
|
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
|
# WSDL4R - XMLSchema complexContent definition for WSDL.
|
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;
|
@@ -38,6 +38,10 @@ class ComplexContent < Info
|
|
38
38
|
@extension || @restriction
|
39
39
|
end
|
40
40
|
|
41
|
+
def base
|
42
|
+
content ? content.base : nil
|
43
|
+
end
|
44
|
+
|
41
45
|
def have_any?
|
42
46
|
content ? content.have_any? : nil
|
43
47
|
end
|
@@ -51,7 +55,12 @@ class ComplexContent < Info
|
|
51
55
|
end
|
52
56
|
|
53
57
|
def attributes
|
54
|
-
content.attributes
|
58
|
+
content ? content.attributes : XSD::NamedElements::Empty
|
59
|
+
end
|
60
|
+
|
61
|
+
def nested_elements
|
62
|
+
# restrict and extension does not have particle.
|
63
|
+
content ? content.nested_elements : XSD::NamedElements::Empty
|
55
64
|
end
|
56
65
|
|
57
66
|
def check_type
|