I have a Go code:
xmlData := `<foo xmlns:="url"/>`
xmlDec := xml.NewDecoder(bytes.NewReader([]byte(xmlData)))
rawToken, _ := xmlDec.RawToken()
fmt.Println(rawToken)
Now interesting part, let's use Go 1.14.0
Output: {{ foo} [{{xmlns } url}]}
Switch to Go 1.18.0
Output: {{ foo} [{{ xmlns:} url}]}
In the first output xml.Name.Space
= "xmlns"
and xml.Name.Local
= ""
In the second output xml.Name.Space
= ""
and xml.Name.Local
= "xmlns:"
Can anybody explain me what is going on?