# File lib/soap/generator.rb, line 132
  def encode_element(ns, obj, parent)
    attrs = obj.extraattr
    if obj.is_a?(SOAPBody)
      @reftarget = obj
      obj.encode(self, ns, attrs) do |child|
        indent_backup, @indent = @indent, @indent + @indentstr
        encode_data(ns.clone_ns, child, obj)
        @indent = indent_backup
      end
      @reftarget = nil
    else
      if obj.is_a?(SOAPEnvelope)
        # xsi:nil="true" can appear even if dumping without explicit type.
        Generator.assign_ns(attrs, ns, XSD::InstanceNamespace)
        if @generate_explicit_type
          Generator.assign_ns(attrs, ns, XSD::Namespace)
        end
      end
      obj.encode(self, ns, attrs) do |child|
        indent_backup, @indent = @indent, @indent + @indentstr
        encode_data(ns.clone_ns, child, obj)
        @indent = indent_backup
      end
    end
  end