# File lib/soap/generator.rb, line 52
  def generate(obj, io = nil)
    @buf = io || ''
    @indent = ''
    @encode_char_regexp = get_encode_char_regexp()

    prologue
    @handlers.each do |uri, handler|
      handler.encode_prologue
    end

    ns = SOAP::NS.new
    if @default_ns
      @default_ns.each_ns do |default_ns, default_tag|
        Generator.assign_ns(obj.extraattr, ns, default_ns, default_tag)
      end
    end
    if @default_ns_tag
      @default_ns_tag.each_ns do |default_ns, default_tag|
        ns.known_tag[default_ns] = default_tag
      end
    end
    @buf << xmldecl
    encode_data(ns, obj, nil)

    @handlers.each do |uri, handler|
      handler.encode_epilogue
    end
    epilogue

    @buf
  end