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,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