Struct tags control element/attr mapping
type Book struct {
XMLName xml.Name `xml:"book"`
Title string `xml:"title"`
Pages int `xml:"pages,attr"`
}
b, _ := xml.MarshalIndent(Book{Title: "Go", Pages: 300}, "", " ")
fmt.Println(string(b))
Output
<book pages="300">
<title>Go</title>
</book>