Нужно генерировать/парсить:
JSON
{"data": "Hello", "data_type": "plaintext"}
<xxx xmlns="http://example.org/ns"><data type="plaintext">Hello</data></xxx>
И тут начинаются сложности. Например, в старой версии Go (точно не скажу, в какой) всё это можно было реализовать так:
type Xxx struct {
XMLName xml.Name `xml:"http://example.org/ns xxx" json:"-"`
Data Data `xml:"data"` // Было: json:"..." не прописан, содержимое Data будет вставлено линейно
}
type Data struct {
Value string `xml:",chardata" json:"data"`
Type string `xml:"type,attr" data_type:"data"`
}
{"Data":{"data": "Hello", "data_type": "plaintext"}}