Module: XSD::Mapping

Defined in:
lib/action_web_service/xsd/mapping.rb

Constant Summary collapse

MappingRegistry =
SOAP::Mapping::WSDLLiteralRegistry.new
MappingOpt =
{:default_encodingstyle => SOAP::LiteralNamespace}

Class Method Summary collapse

Class Method Details

.obj2xml(obj, elename = nil, io = nil) ⇒ Object



23
24
25
26
27
28
29
30
31
32
# File 'lib/action_web_service/xsd/mapping.rb', line 23

def self.obj2xml(obj, elename = nil, io = nil)
  if !elename.nil? and !elename.is_a?(XSD::QName)
    elename = XSD::QName.new(nil, elename)
  end
  elename ||= XSD::QName.new(nil, SOAP::Mapping.name2elename(obj.class.to_s))
  soap = SOAP::Mapping.obj2soap(obj, MappingRegistry)
  soap.elename = elename
  generator = SOAP::SOAPGenerator.new(MappingOpt)
  generator.generate(soap, io)
end

.xml2obj(stream) ⇒ Object



34
35
36
37
38
# File 'lib/action_web_service/xsd/mapping.rb', line 34

def self.xml2obj(stream)
  parser = SOAP::Parser.new(MappingOpt)
  soap = parser.parse(stream)
  SOAP::Mapping.soap2obj(soap, MappingRegistry)
end