reidiculous-actionwebservice-client 3.0.4
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.
- data/CHANGELOG +320 -0
- data/MIT-LICENSE +21 -0
- data/README +381 -0
- data/Rakefile +180 -0
- data/TODO +32 -0
- data/lib/action_web_service.rb +71 -0
- data/lib/action_web_service/api.rb +297 -0
- data/lib/action_web_service/base.rb +38 -0
- data/lib/action_web_service/casting.rb +149 -0
- data/lib/action_web_service/client.rb +3 -0
- data/lib/action_web_service/client/base.rb +28 -0
- data/lib/action_web_service/client/soap_client.rb +113 -0
- data/lib/action_web_service/client/xmlrpc_client.rb +58 -0
- data/lib/action_web_service/container.rb +3 -0
- data/lib/action_web_service/container/action_controller_container.rb +93 -0
- data/lib/action_web_service/container/delegated_container.rb +86 -0
- data/lib/action_web_service/container/direct_container.rb +69 -0
- data/lib/action_web_service/dispatcher.rb +2 -0
- data/lib/action_web_service/dispatcher/abstract.rb +207 -0
- data/lib/action_web_service/dispatcher/action_controller_dispatcher.rb +379 -0
- data/lib/action_web_service/invocation.rb +202 -0
- data/lib/action_web_service/protocol.rb +4 -0
- data/lib/action_web_service/protocol/abstract.rb +115 -0
- data/lib/action_web_service/protocol/discovery.rb +37 -0
- data/lib/action_web_service/protocol/soap_protocol.rb +176 -0
- data/lib/action_web_service/protocol/soap_protocol/marshaler.rb +242 -0
- data/lib/action_web_service/protocol/xmlrpc_protocol.rb +122 -0
- data/lib/action_web_service/scaffolding.rb +281 -0
- data/lib/action_web_service/soap/attachment.rb +107 -0
- data/lib/action_web_service/soap/baseData.rb +942 -0
- data/lib/action_web_service/soap/element.rb +258 -0
- data/lib/action_web_service/soap/encodingstyle/aspDotNetHandler.rb +213 -0
- data/lib/action_web_service/soap/encodingstyle/handler.rb +100 -0
- data/lib/action_web_service/soap/encodingstyle/literalHandler.rb +226 -0
- data/lib/action_web_service/soap/encodingstyle/soapHandler.rb +582 -0
- data/lib/action_web_service/soap/generator.rb +268 -0
- data/lib/action_web_service/soap/header/handler.rb +57 -0
- data/lib/action_web_service/soap/header/handlerset.rb +70 -0
- data/lib/action_web_service/soap/header/simplehandler.rb +44 -0
- data/lib/action_web_service/soap/httpconfigloader.rb +119 -0
- data/lib/action_web_service/soap/mapping.rb +10 -0
- data/lib/action_web_service/soap/mapping/factory.rb +355 -0
- data/lib/action_web_service/soap/mapping/mapping.rb +381 -0
- data/lib/action_web_service/soap/mapping/registry.rb +541 -0
- data/lib/action_web_service/soap/mapping/rubytypeFactory.rb +475 -0
- data/lib/action_web_service/soap/mapping/typeMap.rb +50 -0
- data/lib/action_web_service/soap/mapping/wsdlencodedregistry.rb +280 -0
- data/lib/action_web_service/soap/mapping/wsdlliteralregistry.rb +418 -0
- data/lib/action_web_service/soap/marshal.rb +59 -0
- data/lib/action_web_service/soap/mimemessage.rb +240 -0
- data/lib/action_web_service/soap/netHttpClient.rb +190 -0
- data/lib/action_web_service/soap/parser.rb +251 -0
- data/lib/action_web_service/soap/processor.rb +66 -0
- data/lib/action_web_service/soap/property.rb +333 -0
- data/lib/action_web_service/soap/rpc/cgistub.rb +206 -0
- data/lib/action_web_service/soap/rpc/driver.rb +254 -0
- data/lib/action_web_service/soap/rpc/element.rb +325 -0
- data/lib/action_web_service/soap/rpc/httpserver.rb +129 -0
- data/lib/action_web_service/soap/rpc/proxy.rb +497 -0
- data/lib/action_web_service/soap/rpc/router.rb +594 -0
- data/lib/action_web_service/soap/rpc/rpc.rb +25 -0
- data/lib/action_web_service/soap/rpc/soaplet.rb +162 -0
- data/lib/action_web_service/soap/rpc/standaloneServer.rb +43 -0
- data/lib/action_web_service/soap/soap.rb +140 -0
- data/lib/action_web_service/soap/streamHandler.rb +229 -0
- data/lib/action_web_service/soap/wsdlDriver.rb +575 -0
- data/lib/action_web_service/struct.rb +64 -0
- data/lib/action_web_service/support/class_inheritable_options.rb +28 -0
- data/lib/action_web_service/support/signature_types.rb +227 -0
- data/lib/action_web_service/test_invoke.rb +110 -0
- data/lib/action_web_service/version.rb +9 -0
- data/lib/action_web_service/wsdl/binding.rb +65 -0
- data/lib/action_web_service/wsdl/data.rb +64 -0
- data/lib/action_web_service/wsdl/definitions.rb +250 -0
- data/lib/action_web_service/wsdl/documentation.rb +32 -0
- data/lib/action_web_service/wsdl/import.rb +80 -0
- data/lib/action_web_service/wsdl/importer.rb +38 -0
- data/lib/action_web_service/wsdl/info.rb +39 -0
- data/lib/action_web_service/wsdl/message.rb +54 -0
- data/lib/action_web_service/wsdl/operation.rb +130 -0
- data/lib/action_web_service/wsdl/operationBinding.rb +108 -0
- data/lib/action_web_service/wsdl/param.rb +85 -0
- data/lib/action_web_service/wsdl/parser.rb +163 -0
- data/lib/action_web_service/wsdl/part.rb +52 -0
- data/lib/action_web_service/wsdl/port.rb +84 -0
- data/lib/action_web_service/wsdl/portType.rb +73 -0
- data/lib/action_web_service/wsdl/service.rb +61 -0
- data/lib/action_web_service/wsdl/soap/address.rb +40 -0
- data/lib/action_web_service/wsdl/soap/binding.rb +49 -0
- data/lib/action_web_service/wsdl/soap/body.rb +56 -0
- data/lib/action_web_service/wsdl/soap/cgiStubCreator.rb +76 -0
- data/lib/action_web_service/wsdl/soap/classDefCreator.rb +314 -0
- data/lib/action_web_service/wsdl/soap/classDefCreatorSupport.rb +126 -0
- data/lib/action_web_service/wsdl/soap/clientSkeltonCreator.rb +78 -0
- data/lib/action_web_service/wsdl/soap/complexType.rb +161 -0
- data/lib/action_web_service/wsdl/soap/data.rb +42 -0
- data/lib/action_web_service/wsdl/soap/definitions.rb +149 -0
- data/lib/action_web_service/wsdl/soap/driverCreator.rb +95 -0
- data/lib/action_web_service/wsdl/soap/element.rb +28 -0
- data/lib/action_web_service/wsdl/soap/fault.rb +56 -0
- data/lib/action_web_service/wsdl/soap/header.rb +86 -0
- data/lib/action_web_service/wsdl/soap/headerfault.rb +56 -0
- data/lib/action_web_service/wsdl/soap/mappingRegistryCreator.rb +92 -0
- data/lib/action_web_service/wsdl/soap/methodDefCreator.rb +228 -0
- data/lib/action_web_service/wsdl/soap/operation.rb +122 -0
- data/lib/action_web_service/wsdl/soap/servantSkeltonCreator.rb +67 -0
- data/lib/action_web_service/wsdl/soap/standaloneServerStubCreator.rb +85 -0
- data/lib/action_web_service/wsdl/soap/wsdl2ruby.rb +176 -0
- data/lib/action_web_service/wsdl/types.rb +43 -0
- data/lib/action_web_service/wsdl/wsdl.rb +23 -0
- data/lib/action_web_service/wsdl/xmlSchema/all.rb +69 -0
- data/lib/action_web_service/wsdl/xmlSchema/annotation.rb +34 -0
- data/lib/action_web_service/wsdl/xmlSchema/any.rb +56 -0
- data/lib/action_web_service/wsdl/xmlSchema/attribute.rb +127 -0
- data/lib/action_web_service/wsdl/xmlSchema/choice.rb +69 -0
- data/lib/action_web_service/wsdl/xmlSchema/complexContent.rb +92 -0
- data/lib/action_web_service/wsdl/xmlSchema/complexType.rb +139 -0
- data/lib/action_web_service/wsdl/xmlSchema/content.rb +96 -0
- data/lib/action_web_service/wsdl/xmlSchema/data.rb +80 -0
- data/lib/action_web_service/wsdl/xmlSchema/element.rb +154 -0
- data/lib/action_web_service/wsdl/xmlSchema/enumeration.rb +36 -0
- data/lib/action_web_service/wsdl/xmlSchema/import.rb +65 -0
- data/lib/action_web_service/wsdl/xmlSchema/importer.rb +87 -0
- data/lib/action_web_service/wsdl/xmlSchema/include.rb +54 -0
- data/lib/action_web_service/wsdl/xmlSchema/length.rb +35 -0
- data/lib/action_web_service/wsdl/xmlSchema/parser.rb +166 -0
- data/lib/action_web_service/wsdl/xmlSchema/pattern.rb +36 -0
- data/lib/action_web_service/wsdl/xmlSchema/schema.rb +143 -0
- data/lib/action_web_service/wsdl/xmlSchema/sequence.rb +69 -0
- data/lib/action_web_service/wsdl/xmlSchema/simpleContent.rb +65 -0
- data/lib/action_web_service/wsdl/xmlSchema/simpleExtension.rb +54 -0
- data/lib/action_web_service/wsdl/xmlSchema/simpleRestriction.rb +73 -0
- data/lib/action_web_service/wsdl/xmlSchema/simpleType.rb +73 -0
- data/lib/action_web_service/wsdl/xmlSchema/unique.rb +34 -0
- data/lib/action_web_service/wsdl/xmlSchema/xsd2ruby.rb +107 -0
- data/lib/action_web_service/xsd/charset.rb +187 -0
- data/lib/action_web_service/xsd/codegen.rb +12 -0
- data/lib/action_web_service/xsd/codegen/classdef.rb +203 -0
- data/lib/action_web_service/xsd/codegen/commentdef.rb +34 -0
- data/lib/action_web_service/xsd/codegen/gensupport.rb +166 -0
- data/lib/action_web_service/xsd/codegen/methoddef.rb +63 -0
- data/lib/action_web_service/xsd/codegen/moduledef.rb +191 -0
- data/lib/action_web_service/xsd/datatypes.rb +1269 -0
- data/lib/action_web_service/xsd/datatypes1999.rb +20 -0
- data/lib/action_web_service/xsd/iconvcharset.rb +33 -0
- data/lib/action_web_service/xsd/mapping.rb +42 -0
- data/lib/action_web_service/xsd/namedelements.rb +95 -0
- data/lib/action_web_service/xsd/ns.rb +140 -0
- data/lib/action_web_service/xsd/qname.rb +78 -0
- data/lib/action_web_service/xsd/xmlparser.rb +61 -0
- data/lib/action_web_service/xsd/xmlparser/parser.rb +96 -0
- data/lib/action_web_service/xsd/xmlparser/rexmlparser.rb +54 -0
- data/lib/action_web_service/xsd/xmlparser/xmlparser.rb +50 -0
- data/lib/action_web_service/xsd/xmlparser/xmlscanner.rb +147 -0
- data/lib/actionwebservice.rb +1 -0
- data/setup.rb +1379 -0
- data/test/abstract_client.rb +183 -0
- data/test/abstract_dispatcher.rb +548 -0
- data/test/abstract_unit.rb +45 -0
- data/test/api_test.rb +103 -0
- data/test/apis/auto_load_api.rb +3 -0
- data/test/apis/broken_auto_load_api.rb +2 -0
- data/test/base_test.rb +42 -0
- data/test/casting_test.rb +95 -0
- data/test/client_soap_test.rb +156 -0
- data/test/client_xmlrpc_test.rb +153 -0
- data/test/container_test.rb +73 -0
- data/test/dispatcher_action_controller_soap_test.rb +139 -0
- data/test/dispatcher_action_controller_xmlrpc_test.rb +59 -0
- data/test/fixtures/db_definitions/mysql.sql +8 -0
- data/test/fixtures/db_definitions/sqlite3.sql +8 -0
- data/test/fixtures/users.yml +12 -0
- data/test/gencov +3 -0
- data/test/invocation_test.rb +185 -0
- data/test/run +6 -0
- data/test/scaffolded_controller_test.rb +146 -0
- data/test/struct_test.rb +52 -0
- data/test/test_invoke_test.rb +112 -0
- metadata +265 -0
@@ -0,0 +1,64 @@
|
|
1
|
+
# WSDL4R - WSDL data definitions.
|
2
|
+
# Copyright (C) 2002, 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
|
3
|
+
|
4
|
+
# This program is copyrighted free software by NAKAMURA, Hiroshi. You can
|
5
|
+
# redistribute it and/or modify it under the same terms of Ruby's license;
|
6
|
+
# either the dual license version in 2003, or any later version.
|
7
|
+
|
8
|
+
|
9
|
+
require 'action_web_service/xsd/qname'
|
10
|
+
require 'action_web_service/wsdl/documentation'
|
11
|
+
require 'action_web_service/wsdl/definitions'
|
12
|
+
require 'action_web_service/wsdl/types'
|
13
|
+
require 'action_web_service/wsdl/message'
|
14
|
+
require 'action_web_service/wsdl/part'
|
15
|
+
require 'action_web_service/wsdl/portType'
|
16
|
+
require 'action_web_service/wsdl/operation'
|
17
|
+
require 'action_web_service/wsdl/param'
|
18
|
+
require 'action_web_service/wsdl/binding'
|
19
|
+
require 'action_web_service/wsdl/operationBinding'
|
20
|
+
require 'action_web_service/wsdl/service'
|
21
|
+
require 'action_web_service/wsdl/port'
|
22
|
+
require 'action_web_service/wsdl/import'
|
23
|
+
|
24
|
+
|
25
|
+
module WSDL
|
26
|
+
|
27
|
+
|
28
|
+
ArrayTypeAttrName = XSD::QName.new(Namespace, 'arrayType')
|
29
|
+
BindingName = XSD::QName.new(Namespace, 'binding')
|
30
|
+
DefinitionsName = XSD::QName.new(Namespace, 'definitions')
|
31
|
+
DocumentationName = XSD::QName.new(Namespace, 'documentation')
|
32
|
+
FaultName = XSD::QName.new(Namespace, 'fault')
|
33
|
+
ImportName = XSD::QName.new(Namespace, 'import')
|
34
|
+
InputName = XSD::QName.new(Namespace, 'input')
|
35
|
+
MessageName = XSD::QName.new(Namespace, 'message')
|
36
|
+
OperationName = XSD::QName.new(Namespace, 'operation')
|
37
|
+
OutputName = XSD::QName.new(Namespace, 'output')
|
38
|
+
PartName = XSD::QName.new(Namespace, 'part')
|
39
|
+
PortName = XSD::QName.new(Namespace, 'port')
|
40
|
+
PortTypeName = XSD::QName.new(Namespace, 'portType')
|
41
|
+
ServiceName = XSD::QName.new(Namespace, 'service')
|
42
|
+
TypesName = XSD::QName.new(Namespace, 'types')
|
43
|
+
|
44
|
+
SchemaName = XSD::QName.new(XSD::Namespace, 'schema')
|
45
|
+
|
46
|
+
SOAPAddressName = XSD::QName.new(SOAPBindingNamespace, 'address')
|
47
|
+
SOAPBindingName = XSD::QName.new(SOAPBindingNamespace, 'binding')
|
48
|
+
SOAPHeaderName = XSD::QName.new(SOAPBindingNamespace, 'header')
|
49
|
+
SOAPBodyName = XSD::QName.new(SOAPBindingNamespace, 'body')
|
50
|
+
SOAPFaultName = XSD::QName.new(SOAPBindingNamespace, 'fault')
|
51
|
+
SOAPOperationName = XSD::QName.new(SOAPBindingNamespace, 'operation')
|
52
|
+
|
53
|
+
BindingAttrName = XSD::QName.new(nil, 'binding')
|
54
|
+
ElementAttrName = XSD::QName.new(nil, 'element')
|
55
|
+
LocationAttrName = XSD::QName.new(nil, 'location')
|
56
|
+
MessageAttrName = XSD::QName.new(nil, 'message')
|
57
|
+
NameAttrName = XSD::QName.new(nil, 'name')
|
58
|
+
NamespaceAttrName = XSD::QName.new(nil, 'namespace')
|
59
|
+
ParameterOrderAttrName = XSD::QName.new(nil, 'parameterOrder')
|
60
|
+
TargetNamespaceAttrName = XSD::QName.new(nil, 'targetNamespace')
|
61
|
+
TypeAttrName = XSD::QName.new(nil, 'type')
|
62
|
+
|
63
|
+
|
64
|
+
end
|
@@ -0,0 +1,250 @@
|
|
1
|
+
# WSDL4R - WSDL definitions.
|
2
|
+
# Copyright (C) 2002, 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
|
3
|
+
|
4
|
+
# This program is copyrighted free software by NAKAMURA, Hiroshi. You can
|
5
|
+
# redistribute it and/or modify it under the same terms of Ruby's license;
|
6
|
+
# either the dual license version in 2003, or any later version.
|
7
|
+
|
8
|
+
|
9
|
+
require 'action_web_service/wsdl/info'
|
10
|
+
require 'action_web_service/xsd/namedelements'
|
11
|
+
|
12
|
+
|
13
|
+
module WSDL
|
14
|
+
|
15
|
+
|
16
|
+
class Definitions < Info
|
17
|
+
attr_reader :name
|
18
|
+
attr_reader :targetnamespace
|
19
|
+
attr_reader :imports
|
20
|
+
|
21
|
+
attr_accessor :location
|
22
|
+
attr_reader :importedschema
|
23
|
+
|
24
|
+
def initialize
|
25
|
+
super
|
26
|
+
@name = nil
|
27
|
+
@targetnamespace = nil
|
28
|
+
@location = nil
|
29
|
+
@importedschema = {}
|
30
|
+
|
31
|
+
@types = nil
|
32
|
+
@imports = []
|
33
|
+
@messages = XSD::NamedElements.new
|
34
|
+
@porttypes = XSD::NamedElements.new
|
35
|
+
@bindings = XSD::NamedElements.new
|
36
|
+
@services = XSD::NamedElements.new
|
37
|
+
|
38
|
+
@anontypes = XSD::NamedElements.new
|
39
|
+
@root = self
|
40
|
+
end
|
41
|
+
|
42
|
+
def inspect
|
43
|
+
sprintf("#<%s:0x%x %s>", self.class.name, __id__, @name || '(unnamed)')
|
44
|
+
end
|
45
|
+
|
46
|
+
def targetnamespace=(targetnamespace)
|
47
|
+
@targetnamespace = targetnamespace
|
48
|
+
if @name
|
49
|
+
@name = XSD::QName.new(@targetnamespace, @name.name)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def collect_attributes
|
54
|
+
result = XSD::NamedElements.new
|
55
|
+
if @types
|
56
|
+
@types.schemas.each do |schema|
|
57
|
+
result.concat(schema.collect_attributes)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
@imports.each do |import|
|
61
|
+
result.concat(import.content.collect_attributes)
|
62
|
+
end
|
63
|
+
result
|
64
|
+
end
|
65
|
+
|
66
|
+
def collect_elements
|
67
|
+
result = XSD::NamedElements.new
|
68
|
+
if @types
|
69
|
+
@types.schemas.each do |schema|
|
70
|
+
result.concat(schema.collect_elements)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
@imports.each do |import|
|
74
|
+
result.concat(import.content.collect_elements)
|
75
|
+
end
|
76
|
+
result
|
77
|
+
end
|
78
|
+
|
79
|
+
def collect_complextypes
|
80
|
+
result = @anontypes.dup
|
81
|
+
if @types
|
82
|
+
@types.schemas.each do |schema|
|
83
|
+
result.concat(schema.collect_complextypes)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
@imports.each do |import|
|
87
|
+
result.concat(import.content.collect_complextypes)
|
88
|
+
end
|
89
|
+
result
|
90
|
+
end
|
91
|
+
|
92
|
+
def collect_simpletypes
|
93
|
+
result = XSD::NamedElements.new
|
94
|
+
if @types
|
95
|
+
@types.schemas.each do |schema|
|
96
|
+
result.concat(schema.collect_simpletypes)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
@imports.each do |import|
|
100
|
+
result.concat(import.content.collect_simpletypes)
|
101
|
+
end
|
102
|
+
result
|
103
|
+
end
|
104
|
+
|
105
|
+
# ToDo: simpletype must be accepted...
|
106
|
+
def add_type(complextype)
|
107
|
+
@anontypes << complextype
|
108
|
+
end
|
109
|
+
|
110
|
+
def messages
|
111
|
+
result = @messages.dup
|
112
|
+
@imports.each do |import|
|
113
|
+
result.concat(import.content.messages) if self.class === import.content
|
114
|
+
end
|
115
|
+
result
|
116
|
+
end
|
117
|
+
|
118
|
+
def porttypes
|
119
|
+
result = @porttypes.dup
|
120
|
+
@imports.each do |import|
|
121
|
+
result.concat(import.content.porttypes) if self.class === import.content
|
122
|
+
end
|
123
|
+
result
|
124
|
+
end
|
125
|
+
|
126
|
+
def bindings
|
127
|
+
result = @bindings.dup
|
128
|
+
@imports.each do |import|
|
129
|
+
result.concat(import.content.bindings) if self.class === import.content
|
130
|
+
end
|
131
|
+
result
|
132
|
+
end
|
133
|
+
|
134
|
+
def services
|
135
|
+
result = @services.dup
|
136
|
+
@imports.each do |import|
|
137
|
+
result.concat(import.content.services) if self.class === import.content
|
138
|
+
end
|
139
|
+
result
|
140
|
+
end
|
141
|
+
|
142
|
+
def message(name)
|
143
|
+
message = @messages[name]
|
144
|
+
return message if message
|
145
|
+
@imports.each do |import|
|
146
|
+
message = import.content.message(name) if self.class === import.content
|
147
|
+
return message if message
|
148
|
+
end
|
149
|
+
nil
|
150
|
+
end
|
151
|
+
|
152
|
+
def porttype(name)
|
153
|
+
porttype = @porttypes[name]
|
154
|
+
return porttype if porttype
|
155
|
+
@imports.each do |import|
|
156
|
+
porttype = import.content.porttype(name) if self.class === import.content
|
157
|
+
return porttype if porttype
|
158
|
+
end
|
159
|
+
nil
|
160
|
+
end
|
161
|
+
|
162
|
+
def binding(name)
|
163
|
+
binding = @bindings[name]
|
164
|
+
return binding if binding
|
165
|
+
@imports.each do |import|
|
166
|
+
binding = import.content.binding(name) if self.class === import.content
|
167
|
+
return binding if binding
|
168
|
+
end
|
169
|
+
nil
|
170
|
+
end
|
171
|
+
|
172
|
+
def service(name)
|
173
|
+
service = @services[name]
|
174
|
+
return service if service
|
175
|
+
@imports.each do |import|
|
176
|
+
service = import.content.service(name) if self.class === import.content
|
177
|
+
return service if service
|
178
|
+
end
|
179
|
+
nil
|
180
|
+
end
|
181
|
+
|
182
|
+
def porttype_binding(name)
|
183
|
+
binding = @bindings.find { |item| item.type == name }
|
184
|
+
return binding if binding
|
185
|
+
@imports.each do |import|
|
186
|
+
binding = import.content.porttype_binding(name) if self.class === import.content
|
187
|
+
return binding if binding
|
188
|
+
end
|
189
|
+
nil
|
190
|
+
end
|
191
|
+
|
192
|
+
def parse_element(element)
|
193
|
+
case element
|
194
|
+
when ImportName
|
195
|
+
o = Import.new
|
196
|
+
@imports << o
|
197
|
+
o
|
198
|
+
when TypesName
|
199
|
+
o = Types.new
|
200
|
+
@types = o
|
201
|
+
o
|
202
|
+
when MessageName
|
203
|
+
o = Message.new
|
204
|
+
@messages << o
|
205
|
+
o
|
206
|
+
when PortTypeName
|
207
|
+
o = PortType.new
|
208
|
+
@porttypes << o
|
209
|
+
o
|
210
|
+
when BindingName
|
211
|
+
o = Binding.new
|
212
|
+
@bindings << o
|
213
|
+
o
|
214
|
+
when ServiceName
|
215
|
+
o = Service.new
|
216
|
+
@services << o
|
217
|
+
o
|
218
|
+
when DocumentationName
|
219
|
+
o = Documentation.new
|
220
|
+
o
|
221
|
+
else
|
222
|
+
nil
|
223
|
+
end
|
224
|
+
end
|
225
|
+
|
226
|
+
def parse_attr(attr, value)
|
227
|
+
case attr
|
228
|
+
when NameAttrName
|
229
|
+
@name = XSD::QName.new(targetnamespace, value.source)
|
230
|
+
when TargetNamespaceAttrName
|
231
|
+
self.targetnamespace = value.source
|
232
|
+
else
|
233
|
+
nil
|
234
|
+
end
|
235
|
+
end
|
236
|
+
|
237
|
+
def self.parse_element(element)
|
238
|
+
if element == DefinitionsName
|
239
|
+
Definitions.new
|
240
|
+
else
|
241
|
+
nil
|
242
|
+
end
|
243
|
+
end
|
244
|
+
|
245
|
+
private
|
246
|
+
|
247
|
+
end
|
248
|
+
|
249
|
+
|
250
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# WSDL4R - WSDL SOAP documentation element.
|
2
|
+
# Copyright (C) 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
|
3
|
+
|
4
|
+
# This program is copyrighted free software by NAKAMURA, Hiroshi. You can
|
5
|
+
# redistribute it and/or modify it under the same terms of Ruby's license;
|
6
|
+
# either the dual license version in 2003, or any later version.
|
7
|
+
|
8
|
+
|
9
|
+
require 'action_web_service/wsdl/info'
|
10
|
+
|
11
|
+
|
12
|
+
module WSDL
|
13
|
+
|
14
|
+
|
15
|
+
class Documentation < Info
|
16
|
+
def initialize
|
17
|
+
super
|
18
|
+
end
|
19
|
+
|
20
|
+
def parse_element(element)
|
21
|
+
# Accepts any element.
|
22
|
+
self
|
23
|
+
end
|
24
|
+
|
25
|
+
def parse_attr(attr, value)
|
26
|
+
# Accepts any attribute.
|
27
|
+
true
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
|
32
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
# WSDL4R - WSDL import definition.
|
2
|
+
# Copyright (C) 2002, 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
|
3
|
+
|
4
|
+
# This program is copyrighted free software by NAKAMURA, Hiroshi. You can
|
5
|
+
# redistribute it and/or modify it under the same terms of Ruby's license;
|
6
|
+
# either the dual license version in 2003, or any later version.
|
7
|
+
|
8
|
+
|
9
|
+
require 'action_web_service/wsdl/info'
|
10
|
+
require 'action_web_service/wsdl/importer'
|
11
|
+
|
12
|
+
|
13
|
+
module WSDL
|
14
|
+
|
15
|
+
|
16
|
+
class Import < Info
|
17
|
+
attr_reader :namespace
|
18
|
+
attr_reader :location
|
19
|
+
attr_reader :content
|
20
|
+
|
21
|
+
def initialize
|
22
|
+
super
|
23
|
+
@namespace = nil
|
24
|
+
@location = nil
|
25
|
+
@content = nil
|
26
|
+
@web_client = nil
|
27
|
+
end
|
28
|
+
|
29
|
+
def parse_element(element)
|
30
|
+
case element
|
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
|
+
case attr
|
41
|
+
when NamespaceAttrName
|
42
|
+
@namespace = value.source
|
43
|
+
if @content
|
44
|
+
@content.targetnamespace = @namespace
|
45
|
+
end
|
46
|
+
@namespace
|
47
|
+
when LocationAttrName
|
48
|
+
@location = URI.parse(value.source)
|
49
|
+
if @location.relative? and !parent.location.nil? and
|
50
|
+
!parent.location.relative?
|
51
|
+
@location = parent.location + @location
|
52
|
+
end
|
53
|
+
if root.importedschema.key?(@location)
|
54
|
+
@content = root.importedschema[@location]
|
55
|
+
else
|
56
|
+
root.importedschema[@location] = nil # placeholder
|
57
|
+
@content = import(@location)
|
58
|
+
if @content.is_a?(Definitions)
|
59
|
+
@content.root = root
|
60
|
+
if @namespace
|
61
|
+
@content.targetnamespace = @namespace
|
62
|
+
end
|
63
|
+
end
|
64
|
+
root.importedschema[@location] = @content
|
65
|
+
end
|
66
|
+
@location
|
67
|
+
else
|
68
|
+
nil
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
private
|
73
|
+
|
74
|
+
def import(location)
|
75
|
+
Importer.import(location, root)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
|
80
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# WSDL4R - WSDL importer library.
|
2
|
+
# Copyright (C) 2003, 2005 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
|
3
|
+
|
4
|
+
# This program is copyrighted free software by NAKAMURA, Hiroshi. You can
|
5
|
+
# redistribute it and/or modify it under the same terms of Ruby's license;
|
6
|
+
# either the dual license version in 2003, or any later version.
|
7
|
+
|
8
|
+
|
9
|
+
require 'action_web_service/wsdl/xmlSchema/importer'
|
10
|
+
require 'action_web_service/wsdl/parser'
|
11
|
+
|
12
|
+
|
13
|
+
module WSDL
|
14
|
+
|
15
|
+
|
16
|
+
class Importer < WSDL::XMLSchema::Importer
|
17
|
+
def self.import(location, originalroot = nil)
|
18
|
+
new.import(location, originalroot)
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def parse(content, location, originalroot)
|
24
|
+
opt = {
|
25
|
+
:location => location,
|
26
|
+
:originalroot => originalroot
|
27
|
+
}
|
28
|
+
begin
|
29
|
+
WSDL::Parser.new(opt).parse(content)
|
30
|
+
rescue WSDL::Parser::ParseError
|
31
|
+
super(content, location, originalroot)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
|
38
|
+
end
|