code: func (d *Decoder) name() (s string, ok bool) {
  	d.buf.Reset()
  	if !d.readName() {
  		return "", false
  	}
  
  	// Now we check the characters.
  	s = d.buf.String()
  	if !isName([]byte(s)) {
  		d.err = d.syntaxError("invalid XML name: " + s)
  		return "", false
  	}
  	return s, true
  }
docs: // Get name: /first(first|second)*/
  // Do not set d.err if the name is missing (unless unexpected EOF is received):
  // let the caller provide better context.