Class: XSD::Mapping::Mapper

Inherits:
Object show all
Defined in:
lib/xsd/mapping.rb

Constant Summary collapse

MAPPING_OPT =
{:default_encodingstyle => SOAP::LiteralNamespace}

Instance Method Summary collapse

Constructor Details

#initialize(registry) ⇒ Mapper

Returns a new instance of Mapper.



33
34
35
# File 'lib/xsd/mapping.rb', line 33

def initialize(registry)
  @registry = registry
end

Instance Method Details

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



37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/xsd/mapping.rb', line 37

def obj2xml(obj, elename = nil, io = nil)
  if !elename.nil? and !elename.is_a?(XSD::QName)
    elename = XSD::QName.new(nil, elename)
  end
  soap = SOAP::Mapping.obj2soap(obj, @registry, elename)
  if soap.elename.nil? or soap.elename == XSD::QName::EMPTY
    soap.elename =
      XSD::QName.new(nil, SOAP::Mapping.name2elename(obj.class.to_s))
  end
  generator = SOAP::SOAPGenerator.new(MAPPING_OPT)
  generator.generate(soap, io)
end

#xml2obj(stream, klass = nil) ⇒ Object



50
51
52
53
54
# File 'lib/xsd/mapping.rb', line 50

def xml2obj(stream, klass = nil)
  parser = SOAP::Parser.new(MAPPING_OPT)
  soap = parser.parse(stream)
  SOAP::Mapping.soap2obj(soap, @registry, klass)
end