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.
Files changed (165) hide show
  1. checksums.yaml +7 -0
  2. data/bin/wsdl2ruby.rb +140 -0
  3. data/bin/wsdl2ruby_rails.rb +140 -0
  4. data/bin/xsd2ruby.rb +92 -0
  5. data/lib/soap/attachment.rb +109 -0
  6. data/lib/soap/attrproxy.rb +35 -0
  7. data/lib/soap/baseData.rb +1095 -0
  8. data/lib/soap/element.rb +278 -0
  9. data/lib/soap/encodingstyle/aspDotNetHandler.rb +208 -0
  10. data/lib/soap/encodingstyle/handler.rb +121 -0
  11. data/lib/soap/encodingstyle/literalHandler.rb +196 -0
  12. data/lib/soap/encodingstyle/soapHandler.rb +560 -0
  13. data/lib/soap/filter/filterchain.rb +52 -0
  14. data/lib/soap/filter/handler.rb +32 -0
  15. data/lib/soap/filter/streamhandler.rb +30 -0
  16. data/lib/soap/filter.rb +14 -0
  17. data/lib/soap/generator.rb +299 -0
  18. data/lib/soap/header/handler.rb +64 -0
  19. data/lib/soap/header/handlerset.rb +78 -0
  20. data/lib/soap/header/mappinghandler.rb +48 -0
  21. data/lib/soap/header/simplehandler.rb +45 -0
  22. data/lib/soap/httpconfigloader.rb +140 -0
  23. data/lib/soap/mapping/encodedregistry.rb +541 -0
  24. data/lib/soap/mapping/factory.rb +389 -0
  25. data/lib/soap/mapping/literalregistry.rb +392 -0
  26. data/lib/soap/mapping/mapping.rb +577 -0
  27. data/lib/soap/mapping/registry.rb +297 -0
  28. data/lib/soap/mapping/rubytypeFactory.rb +446 -0
  29. data/lib/soap/mapping/schemadefinition.rb +171 -0
  30. data/lib/soap/mapping/typeMap.rb +107 -0
  31. data/lib/soap/mapping/wsdlencodedregistry.rb +212 -0
  32. data/lib/soap/mapping/wsdlliteralregistry.rb +249 -0
  33. data/lib/soap/mapping.rb +13 -0
  34. data/lib/soap/marshal.rb +60 -0
  35. data/lib/soap/mimemessage.rb +243 -0
  36. data/lib/soap/nestedexception.rb +43 -0
  37. data/lib/soap/netHttpClient.rb +242 -0
  38. data/lib/soap/ns.rb +39 -0
  39. data/lib/soap/parser.rb +253 -0
  40. data/lib/soap/processor.rb +67 -0
  41. data/lib/soap/property.rb +330 -0
  42. data/lib/soap/proxy.rb +15 -0
  43. data/lib/soap/rpc/cgistub.rb +249 -0
  44. data/lib/soap/rpc/driver.rb +222 -0
  45. data/lib/soap/rpc/element.rb +375 -0
  46. data/lib/soap/rpc/httpserver.rb +144 -0
  47. data/lib/soap/rpc/methodDef.rb +69 -0
  48. data/lib/soap/rpc/proxy.rb +573 -0
  49. data/lib/soap/rpc/router.rb +672 -0
  50. data/lib/soap/rpc/rpc.rb +26 -0
  51. data/lib/soap/rpc/soaplet.rb +201 -0
  52. data/lib/soap/rpc/standaloneServer.rb +44 -0
  53. data/lib/soap/soap.rb +163 -0
  54. data/lib/soap/streamHandler.rb +302 -0
  55. data/lib/soap/version.rb +12 -0
  56. data/lib/soap/wsdlDriver.rb +165 -0
  57. data/lib/wsdl/binding.rb +66 -0
  58. data/lib/wsdl/data.rb +65 -0
  59. data/lib/wsdl/definitions.rb +237 -0
  60. data/lib/wsdl/documentation.rb +33 -0
  61. data/lib/wsdl/import.rb +81 -0
  62. data/lib/wsdl/importer.rb +39 -0
  63. data/lib/wsdl/info.rb +51 -0
  64. data/lib/wsdl/message.rb +55 -0
  65. data/lib/wsdl/operation.rb +152 -0
  66. data/lib/wsdl/operationBinding.rb +241 -0
  67. data/lib/wsdl/param.rb +94 -0
  68. data/lib/wsdl/parser.rb +180 -0
  69. data/lib/wsdl/part.rb +53 -0
  70. data/lib/wsdl/port.rb +67 -0
  71. data/lib/wsdl/portType.rb +76 -0
  72. data/lib/wsdl/service.rb +62 -0
  73. data/lib/wsdl/soap/address.rb +41 -0
  74. data/lib/wsdl/soap/binding.rb +50 -0
  75. data/lib/wsdl/soap/body.rb +59 -0
  76. data/lib/wsdl/soap/cgiStubCreator.rb +93 -0
  77. data/lib/wsdl/soap/classDefCreator.rb +529 -0
  78. data/lib/wsdl/soap/classDefCreatorSupport.rb +242 -0
  79. data/lib/wsdl/soap/classNameCreator.rb +57 -0
  80. data/lib/wsdl/soap/clientSkeltonCreator.rb +107 -0
  81. data/lib/wsdl/soap/complexType.rb +174 -0
  82. data/lib/wsdl/soap/data.rb +43 -0
  83. data/lib/wsdl/soap/definitions.rb +201 -0
  84. data/lib/wsdl/soap/driverCreator.rb +121 -0
  85. data/lib/wsdl/soap/element.rb +34 -0
  86. data/lib/wsdl/soap/encodedMappingRegistryCreator.rb +74 -0
  87. data/lib/wsdl/soap/fault.rb +57 -0
  88. data/lib/wsdl/soap/header.rb +87 -0
  89. data/lib/wsdl/soap/headerfault.rb +57 -0
  90. data/lib/wsdl/soap/literalMappingRegistryCreator.rb +116 -0
  91. data/lib/wsdl/soap/mappingRegistryCreator.rb +59 -0
  92. data/lib/wsdl/soap/mappingRegistryCreatorSupport.rb +380 -0
  93. data/lib/wsdl/soap/methodDefCreator.rb +200 -0
  94. data/lib/wsdl/soap/operation.rb +113 -0
  95. data/lib/wsdl/soap/servantSkeltonCreator.rb +92 -0
  96. data/lib/wsdl/soap/servletStubCreator.rb +105 -0
  97. data/lib/wsdl/soap/standaloneServerStubCreator.rb +101 -0
  98. data/lib/wsdl/soap/wsdl2ruby.rb +249 -0
  99. data/lib/wsdl/types.rb +45 -0
  100. data/lib/wsdl/wsdl.rb +25 -0
  101. data/lib/wsdl/xmlSchema/all.rb +25 -0
  102. data/lib/wsdl/xmlSchema/annotation.rb +35 -0
  103. data/lib/wsdl/xmlSchema/any.rb +62 -0
  104. data/lib/wsdl/xmlSchema/anyAttribute.rb +49 -0
  105. data/lib/wsdl/xmlSchema/attribute.rb +105 -0
  106. data/lib/wsdl/xmlSchema/attributeGroup.rb +69 -0
  107. data/lib/wsdl/xmlSchema/choice.rb +59 -0
  108. data/lib/wsdl/xmlSchema/complexContent.rb +98 -0
  109. data/lib/wsdl/xmlSchema/complexExtension.rb +120 -0
  110. data/lib/wsdl/xmlSchema/complexRestriction.rb +105 -0
  111. data/lib/wsdl/xmlSchema/complexType.rb +194 -0
  112. data/lib/wsdl/xmlSchema/content.rb +96 -0
  113. data/lib/wsdl/xmlSchema/data.rb +117 -0
  114. data/lib/wsdl/xmlSchema/element.rb +154 -0
  115. data/lib/wsdl/xmlSchema/enumeration.rb +37 -0
  116. data/lib/wsdl/xmlSchema/fractiondigits.rb +38 -0
  117. data/lib/wsdl/xmlSchema/group.rb +101 -0
  118. data/lib/wsdl/xmlSchema/import.rb +53 -0
  119. data/lib/wsdl/xmlSchema/importHandler.rb +45 -0
  120. data/lib/wsdl/xmlSchema/importer.rb +103 -0
  121. data/lib/wsdl/xmlSchema/include.rb +48 -0
  122. data/lib/wsdl/xmlSchema/length.rb +38 -0
  123. data/lib/wsdl/xmlSchema/list.rb +49 -0
  124. data/lib/wsdl/xmlSchema/maxexclusive.rb +38 -0
  125. data/lib/wsdl/xmlSchema/maxinclusive.rb +38 -0
  126. data/lib/wsdl/xmlSchema/maxlength.rb +38 -0
  127. data/lib/wsdl/xmlSchema/minexclusive.rb +38 -0
  128. data/lib/wsdl/xmlSchema/mininclusive.rb +38 -0
  129. data/lib/wsdl/xmlSchema/minlength.rb +38 -0
  130. data/lib/wsdl/xmlSchema/parser.rb +168 -0
  131. data/lib/wsdl/xmlSchema/pattern.rb +37 -0
  132. data/lib/wsdl/xmlSchema/ref.rb +34 -0
  133. data/lib/wsdl/xmlSchema/schema.rb +179 -0
  134. data/lib/wsdl/xmlSchema/sequence.rb +55 -0
  135. data/lib/wsdl/xmlSchema/simpleContent.rb +70 -0
  136. data/lib/wsdl/xmlSchema/simpleExtension.rb +63 -0
  137. data/lib/wsdl/xmlSchema/simpleRestriction.rb +133 -0
  138. data/lib/wsdl/xmlSchema/simpleType.rb +88 -0
  139. data/lib/wsdl/xmlSchema/totaldigits.rb +38 -0
  140. data/lib/wsdl/xmlSchema/union.rb +36 -0
  141. data/lib/wsdl/xmlSchema/unique.rb +35 -0
  142. data/lib/wsdl/xmlSchema/whitespace.rb +38 -0
  143. data/lib/wsdl/xmlSchema/xsd2ruby.rb +177 -0
  144. data/lib/xsd/charset.rb +190 -0
  145. data/lib/xsd/codegen/classdef.rb +230 -0
  146. data/lib/xsd/codegen/commentdef.rb +35 -0
  147. data/lib/xsd/codegen/gensupport.rb +277 -0
  148. data/lib/xsd/codegen/methoddef.rb +71 -0
  149. data/lib/xsd/codegen/moduledef.rb +209 -0
  150. data/lib/xsd/codegen.rb +13 -0
  151. data/lib/xsd/datatypes.rb +1465 -0
  152. data/lib/xsd/datatypes1999.rb +21 -0
  153. data/lib/xsd/iconvcharset.rb +33 -0
  154. data/lib/xsd/mapping.rb +69 -0
  155. data/lib/xsd/namedelements.rb +133 -0
  156. data/lib/xsd/ns.rb +183 -0
  157. data/lib/xsd/qname.rb +80 -0
  158. data/lib/xsd/xmlparser/libxmlparser.rb +136 -0
  159. data/lib/xsd/xmlparser/nokogiriparser.rb +63 -0
  160. data/lib/xsd/xmlparser/ogaparser.rb +53 -0
  161. data/lib/xsd/xmlparser/oxparser.rb +97 -0
  162. data/lib/xsd/xmlparser/parser.rb +101 -0
  163. data/lib/xsd/xmlparser/rexmlparser.rb +54 -0
  164. data/lib/xsd/xmlparser.rb +81 -0
  165. 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