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,196 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
# SOAP4R - XML Literal EncodingStyle handler 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 'soap/encodingstyle/handler'
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
module SOAP
|
|
14
|
+
module EncodingStyle
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class LiteralHandler < Handler
|
|
18
|
+
Namespace = SOAP::LiteralNamespace
|
|
19
|
+
add_handler
|
|
20
|
+
|
|
21
|
+
def initialize(charset = nil)
|
|
22
|
+
super(charset)
|
|
23
|
+
@textbuf = []
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
###
|
|
28
|
+
## encode interface.
|
|
29
|
+
#
|
|
30
|
+
def encode_data(generator, ns, data, parent)
|
|
31
|
+
attrs = {}
|
|
32
|
+
name = generator.encode_name(ns, data, attrs)
|
|
33
|
+
if data.type and data.type.name and
|
|
34
|
+
(@generate_explicit_type or data.force_typed)
|
|
35
|
+
data.extraattr[XSD::AttrTypeName] = data.type
|
|
36
|
+
end
|
|
37
|
+
data.extraattr.each do |key, value|
|
|
38
|
+
keytag = key
|
|
39
|
+
if key.is_a?(XSD::QName)
|
|
40
|
+
keytag = encode_attr_key(attrs, ns, key)
|
|
41
|
+
end
|
|
42
|
+
if value.is_a?(XSD::QName)
|
|
43
|
+
value = encode_qname(attrs, ns, value)
|
|
44
|
+
end
|
|
45
|
+
attrs[keytag] = value
|
|
46
|
+
end
|
|
47
|
+
case data
|
|
48
|
+
when SOAPExternalReference
|
|
49
|
+
# do not encode SOAPExternalReference in
|
|
50
|
+
# literalHandler (which is used for literal service)
|
|
51
|
+
data.referred
|
|
52
|
+
when SOAPRawString
|
|
53
|
+
generator.encode_tag(name, attrs)
|
|
54
|
+
generator.encode_rawstring(data.to_s)
|
|
55
|
+
when XSD::XSDString
|
|
56
|
+
generator.encode_tag(name, attrs)
|
|
57
|
+
str = decode_str(data.to_s)
|
|
58
|
+
generator.encode_string(str)
|
|
59
|
+
when XSD::XSDAnySimpleType
|
|
60
|
+
generator.encode_tag(name, attrs)
|
|
61
|
+
generator.encode_string(data.to_s)
|
|
62
|
+
when SOAPStruct
|
|
63
|
+
generator.encode_tag(name, attrs)
|
|
64
|
+
data.each do |key, value|
|
|
65
|
+
generator.encode_child(ns, value, data)
|
|
66
|
+
end
|
|
67
|
+
when SOAPArray
|
|
68
|
+
generator.encode_tag(name, attrs)
|
|
69
|
+
data.traverse do |child, *rank|
|
|
70
|
+
data.position = nil
|
|
71
|
+
generator.encode_child(ns, child, data)
|
|
72
|
+
end
|
|
73
|
+
when SOAPElement
|
|
74
|
+
unless generator.use_default_namespace
|
|
75
|
+
# passes 2 times for simplifying namespace definition
|
|
76
|
+
data.each do |key, value|
|
|
77
|
+
if value.elename.namespace
|
|
78
|
+
Generator.assign_ns(attrs, ns, value.elename.namespace)
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
if data.text and data.text.is_a?(XSD::QName)
|
|
83
|
+
Generator.assign_ns(attrs, ns, data.text.namespace)
|
|
84
|
+
end
|
|
85
|
+
generator.encode_tag(name, attrs)
|
|
86
|
+
if data.text
|
|
87
|
+
if data.text.is_a?(XSD::QName)
|
|
88
|
+
text = ns.name(data.text)
|
|
89
|
+
else
|
|
90
|
+
text = data.text
|
|
91
|
+
end
|
|
92
|
+
generator.encode_string(text)
|
|
93
|
+
end
|
|
94
|
+
data.each do |key, value|
|
|
95
|
+
generator.encode_child(ns, value, data)
|
|
96
|
+
end
|
|
97
|
+
else
|
|
98
|
+
raise EncodingStyleError.new(
|
|
99
|
+
"unknown object:#{data} in this encodingStyle")
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
def encode_data_end(generator, ns, data, parent)
|
|
104
|
+
# do not encode SOAPExternalReference in
|
|
105
|
+
# literalHandler (which is used for literal service)
|
|
106
|
+
return nil if data.is_a?(SOAPExternalReference)
|
|
107
|
+
name = generator.encode_name_end(ns, data)
|
|
108
|
+
cr = (data.is_a?(SOAPCompoundtype) and data.have_member)
|
|
109
|
+
generator.encode_tag_end(name, cr)
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
###
|
|
114
|
+
## decode interface.
|
|
115
|
+
#
|
|
116
|
+
def decode_tag(ns, elename, attrs, parent)
|
|
117
|
+
@textbuf.clear
|
|
118
|
+
if attrs[XSD::AttrNilName] == 'true'
|
|
119
|
+
o = SOAPNil.decode(elename)
|
|
120
|
+
else
|
|
121
|
+
o = SOAPElement.decode(elename)
|
|
122
|
+
end
|
|
123
|
+
if definedtype = attrs[XSD::AttrTypeName]
|
|
124
|
+
o.type = ns.parse(definedtype)
|
|
125
|
+
end
|
|
126
|
+
o.parent = parent
|
|
127
|
+
o.extraattr.update(attrs)
|
|
128
|
+
decode_parent(parent, o)
|
|
129
|
+
o
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
def decode_tag_end(ns, node)
|
|
133
|
+
textbufstr = @textbuf.join
|
|
134
|
+
@textbuf.clear
|
|
135
|
+
o = node.node
|
|
136
|
+
decode_textbuf(o, textbufstr)
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
def decode_text(ns, text)
|
|
140
|
+
# @textbuf is set at decode_tag_end.
|
|
141
|
+
@textbuf << text
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
def decode_prologue
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
def decode_epilogue
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
def decode_parent(parent, node)
|
|
151
|
+
return unless parent.node
|
|
152
|
+
case parent.node
|
|
153
|
+
when SOAPElement
|
|
154
|
+
parent.node.add(node)
|
|
155
|
+
node.parent = parent.node
|
|
156
|
+
when SOAPStruct
|
|
157
|
+
parent.node.add(node.elename.name, node)
|
|
158
|
+
node.parent = parent.node
|
|
159
|
+
when SOAPArray
|
|
160
|
+
if node.position
|
|
161
|
+
parent.node[*(decode_arypos(node.position))] = node
|
|
162
|
+
parent.node.sparse = true
|
|
163
|
+
else
|
|
164
|
+
parent.node.add(node)
|
|
165
|
+
end
|
|
166
|
+
node.parent = parent.node
|
|
167
|
+
else
|
|
168
|
+
raise EncodingStyleError.new("illegal parent: #{parent.node}")
|
|
169
|
+
end
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
private
|
|
173
|
+
|
|
174
|
+
def decode_textbuf(node, textbufstr)
|
|
175
|
+
case node
|
|
176
|
+
when XSD::XSDString, SOAPElement
|
|
177
|
+
if @charset
|
|
178
|
+
node.set(decode_str(textbufstr))
|
|
179
|
+
else
|
|
180
|
+
node.set(textbufstr)
|
|
181
|
+
end
|
|
182
|
+
else
|
|
183
|
+
# Nothing to do...
|
|
184
|
+
end
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
def decode_str(str)
|
|
188
|
+
@charset ? XSD::Charset.encoding_from_xml(str, @charset) : str
|
|
189
|
+
end
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
LiteralHandler.new
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
end
|
|
196
|
+
end
|