code: func lookupXMLName(typ reflect.Type) (xmlname *fieldInfo) {
  	for typ.Kind() == reflect.Ptr {
  		typ = typ.Elem()
  	}
  	if typ.Kind() != reflect.Struct {
  		return nil
  	}
  	for i, n := 0, typ.NumField(); i < n; i++ {
  		f := typ.Field(i)
  		if f.Name != "XMLName" {
  			continue
  		}
  		finfo, err := structFieldInfo(typ, &f)
  		if finfo.name != "" && err == nil {
  			return finfo
  		}
  		// Also consider errors as a non-existent field tag
  		// and let getTypeInfo itself report the error.
  		break
  	}
  	return nil
  }
docs: // lookupXMLName returns the fieldInfo for typ's XMLName field
  // in case it exists and has a valid xml field tag, otherwise
  // it returns nil.