# File lib/xtemplate.rb, line 94
    def expand2(io, data, opts = nil)
      if( opts )
        DEFAULT_OPTS.each{|key,val|
          opts[key] ||= val
        }
      else
        opts = DEFAULT_OPTS
      end
      if( opts[:keep_template] )
        node = @node.deep_dup()
      else
        node = @node
      end
      if( opts[:keep_data] )
        data = XTemplate::dup_data(data)
      end
      if( defined?(data.to_hash) )
        data = data.to_hash
      end
      node.expand(data, nil, data, opts[:plugin]) # (1)current data (2)parent data (3)root data
      node.dump(io)
    end