soap4r_es 0.0.1
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.
- checksums.yaml +7 -0
- data/bin/wsdl2ruby.rb +140 -0
- data/bin/wsdl2ruby_rails.rb +140 -0
- data/bin/xsd2ruby.rb +92 -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 +64 -0
- data/lib/soap/header/handlerset.rb +78 -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 +541 -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 +297 -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 +330 -0
- data/lib/soap/proxy.rb +15 -0
- data/lib/soap/rpc/cgistub.rb +249 -0
- data/lib/soap/rpc/driver.rb +222 -0
- data/lib/soap/rpc/element.rb +375 -0
- data/lib/soap/rpc/httpserver.rb +144 -0
- data/lib/soap/rpc/methodDef.rb +69 -0
- data/lib/soap/rpc/proxy.rb +573 -0
- data/lib/soap/rpc/router.rb +672 -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 +163 -0
- data/lib/soap/streamHandler.rb +302 -0
- data/lib/soap/version.rb +12 -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 +180 -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 +529 -0
- data/lib/wsdl/soap/classDefCreatorSupport.rb +242 -0
- data/lib/wsdl/soap/classNameCreator.rb +57 -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 +380 -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 +249 -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 +53 -0
- data/lib/wsdl/xmlSchema/importHandler.rb +45 -0
- data/lib/wsdl/xmlSchema/importer.rb +103 -0
- data/lib/wsdl/xmlSchema/include.rb +48 -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 +177 -0
- data/lib/xsd/charset.rb +190 -0
- data/lib/xsd/codegen/classdef.rb +230 -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 +1465 -0
- data/lib/xsd/datatypes1999.rb +21 -0
- data/lib/xsd/iconvcharset.rb +33 -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 +136 -0
- data/lib/xsd/xmlparser/nokogiriparser.rb +63 -0
- data/lib/xsd/xmlparser/ogaparser.rb +53 -0
- data/lib/xsd/xmlparser/oxparser.rb +97 -0
- data/lib/xsd/xmlparser/parser.rb +101 -0
- data/lib/xsd/xmlparser/rexmlparser.rb +54 -0
- data/lib/xsd/xmlparser.rb +81 -0
- metadata +240 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 8de22f59107d2bc83bd6e7a7be373d269f740519
|
|
4
|
+
data.tar.gz: 778de52a65096b3fa246c5531cda3831959669e2
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 331e5124f059a2db5f92b8fa6882fdc9f173440108899dfd6e7afc45902804465f6bfb181ed6dcc79d1c163a6168f47304fea144741fd5859cbf6f7e101c625c
|
|
7
|
+
data.tar.gz: 5166cb9c2af29c58178b9b45130da76b75a840907175e55132d360e409c5fe3e9f7ca00d7b72ec3b5ed898183abc43f64bf4916355dc0cf4f84644e54b7d2442
|
data/bin/wsdl2ruby.rb
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# encoding: UTF-8
|
|
3
|
+
$:.unshift File.join(File.dirname(__FILE__),'../lib') if ENV['DEBUG_SOAP4R']
|
|
4
|
+
|
|
5
|
+
require 'getoptlong'
|
|
6
|
+
require 'logger'
|
|
7
|
+
require 'logger-application' unless defined?(Logger::Application)
|
|
8
|
+
require 'wsdl/soap/wsdl2ruby'
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class WSDL2RubyApp < Logger::Application
|
|
12
|
+
private
|
|
13
|
+
|
|
14
|
+
OptSet = [
|
|
15
|
+
['--wsdl','-w', GetoptLong::REQUIRED_ARGUMENT],
|
|
16
|
+
['--module_path','-m', GetoptLong::REQUIRED_ARGUMENT],
|
|
17
|
+
['--type','-t', GetoptLong::REQUIRED_ARGUMENT],
|
|
18
|
+
['--classdef','-e', GetoptLong::OPTIONAL_ARGUMENT],
|
|
19
|
+
['--mapping_registry','-r', GetoptLong::NO_ARGUMENT],
|
|
20
|
+
['--client_skelton','-c', GetoptLong::OPTIONAL_ARGUMENT],
|
|
21
|
+
['--servant_skelton','-s', GetoptLong::OPTIONAL_ARGUMENT],
|
|
22
|
+
['--cgi_stub','-g', GetoptLong::OPTIONAL_ARGUMENT],
|
|
23
|
+
['--servlet_stub','-l', GetoptLong::OPTIONAL_ARGUMENT],
|
|
24
|
+
['--standalone_server_stub','-a', GetoptLong::OPTIONAL_ARGUMENT],
|
|
25
|
+
['--driver','-d', GetoptLong::OPTIONAL_ARGUMENT],
|
|
26
|
+
['--drivername_postfix','-n', GetoptLong::REQUIRED_ARGUMENT],
|
|
27
|
+
['--force','-f', GetoptLong::NO_ARGUMENT],
|
|
28
|
+
['--quiet','-q', GetoptLong::NO_ARGUMENT],
|
|
29
|
+
]
|
|
30
|
+
|
|
31
|
+
def initialize
|
|
32
|
+
super('app')
|
|
33
|
+
STDERR.sync = true
|
|
34
|
+
self.level = Logger::FATAL
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def run
|
|
38
|
+
@worker = WSDL::SOAP::WSDL2Ruby.new
|
|
39
|
+
@worker.logger = @log
|
|
40
|
+
location, opt = parse_opt(GetoptLong.new(*OptSet))
|
|
41
|
+
usage_exit unless location
|
|
42
|
+
@worker.location = location
|
|
43
|
+
if opt['quiet']
|
|
44
|
+
self.level = Logger::FATAL
|
|
45
|
+
else
|
|
46
|
+
self.level = Logger::INFO
|
|
47
|
+
end
|
|
48
|
+
@worker.opt.update(opt)
|
|
49
|
+
@worker.run
|
|
50
|
+
0
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def usage_exit
|
|
54
|
+
puts <<__EOU__
|
|
55
|
+
Usage: #{ $0 } --wsdl wsdl_location [options]
|
|
56
|
+
wsdl_location: filename or URL
|
|
57
|
+
|
|
58
|
+
Example:
|
|
59
|
+
For server side:
|
|
60
|
+
#{ $0 } --wsdl myapp.wsdl --type server
|
|
61
|
+
For client side:
|
|
62
|
+
#{ $0 } --wsdl myapp.wsdl --type client
|
|
63
|
+
|
|
64
|
+
Options:
|
|
65
|
+
--wsdl wsdl_location
|
|
66
|
+
--type server|client
|
|
67
|
+
--type server implies;
|
|
68
|
+
--classdef --mapping_registry --servant_skelton --standalone_server_stub
|
|
69
|
+
--type client implies;
|
|
70
|
+
--classdef --mapping_registry --client_skelton --driver
|
|
71
|
+
--classdef [filenameprefix]
|
|
72
|
+
--mapping_registry
|
|
73
|
+
--client_skelton [servicename]
|
|
74
|
+
--servant_skelton [porttypename]
|
|
75
|
+
--cgi_stub [servicename]
|
|
76
|
+
--servlet_stub [servicename]
|
|
77
|
+
--standalone_server_stub [servicename]
|
|
78
|
+
--driver [porttypename]
|
|
79
|
+
--drivername_postfix driver_classname_postfix
|
|
80
|
+
--module_path Module::Path::Name
|
|
81
|
+
--force
|
|
82
|
+
--quiet
|
|
83
|
+
|
|
84
|
+
Terminology:
|
|
85
|
+
Client <-> Driver <-(SOAP)-> Stub <-> Servant
|
|
86
|
+
|
|
87
|
+
Driver and Stub: Automatically generated
|
|
88
|
+
Client and Servant: Skelton generated (you should change)
|
|
89
|
+
__EOU__
|
|
90
|
+
exit 1
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
def parse_opt(getoptlong)
|
|
94
|
+
opt = {}
|
|
95
|
+
wsdl = nil
|
|
96
|
+
begin
|
|
97
|
+
getoptlong.each do |name, arg|
|
|
98
|
+
case name
|
|
99
|
+
when "--wsdl"
|
|
100
|
+
wsdl = arg
|
|
101
|
+
when "--module_path"
|
|
102
|
+
opt['module_path'] = arg
|
|
103
|
+
when "--type"
|
|
104
|
+
case arg
|
|
105
|
+
when "server"
|
|
106
|
+
opt['classdef'] ||= nil
|
|
107
|
+
opt['mapping_registry'] ||= nil
|
|
108
|
+
opt['servant_skelton'] ||= nil
|
|
109
|
+
opt['standalone_server_stub'] ||= nil
|
|
110
|
+
when "client"
|
|
111
|
+
opt['classdef'] ||= nil
|
|
112
|
+
opt['mapping_registry'] ||= nil
|
|
113
|
+
opt['driver'] ||= nil
|
|
114
|
+
opt['client_skelton'] ||= nil
|
|
115
|
+
else
|
|
116
|
+
raise ArgumentError.new("Unknown type #{ arg }")
|
|
117
|
+
end
|
|
118
|
+
when "--classdef", "--mapping_registry",
|
|
119
|
+
"--client_skelton", "--servant_skelton",
|
|
120
|
+
"--cgi_stub", "--servlet_stub", "--standalone_server_stub",
|
|
121
|
+
"--driver"
|
|
122
|
+
opt[name.sub(/^--/, '')] = arg.empty? ? nil : arg
|
|
123
|
+
when "--drivername_postfix"
|
|
124
|
+
opt['drivername_postfix'] = arg
|
|
125
|
+
when "--force"
|
|
126
|
+
opt['force'] = true
|
|
127
|
+
when "--quiet"
|
|
128
|
+
opt['quiet'] = true
|
|
129
|
+
else
|
|
130
|
+
raise ArgumentError.new("Unknown type #{ arg }")
|
|
131
|
+
end
|
|
132
|
+
end
|
|
133
|
+
rescue
|
|
134
|
+
usage_exit
|
|
135
|
+
end
|
|
136
|
+
return wsdl, opt
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
WSDL2RubyApp.new.start
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# encoding: UTF-8
|
|
3
|
+
$:.unshift File.join(File.dirname(__FILE__),'../lib') if ENV['DEBUG_SOAP4R']
|
|
4
|
+
|
|
5
|
+
require 'getoptlong'
|
|
6
|
+
require 'logger'
|
|
7
|
+
require 'logger-application' unless defined?(Logger::Application)
|
|
8
|
+
require 'wsdl/soap/wsdl2ruby'
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class WSDL2RubyRailsApp < Logger::Application
|
|
12
|
+
private
|
|
13
|
+
|
|
14
|
+
OptSet = [
|
|
15
|
+
['--wsdl','-w', GetoptLong::REQUIRED_ARGUMENT],
|
|
16
|
+
['--module_path','-m', GetoptLong::REQUIRED_ARGUMENT],
|
|
17
|
+
['--type','-t', GetoptLong::REQUIRED_ARGUMENT],
|
|
18
|
+
['--classdef','-e', GetoptLong::OPTIONAL_ARGUMENT],
|
|
19
|
+
['--mapping_registry','-r', GetoptLong::NO_ARGUMENT],
|
|
20
|
+
['--client_skelton','-c', GetoptLong::OPTIONAL_ARGUMENT],
|
|
21
|
+
['--servant_skelton','-s', GetoptLong::OPTIONAL_ARGUMENT],
|
|
22
|
+
['--cgi_stub','-g', GetoptLong::OPTIONAL_ARGUMENT],
|
|
23
|
+
['--servlet_stub','-l', GetoptLong::OPTIONAL_ARGUMENT],
|
|
24
|
+
['--standalone_server_stub','-a', GetoptLong::OPTIONAL_ARGUMENT],
|
|
25
|
+
['--driver','-d', GetoptLong::OPTIONAL_ARGUMENT],
|
|
26
|
+
['--drivername_postfix','-n', GetoptLong::REQUIRED_ARGUMENT],
|
|
27
|
+
['--force','-f', GetoptLong::NO_ARGUMENT],
|
|
28
|
+
['--quiet','-q', GetoptLong::NO_ARGUMENT],
|
|
29
|
+
]
|
|
30
|
+
|
|
31
|
+
def initialize
|
|
32
|
+
super('app')
|
|
33
|
+
STDERR.sync = true
|
|
34
|
+
self.level = Logger::FATAL
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def run
|
|
38
|
+
@worker = WSDL::SOAP::WSDL2Ruby.new
|
|
39
|
+
@worker.logger = @log
|
|
40
|
+
location, opt = parse_opt(GetoptLong.new(*OptSet))
|
|
41
|
+
usage_exit unless location
|
|
42
|
+
@worker.location = location
|
|
43
|
+
if opt['quiet']
|
|
44
|
+
self.level = Logger::FATAL
|
|
45
|
+
else
|
|
46
|
+
self.level = Logger::INFO
|
|
47
|
+
end
|
|
48
|
+
@worker.opt.update(opt)
|
|
49
|
+
@worker.run
|
|
50
|
+
0
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def usage_exit
|
|
54
|
+
puts <<__EOU__
|
|
55
|
+
Usage: #{ $0 } --wsdl wsdl_location [options]
|
|
56
|
+
wsdl_location: filename or URL
|
|
57
|
+
|
|
58
|
+
Example:
|
|
59
|
+
For server side:
|
|
60
|
+
#{ $0 } --wsdl myapp.wsdl --type server
|
|
61
|
+
For client side:
|
|
62
|
+
#{ $0 } --wsdl myapp.wsdl --type client
|
|
63
|
+
|
|
64
|
+
Options:
|
|
65
|
+
--wsdl wsdl_location
|
|
66
|
+
--type server|client
|
|
67
|
+
--type server implies;
|
|
68
|
+
--classdef --mapping_registry --servant_skelton --standalone_server_stub
|
|
69
|
+
--type client implies;
|
|
70
|
+
--classdef --mapping_registry --client_skelton --driver
|
|
71
|
+
--classdef [filenameprefix]
|
|
72
|
+
--mapping_registry
|
|
73
|
+
--client_skelton [servicename]
|
|
74
|
+
--servant_skelton [porttypename]
|
|
75
|
+
--cgi_stub [servicename]
|
|
76
|
+
--servlet_stub [servicename]
|
|
77
|
+
--standalone_server_stub [servicename]
|
|
78
|
+
--driver [porttypename]
|
|
79
|
+
--drivername_postfix driver_classname_postfix
|
|
80
|
+
--module_path Module::Path::Name
|
|
81
|
+
--force
|
|
82
|
+
--quiet
|
|
83
|
+
|
|
84
|
+
Terminology:
|
|
85
|
+
Client <-> Driver <-(SOAP)-> Stub <-> Servant
|
|
86
|
+
|
|
87
|
+
Driver and Stub: Automatically generated
|
|
88
|
+
Client and Servant: Skelton generated (you should change)
|
|
89
|
+
__EOU__
|
|
90
|
+
exit 1
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
def parse_opt(getoptlong)
|
|
94
|
+
opt = {}
|
|
95
|
+
wsdl = nil
|
|
96
|
+
begin
|
|
97
|
+
getoptlong.each do |name, arg|
|
|
98
|
+
case name
|
|
99
|
+
when "--wsdl"
|
|
100
|
+
wsdl = arg
|
|
101
|
+
when "--module_path"
|
|
102
|
+
opt['module_path'] = arg
|
|
103
|
+
when "--type"
|
|
104
|
+
case arg
|
|
105
|
+
when "server"
|
|
106
|
+
opt['classdef'] ||= nil
|
|
107
|
+
opt['mapping_registry'] ||= nil
|
|
108
|
+
opt['servant_skelton'] ||= nil
|
|
109
|
+
opt['standalone_server_stub'] ||= nil
|
|
110
|
+
when "client"
|
|
111
|
+
opt['classdef'] ||= nil
|
|
112
|
+
opt['mapping_registry'] ||= nil
|
|
113
|
+
opt['driver'] ||= nil
|
|
114
|
+
opt['client_skelton'] ||= nil
|
|
115
|
+
else
|
|
116
|
+
raise ArgumentError.new("Unknown type #{ arg }")
|
|
117
|
+
end
|
|
118
|
+
when "--classdef", "--mapping_registry",
|
|
119
|
+
"--client_skelton", "--servant_skelton",
|
|
120
|
+
"--cgi_stub", "--servlet_stub", "--standalone_server_stub",
|
|
121
|
+
"--driver"
|
|
122
|
+
opt[name.sub(/^--/, '')] = arg.empty? ? nil : arg
|
|
123
|
+
when "--drivername_postfix"
|
|
124
|
+
opt['drivername_postfix'] = arg
|
|
125
|
+
when "--force"
|
|
126
|
+
opt['force'] = true
|
|
127
|
+
when "--quiet"
|
|
128
|
+
opt['quiet'] = true
|
|
129
|
+
else
|
|
130
|
+
raise ArgumentError.new("Unknown type #{ arg }")
|
|
131
|
+
end
|
|
132
|
+
end
|
|
133
|
+
rescue
|
|
134
|
+
usage_exit
|
|
135
|
+
end
|
|
136
|
+
return wsdl, opt
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
WSDL2RubyRailsApp.new.start
|
data/bin/xsd2ruby.rb
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# encoding: UTF-8
|
|
3
|
+
$:.unshift File.join(File.dirname(__FILE__),'../lib') if ENV['DEBUG_SOAP4R']
|
|
4
|
+
|
|
5
|
+
require 'getoptlong'
|
|
6
|
+
require 'logger'
|
|
7
|
+
require 'logger-application' unless defined?(Logger::Application)
|
|
8
|
+
require 'wsdl/xmlSchema/xsd2ruby'
|
|
9
|
+
|
|
10
|
+
class XSD2RubyApp < Logger::Application
|
|
11
|
+
private
|
|
12
|
+
|
|
13
|
+
OptSet = [
|
|
14
|
+
['--xsd','-x', GetoptLong::REQUIRED_ARGUMENT],
|
|
15
|
+
['--module_path','-m', GetoptLong::REQUIRED_ARGUMENT],
|
|
16
|
+
['--classdef','-e', GetoptLong::OPTIONAL_ARGUMENT],
|
|
17
|
+
['--mapping_registry','-r', GetoptLong::NO_ARGUMENT],
|
|
18
|
+
['--mapper','-p', GetoptLong::NO_ARGUMENT],
|
|
19
|
+
['--force','-f', GetoptLong::NO_ARGUMENT],
|
|
20
|
+
['--quiet','-q', GetoptLong::NO_ARGUMENT],
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
def initialize
|
|
24
|
+
super('app')
|
|
25
|
+
STDERR.sync = true
|
|
26
|
+
self.level = Logger::FATAL
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def run
|
|
30
|
+
@worker = WSDL::XMLSchema::XSD2Ruby.new
|
|
31
|
+
@worker.logger = @log
|
|
32
|
+
location, opt = parse_opt(GetoptLong.new(*OptSet))
|
|
33
|
+
usage_exit unless location
|
|
34
|
+
@worker.location = location
|
|
35
|
+
if opt['quiet']
|
|
36
|
+
self.level = Logger::FATAL
|
|
37
|
+
else
|
|
38
|
+
self.level = Logger::INFO
|
|
39
|
+
end
|
|
40
|
+
@worker.opt.update(opt)
|
|
41
|
+
@worker.run
|
|
42
|
+
0
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def usage_exit
|
|
46
|
+
puts <<__EOU__
|
|
47
|
+
Usage: #{ $0 } --xsd xsd_location [options]
|
|
48
|
+
xsd_location: filename or URL
|
|
49
|
+
|
|
50
|
+
Example:
|
|
51
|
+
#{ $0 } --xsd myapp.xsd --classdef foo
|
|
52
|
+
|
|
53
|
+
Options:
|
|
54
|
+
--xsd xsd_location
|
|
55
|
+
--classdef [filenameprefix]
|
|
56
|
+
--mapping_registry
|
|
57
|
+
--mapper
|
|
58
|
+
--module_path [Module::Path::Name]
|
|
59
|
+
--force
|
|
60
|
+
--quiet
|
|
61
|
+
__EOU__
|
|
62
|
+
exit 1
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def parse_opt(getoptlong)
|
|
66
|
+
opt = {}
|
|
67
|
+
xsd = nil
|
|
68
|
+
begin
|
|
69
|
+
getoptlong.each do |name, arg|
|
|
70
|
+
case name
|
|
71
|
+
when "--xsd"
|
|
72
|
+
xsd = arg
|
|
73
|
+
when "--module_path"
|
|
74
|
+
opt['module_path'] = arg
|
|
75
|
+
when "--classdef", "--mapping_registry", "--mapper"
|
|
76
|
+
opt[name.sub(/^--/, '')] = arg.empty? ? nil : arg
|
|
77
|
+
when "--force"
|
|
78
|
+
opt['force'] = true
|
|
79
|
+
when "--quiet"
|
|
80
|
+
opt['quiet'] = true
|
|
81
|
+
else
|
|
82
|
+
raise ArgumentError.new("Unknown type #{ arg }")
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
rescue
|
|
86
|
+
usage_exit
|
|
87
|
+
end
|
|
88
|
+
return xsd, opt
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
XSD2RubyApp.new.start
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
# soap/attachment.rb: SOAP4R - SwA implementation.
|
|
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 'soap/baseData'
|
|
11
|
+
require 'soap/mapping'
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
module SOAP
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class SOAPAttachment < SOAPExternalReference
|
|
18
|
+
attr_reader :data
|
|
19
|
+
|
|
20
|
+
def initialize(value)
|
|
21
|
+
super()
|
|
22
|
+
@data = value
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
private
|
|
26
|
+
|
|
27
|
+
def external_contentid
|
|
28
|
+
@data.contentid
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class Attachment
|
|
34
|
+
attr_reader :io
|
|
35
|
+
attr_accessor :contenttype
|
|
36
|
+
|
|
37
|
+
def initialize(string_or_readable = nil)
|
|
38
|
+
@string_or_readable = string_or_readable
|
|
39
|
+
@contenttype = "application/octet-stream"
|
|
40
|
+
@contentid = nil
|
|
41
|
+
@content = nil
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def contentid
|
|
45
|
+
@contentid ||= Attachment.contentid(self)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def contentid=(contentid)
|
|
49
|
+
@contentid = contentid
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def mime_contentid
|
|
53
|
+
'<' + contentid + '>'
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def content
|
|
57
|
+
if @content == nil and @string_or_readable != nil
|
|
58
|
+
@content = @string_or_readable.respond_to?(:read) ?
|
|
59
|
+
@string_or_readable.read : @string_or_readable
|
|
60
|
+
end
|
|
61
|
+
@content
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def to_s
|
|
65
|
+
content
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def write(out)
|
|
69
|
+
out.write(content)
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def save(filename)
|
|
73
|
+
File.open(filename, "wb") do |f|
|
|
74
|
+
write(f)
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def self.contentid(obj)
|
|
79
|
+
# this needs to be fixed
|
|
80
|
+
[obj.__id__.to_s, Process.pid.to_s].join('.')
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def self.mime_contentid(obj)
|
|
84
|
+
'<' + contentid(obj) + '>'
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
module Mapping
|
|
90
|
+
class AttachmentFactory < SOAP::Mapping::Factory
|
|
91
|
+
def obj2soap(soap_class, obj, info, map)
|
|
92
|
+
soap_obj = soap_class.new(obj)
|
|
93
|
+
mark_marshalled_obj(obj, soap_obj)
|
|
94
|
+
soap_obj
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def soap2obj(obj_class, node, info, map)
|
|
98
|
+
obj = node.data
|
|
99
|
+
mark_unmarshalled_obj(node, obj)
|
|
100
|
+
return true, obj
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
DefaultRegistry.add(::SOAP::Attachment, ::SOAP::SOAPAttachment,
|
|
105
|
+
AttachmentFactory.new, nil)
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
# SOAP4R - attribute proxy interface.
|
|
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
|
+
module SOAP
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
module AttrProxy
|
|
14
|
+
def self.included(klass)
|
|
15
|
+
klass.extend(AttrProxyClassSupport)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
module AttrProxyClassSupport
|
|
19
|
+
def attr_proxy(symbol, assignable = false)
|
|
20
|
+
name = symbol.to_s
|
|
21
|
+
define_method(name) {
|
|
22
|
+
attrproxy.__send__(name)
|
|
23
|
+
}
|
|
24
|
+
if assignable
|
|
25
|
+
aname = name + '='
|
|
26
|
+
define_method(aname) { |rhs|
|
|
27
|
+
attrproxy.__send__(aname, rhs)
|
|
28
|
+
}
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
end
|