En Go, vous pouvez marshaller un struct en XML, par exemple :
package main
import (
"encoding/xml"
"fmt"
)
type person struct {
Name string
Starsign string
}
func main() {
p := &person{"John Smith", "Capricorn"}
b,_ := xml.MarshalIndent(p,""," ")
fmt.Println(string(b))
}
produit des résultats :
<person>
<Name>John Smith</Name>
<Starsign>Capricorn</Starsign>
</person>
Le problème est que le type de personne est un "p" minuscule parce que je veux qu'il soit privé au paquet. Mais je préférerais que l'élément XML soit en majuscules : <Person>
. Les champs de la structure peuvent être marqués par d'autres noms en utilisant des balises (par exemple `xml : "name"`) sur les champs de la structure, mais cela ne semble pas être une option pour le type de structure.
J'ai trouvé une solution de contournement en utilisant des modèles, mais il serait bon de connaître une meilleure réponse.