class XSD::Mapping::Mapper

Constants

MAPPING_OPT

Public Class Methods

new(registry) click to toggle source
# File lib/xsd/mapping.rb, line 36
def initialize(registry)
  @registry = registry
end

Public Instance Methods

obj2xml(obj, elename = nil, io = nil) click to toggle source
# File lib/xsd/mapping.rb, line 40
def obj2xml(obj, elename = nil, io = nil)
  opt = MAPPING_OPT.dup
  unless elename
    if definition = @registry.elename_schema_definition_from_class(obj.class)
      elename = definition.elename
      opt[:root_type_hint] = false
    end
  end
  elename = SOAP::Mapping.to_qname(elename) if elename
  soap = SOAP::Mapping.obj2soap(obj, @registry, elename, opt)
  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::Generator.new(opt)
  generator.generate(soap, io)
end
xml2obj(stream, klass = nil) click to toggle source
# File lib/xsd/mapping.rb, line 58
def xml2obj(stream, klass = nil)
  parser = SOAP::Parser.new(MAPPING_OPT)
  soap = parser.parse(stream)
  SOAP::Mapping.soap2obj(soap, @registry, klass)
end