code: func MarshalIndent(v interface{}, prefix, indent string) ([]byte, error) {
  	var b bytes.Buffer
  	enc := NewEncoder(&b)
  	enc.Indent(prefix, indent)
  	if err := enc.Encode(v); err != nil {
  		return nil, err
  	}
  	return b.Bytes(), nil
  }
docs: // MarshalIndent works like Marshal, but each XML element begins on a new
  // indented line that starts with prefix and is followed by one or more
  // copies of indent according to the nesting depth.