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
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
# WSDL4R - WSDL to ruby mapping 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 'logger'
|
|
11
|
+
require 'logger-application' unless defined?(Logger::Application)
|
|
12
|
+
require 'xsd/qname'
|
|
13
|
+
require 'wsdl/importer'
|
|
14
|
+
require 'wsdl/soap/classDefCreator'
|
|
15
|
+
require 'wsdl/soap/servantSkeltonCreator'
|
|
16
|
+
require 'wsdl/soap/driverCreator'
|
|
17
|
+
require 'wsdl/soap/clientSkeltonCreator'
|
|
18
|
+
require 'wsdl/soap/standaloneServerStubCreator'
|
|
19
|
+
require 'wsdl/soap/servletStubCreator'
|
|
20
|
+
require 'wsdl/soap/cgiStubCreator'
|
|
21
|
+
require 'wsdl/soap/classNameCreator'
|
|
22
|
+
|
|
23
|
+
#uso il metodo di rails per convertire il nome della classe da camel case a snake case
|
|
24
|
+
class String
|
|
25
|
+
def underscore
|
|
26
|
+
self.gsub(/::/, '/').
|
|
27
|
+
gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
|
|
28
|
+
gsub(/([a-z\d])([A-Z])/,'\1_\2').
|
|
29
|
+
tr("-", "_").
|
|
30
|
+
downcase
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
module WSDL
|
|
36
|
+
module SOAP
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class WSDL2Ruby
|
|
40
|
+
attr_accessor :location
|
|
41
|
+
attr_reader :opt
|
|
42
|
+
attr_accessor :logger
|
|
43
|
+
attr_accessor :basedir
|
|
44
|
+
|
|
45
|
+
def run
|
|
46
|
+
unless @location
|
|
47
|
+
raise RuntimeError, "WSDL location not given"
|
|
48
|
+
end
|
|
49
|
+
@wsdl = import(@location)
|
|
50
|
+
if @opt['classdef']
|
|
51
|
+
@name = @opt['classdef']
|
|
52
|
+
else
|
|
53
|
+
@name = @wsdl.name ? @wsdl.name.name : 'default'
|
|
54
|
+
end
|
|
55
|
+
create_file
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
private
|
|
59
|
+
|
|
60
|
+
def initialize
|
|
61
|
+
@modulepath = nil
|
|
62
|
+
@location = nil
|
|
63
|
+
@opt = {}
|
|
64
|
+
@logger = Logger.new(STDERR)
|
|
65
|
+
@basedir = nil
|
|
66
|
+
@wsdl = nil
|
|
67
|
+
@name = nil
|
|
68
|
+
@classdef_filename = nil
|
|
69
|
+
@mr_filename = nil
|
|
70
|
+
@name_creator = ClassNameCreator.new
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def create_file
|
|
74
|
+
@modulepath = @opt['module_path']
|
|
75
|
+
create_classdef if @opt.key?('classdef')
|
|
76
|
+
create_mapping_registry if @opt.key?('mapping_registry')
|
|
77
|
+
create_servant_skelton(@opt['servant_skelton']) if @opt.key?('servant_skelton')
|
|
78
|
+
create_cgi_stub(@opt['cgi_stub']) if @opt.key?('cgi_stub')
|
|
79
|
+
create_standalone_server_stub(@opt['standalone_server_stub']) if @opt.key?('standalone_server_stub')
|
|
80
|
+
create_servlet_stub(@opt['servlet_stub']) if @opt.key?('servlet_stub')
|
|
81
|
+
create_driver(@opt['driver'], @opt['drivername_postfix'] || '') if @opt.key?('driver')
|
|
82
|
+
create_client_skelton(@opt['client_skelton']) if @opt.key?('client_skelton')
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def create_classdef
|
|
86
|
+
@logger.info { "Creating class definition." }
|
|
87
|
+
@classdef_filename = (@name + '.rb').underscore
|
|
88
|
+
#Non creo il file unico con le class, sono tutte nella dir models_pagopa
|
|
89
|
+
# check_file(@classdef_filename) or return
|
|
90
|
+
# write_file(@classdef_filename) do |f|
|
|
91
|
+
# f.puts "# encoding: UTF-8"
|
|
92
|
+
# f.puts "# Generated by wsdl2ruby (#{::SOAP::VERSION::FORK_STRING})\n"
|
|
93
|
+
# f << WSDL::SOAP::ClassDefCreator.new(@wsdl, @name_creator, @modulepath).dump
|
|
94
|
+
# end
|
|
95
|
+
#creo le classi in file separati nella cartella models_pagopa
|
|
96
|
+
WSDL::SOAP::ClassDefCreator.new(@wsdl, @name_creator, @modulepath).dump
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
def create_mapping_registry
|
|
100
|
+
@logger.info { "Creating mapping registry definition." }
|
|
101
|
+
@mr_filename = (@name + 'MappingRegistry.rb').underscore
|
|
102
|
+
check_file(@mr_filename) or return
|
|
103
|
+
write_file(@mr_filename) do |f|
|
|
104
|
+
f.puts "# encoding: UTF-8"
|
|
105
|
+
f.puts "# Generated by wsdl2ruby (#{::SOAP::VERSION::FORK_STRING})\n"
|
|
106
|
+
#f << "require_relative '#{@classdef_filename}'\n" if @classdef_filename non carico il file delle classi
|
|
107
|
+
f << WSDL::SOAP::MappingRegistryCreator.new(@wsdl, @name_creator, @modulepath).dump
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
def create_client_skelton(servicename)
|
|
112
|
+
return if @wsdl.services.empty?
|
|
113
|
+
@logger.info { "Creating client skelton." }
|
|
114
|
+
servicename ||= @wsdl.services[0].name.name
|
|
115
|
+
@client_skelton_filename = (servicename + 'Client.rb').underscore
|
|
116
|
+
check_file(@client_skelton_filename) or return
|
|
117
|
+
write_file(@client_skelton_filename) do |f|
|
|
118
|
+
f << shbang << "\n"
|
|
119
|
+
f.puts "# encoding: UTF-8"
|
|
120
|
+
f.puts "# Generated by wsdl2ruby (#{::SOAP::VERSION::FORK_STRING})\n"
|
|
121
|
+
f << "require_relative '#{@driver_filename}'\n\n" if @driver_filename
|
|
122
|
+
f << WSDL::SOAP::ClientSkeltonCreator.new(@wsdl, @name_creator, @modulepath).dump(create_name(servicename))
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
def create_servant_skelton(porttypename)
|
|
127
|
+
@logger.info { "Creating servant skelton." }
|
|
128
|
+
@servant_skelton_filename = (porttypename || @name + 'Servant').underscore + '.rb'
|
|
129
|
+
check_file(@servant_skelton_filename) or return
|
|
130
|
+
write_file(@servant_skelton_filename) do |f|
|
|
131
|
+
f.puts "# encoding: UTF-8"
|
|
132
|
+
f.puts "# Generated by wsdl2ruby (#{::SOAP::VERSION::FORK_STRING})\n"
|
|
133
|
+
#f << "require_relative '#{@classdef_filename}'\n\n" if @classdef_filename non carico il file delle classi
|
|
134
|
+
f << WSDL::SOAP::ServantSkeltonCreator.new(@wsdl, @name_creator, @modulepath).dump(create_name(porttypename))
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
def create_cgi_stub(servicename)
|
|
139
|
+
@logger.info { "Creating CGI stub." }
|
|
140
|
+
servicename ||= @wsdl.services[0].name.name
|
|
141
|
+
@cgi_stubFilename = (servicename + '.cgi').underscore
|
|
142
|
+
check_file(@cgi_stubFilename) or return
|
|
143
|
+
write_file(@cgi_stubFilename) do |f|
|
|
144
|
+
f << shbang << "\n"
|
|
145
|
+
f.puts "# encoding: UTF-8"
|
|
146
|
+
f.puts "# Generated by wsdl2ruby (#{::SOAP::VERSION::FORK_STRING})\n"
|
|
147
|
+
f << "require_relative '#{@servant_skelton_filename}'\n" if @servant_skelton_filename
|
|
148
|
+
f << "require_relative '#{@mr_filename}'\n" if @mr_filename
|
|
149
|
+
f << WSDL::SOAP::CGIStubCreator.new(@wsdl, @name_creator, @modulepath).dump(create_name(servicename))
|
|
150
|
+
end
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
def create_standalone_server_stub(servicename)
|
|
154
|
+
@logger.info { "Creating standalone stub." }
|
|
155
|
+
servicename ||= @wsdl.services[0].name.name
|
|
156
|
+
@standalone_server_stub_filename = (servicename + '.rb').underscore
|
|
157
|
+
check_file(@standalone_server_stub_filename) or return
|
|
158
|
+
write_file(@standalone_server_stub_filename) do |f|
|
|
159
|
+
f << shbang << "\n"
|
|
160
|
+
f.puts "# encoding: UTF-8"
|
|
161
|
+
f.puts "# Generated by wsdl2ruby (#{::SOAP::VERSION::FORK_STRING})\n"
|
|
162
|
+
f << "require_relative '#{@servant_skelton_filename}'\n" if @servant_skelton_filename
|
|
163
|
+
f << "require_relative '#{@mr_filename}'\n" if @mr_filename
|
|
164
|
+
f << WSDL::SOAP::StandaloneServerStubCreator.new(@wsdl, @name_creator, @modulepath).dump(create_name(servicename))
|
|
165
|
+
end
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
def create_servlet_stub(servicename)
|
|
169
|
+
@logger.info { "Creating servlet stub." }
|
|
170
|
+
servicename ||= @wsdl.services[0].name.name
|
|
171
|
+
@servlet_stub_filename = (servicename + 'Servlet.rb').underscore
|
|
172
|
+
check_file(@servlet_stub_filename) or return
|
|
173
|
+
write_file(@servlet_stub_filename) do |f|
|
|
174
|
+
f << shbang << "\n"
|
|
175
|
+
f.puts "# encoding: UTF-8"
|
|
176
|
+
f.puts "# Generated by wsdl2ruby (#{::SOAP::VERSION::FORK_STRING})\n"
|
|
177
|
+
f << "require_relative '#{@servant_skelton_filename}'\n" if @servant_skelton_filename
|
|
178
|
+
f << "require_relative '#{@mr_filename}'\n" if @mr_filename
|
|
179
|
+
f << WSDL::SOAP::ServletStubCreator.new(@wsdl, @name_creator, @modulepath).dump(create_name(servicename))
|
|
180
|
+
end
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
def create_driver(porttypename, drivername_postfix)
|
|
184
|
+
@logger.info { "Creating driver." }
|
|
185
|
+
@driver_filename = ((porttypename || @name) + 'Driver.rb').underscore
|
|
186
|
+
creator = WSDL::SOAP::DriverCreator.new(@wsdl, @name_creator, @modulepath)
|
|
187
|
+
creator.drivername_postfix = drivername_postfix
|
|
188
|
+
check_file(@driver_filename) or return
|
|
189
|
+
write_file(@driver_filename) do |f|
|
|
190
|
+
f.puts "# encoding: UTF-8"
|
|
191
|
+
f.puts "# Generated by wsdl2ruby (#{::SOAP::VERSION::FORK_STRING})\n"
|
|
192
|
+
#f << "require_relative '#{@classdef_filename}'\n" if @classdef_filename non carico il file delle classi
|
|
193
|
+
f << "require_relative '#{@mr_filename}'\n" if @mr_filename
|
|
194
|
+
f << creator.dump(create_name(porttypename))
|
|
195
|
+
end
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
def write_file(filename)
|
|
199
|
+
if @basedir
|
|
200
|
+
filename = File.join(basedir, filename)
|
|
201
|
+
end
|
|
202
|
+
File.open(filename, "w") do |f|
|
|
203
|
+
yield f
|
|
204
|
+
end
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
def check_file(filename)
|
|
208
|
+
if @basedir
|
|
209
|
+
filename = File.join(basedir, filename)
|
|
210
|
+
end
|
|
211
|
+
if FileTest.exist?(filename)
|
|
212
|
+
if @opt.key?('force')
|
|
213
|
+
@logger.warn {
|
|
214
|
+
"File '#{filename}' exists but overrides it."
|
|
215
|
+
}
|
|
216
|
+
true
|
|
217
|
+
else
|
|
218
|
+
@logger.warn {
|
|
219
|
+
"File '#{filename}' exists. #{$0} did not override it."
|
|
220
|
+
}
|
|
221
|
+
false
|
|
222
|
+
end
|
|
223
|
+
else
|
|
224
|
+
@logger.info { "Creates file '#{filename}'." }
|
|
225
|
+
true
|
|
226
|
+
end
|
|
227
|
+
end
|
|
228
|
+
|
|
229
|
+
def shbang
|
|
230
|
+
"#!/usr/bin/env ruby"
|
|
231
|
+
end
|
|
232
|
+
|
|
233
|
+
def create_name(name)
|
|
234
|
+
name ? XSD::QName.new(@wsdl.targetnamespace, name) : nil
|
|
235
|
+
end
|
|
236
|
+
|
|
237
|
+
def import(location)
|
|
238
|
+
WSDL::Importer.import(location)
|
|
239
|
+
end
|
|
240
|
+
end
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
end
|
|
244
|
+
end
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
if __FILE__ == $0
|
|
248
|
+
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.")
|
|
249
|
+
end
|
data/lib/wsdl/types.rb
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
# WSDL4R - WSDL types 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 Types < Info
|
|
17
|
+
attr_reader :schemas
|
|
18
|
+
|
|
19
|
+
def initialize
|
|
20
|
+
super
|
|
21
|
+
@schemas = []
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def parse_element(element)
|
|
25
|
+
case element
|
|
26
|
+
when SchemaName
|
|
27
|
+
o = XMLSchema::Schema.new
|
|
28
|
+
o.location = parent.location
|
|
29
|
+
@schemas << o
|
|
30
|
+
o
|
|
31
|
+
when DocumentationName
|
|
32
|
+
o = Documentation.new
|
|
33
|
+
o
|
|
34
|
+
else
|
|
35
|
+
nil
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def parse_attr(attr, value)
|
|
40
|
+
nil
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
end
|
data/lib/wsdl/wsdl.rb
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
# WSDL4R - Base definitions.
|
|
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 'soap/nestedexception'
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
module WSDL
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
Version = '0.0.2'
|
|
18
|
+
|
|
19
|
+
Namespace = 'http://schemas.xmlsoap.org/wsdl/'
|
|
20
|
+
SOAPBindingNamespace ='http://schemas.xmlsoap.org/wsdl/soap/'
|
|
21
|
+
|
|
22
|
+
class Error < StandardError; include ::SOAP::NestedException; end
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
# WSDL4R - XMLSchema complexType definition for 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/xmlSchema/content'
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
module WSDL
|
|
14
|
+
module XMLSchema
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class All < Content
|
|
18
|
+
def initialize
|
|
19
|
+
super()
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
# WSDL4R - WSDL SOAP documentation element.
|
|
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 XMLSchema
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class Annotation < Info
|
|
18
|
+
def initialize
|
|
19
|
+
super
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def parse_element(element)
|
|
23
|
+
# Accepts any element.
|
|
24
|
+
self
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def parse_attr(attr, value)
|
|
28
|
+
# Accepts any attribute.
|
|
29
|
+
true
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
# WSDL4R - XMLSchema any definition for 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
|
+
|
|
12
|
+
|
|
13
|
+
module WSDL
|
|
14
|
+
module XMLSchema
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class Any < Info
|
|
18
|
+
attr_accessor :maxoccurs
|
|
19
|
+
attr_accessor :minoccurs
|
|
20
|
+
attr_accessor :namespace
|
|
21
|
+
attr_accessor :process_contents
|
|
22
|
+
|
|
23
|
+
def initialize
|
|
24
|
+
super()
|
|
25
|
+
@maxoccurs = 1
|
|
26
|
+
@minoccurs = 1
|
|
27
|
+
@namespace = '##any'
|
|
28
|
+
@process_contents = 'strict'
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def targetnamespace
|
|
32
|
+
parent.targetnamespace
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def parse_element(element)
|
|
36
|
+
nil
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def parse_attr(attr, value)
|
|
40
|
+
case attr
|
|
41
|
+
when MaxOccursAttrName
|
|
42
|
+
if value.source == 'unbounded'
|
|
43
|
+
@maxoccurs = nil
|
|
44
|
+
else
|
|
45
|
+
@maxoccurs = Integer(value.source)
|
|
46
|
+
end
|
|
47
|
+
value.source
|
|
48
|
+
when MinOccursAttrName
|
|
49
|
+
@minoccurs = Integer(value.source)
|
|
50
|
+
when NamespaceAttrName
|
|
51
|
+
@namespace = value.source
|
|
52
|
+
when ProcessContentsAttrName
|
|
53
|
+
@process_contents = value.source
|
|
54
|
+
else
|
|
55
|
+
nil
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
end
|
|
62
|
+
end
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
# WSDL4R - XMLSchema anyAttribute definition for 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
|
+
|
|
12
|
+
|
|
13
|
+
module WSDL
|
|
14
|
+
module XMLSchema
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class AnyAttribute < Info
|
|
18
|
+
attr_accessor :namespace
|
|
19
|
+
attr_accessor :processcontents
|
|
20
|
+
|
|
21
|
+
def initialize
|
|
22
|
+
super()
|
|
23
|
+
@namespace = '##any'
|
|
24
|
+
@processcontents = 'strict'
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def targetnamespace
|
|
28
|
+
parent.targetnamespace
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def parse_element(element)
|
|
32
|
+
nil
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def parse_attr(attr, value)
|
|
36
|
+
case attr
|
|
37
|
+
when NamespaceAttrName
|
|
38
|
+
@namespace = value.source
|
|
39
|
+
when ProcessContentsAttrName
|
|
40
|
+
@processcontents = value.source
|
|
41
|
+
else
|
|
42
|
+
nil
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
end
|
|
49
|
+
end
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
# WSDL4R - XMLSchema attribute definition for 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/xmlSchema/ref'
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
module WSDL
|
|
15
|
+
module XMLSchema
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class Attribute < Info
|
|
19
|
+
include Ref
|
|
20
|
+
|
|
21
|
+
attr_writer :use
|
|
22
|
+
attr_writer :form
|
|
23
|
+
attr_writer :name
|
|
24
|
+
attr_writer :type
|
|
25
|
+
attr_writer :local_simpletype
|
|
26
|
+
attr_writer :default
|
|
27
|
+
attr_writer :fixed
|
|
28
|
+
|
|
29
|
+
attr_reader_ref :use
|
|
30
|
+
attr_reader_ref :form
|
|
31
|
+
attr_reader_ref :name
|
|
32
|
+
attr_reader_ref :type
|
|
33
|
+
attr_reader_ref :local_simpletype
|
|
34
|
+
attr_reader_ref :default
|
|
35
|
+
attr_reader_ref :fixed
|
|
36
|
+
|
|
37
|
+
attr_accessor :arytype
|
|
38
|
+
|
|
39
|
+
def initialize
|
|
40
|
+
super
|
|
41
|
+
@use = nil
|
|
42
|
+
@form = nil
|
|
43
|
+
@name = nil
|
|
44
|
+
@type = nil
|
|
45
|
+
@local_simpletype = nil
|
|
46
|
+
@default = nil
|
|
47
|
+
@fixed = nil
|
|
48
|
+
@ref = nil
|
|
49
|
+
@refelement = nil
|
|
50
|
+
@arytype = nil
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def targetnamespace
|
|
54
|
+
parent.targetnamespace
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def parse_element(element)
|
|
58
|
+
case element
|
|
59
|
+
when SimpleTypeName
|
|
60
|
+
@local_simpletype = SimpleType.new
|
|
61
|
+
@local_simpletype
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def parse_attr(attr, value)
|
|
66
|
+
case attr
|
|
67
|
+
when RefAttrName
|
|
68
|
+
@ref = value
|
|
69
|
+
when UseAttrName
|
|
70
|
+
@use = value.source
|
|
71
|
+
when FormAttrName
|
|
72
|
+
@form = value.source
|
|
73
|
+
when NameAttrName
|
|
74
|
+
if directelement?
|
|
75
|
+
@name = XSD::QName.new(targetnamespace, value.source)
|
|
76
|
+
else
|
|
77
|
+
@name = XSD::QName.new(nil, value.source)
|
|
78
|
+
end
|
|
79
|
+
when TypeAttrName
|
|
80
|
+
@type = value
|
|
81
|
+
when DefaultAttrName
|
|
82
|
+
@default = value.source
|
|
83
|
+
when FixedAttrName
|
|
84
|
+
@fixed = value.source
|
|
85
|
+
when ArrayTypeAttrName
|
|
86
|
+
@arytype = value
|
|
87
|
+
else
|
|
88
|
+
nil
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
private
|
|
93
|
+
|
|
94
|
+
def directelement?
|
|
95
|
+
parent.is_a?(Schema)
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def refelement
|
|
99
|
+
@refelement ||= root.collect_attributes[@ref]
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
end
|
|
105
|
+
end
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
# WSDL4R - XMLSchema attributeGroup definition for 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/xmlSchema/ref'
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
module WSDL
|
|
15
|
+
module XMLSchema
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class AttributeGroup < Info
|
|
19
|
+
include Ref
|
|
20
|
+
|
|
21
|
+
attr_writer :name # required
|
|
22
|
+
attr_writer :attributes
|
|
23
|
+
|
|
24
|
+
attr_reader_ref :name
|
|
25
|
+
attr_reader_ref :attributes
|
|
26
|
+
|
|
27
|
+
def initialize
|
|
28
|
+
super
|
|
29
|
+
@name = nil
|
|
30
|
+
@attributes = nil
|
|
31
|
+
@ref = nil
|
|
32
|
+
@refelement = nil
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def targetnamespace
|
|
36
|
+
parent.targetnamespace
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def parse_element(element)
|
|
40
|
+
case element
|
|
41
|
+
when AttributeName
|
|
42
|
+
@attributes ||= XSD::NamedElements.new
|
|
43
|
+
o = Attribute.new
|
|
44
|
+
@attributes << o
|
|
45
|
+
o
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def parse_attr(attr, value)
|
|
50
|
+
case attr
|
|
51
|
+
when NameAttrName
|
|
52
|
+
@name = XSD::QName.new(targetnamespace, value.source)
|
|
53
|
+
when RefAttrName
|
|
54
|
+
@ref = value
|
|
55
|
+
else
|
|
56
|
+
nil
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
private
|
|
61
|
+
|
|
62
|
+
def refelement
|
|
63
|
+
@refelement ||= root.collect_attributegroups[@ref]
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
end
|
|
69
|
+
end
|