code: func (p *printer) writeStart(start *StartElement) error {
  	if start.Name.Local == "" {
  		return fmt.Errorf("xml: start tag with no name")
  	}
  
  	p.tags = append(p.tags, start.Name)
  	p.markPrefix()
  
  	p.writeIndent(1)
  	p.WriteByte('<')
  	p.WriteString(start.Name.Local)
  
  	if start.Name.Space != "" {
  		p.WriteString(` xmlns="`)
  		p.EscapeString(start.Name.Space)
  		p.WriteByte('"')
  	}
  
  	// Attributes
  	for _, attr := range start.Attr {
  		name := attr.Name
  		if name.Local == "" {
  			continue
  		}
  		p.WriteByte(' ')
  		if name.Space != "" {
  			p.WriteString(p.createAttrPrefix(name.Space))
  			p.WriteByte(':')
  		}
  		p.WriteString(name.Local)
  		p.WriteString(`="`)
  		p.EscapeString(attr.Value)
  		p.WriteByte('"')
  	}
  	p.WriteByte('>')
  	return nil
  }
docs: // writeStart writes the given start element.