无法在 Go 中正确 unmarshal/marshal 动态 XML 结构

Unable to correctly unmarshal/marshal dynamic XML structs in Go

我 xsd 描述了一个 XML 模式,我正在尝试在 go 结构中编写这个 xsd 的表示,所以我能够 marshal/unmarshal XML 基于此架构。

这是我为重现我遇到的问题而编写的一些 go playground 代码。

https://play.golang.org/p/ktJOsCDyLW

在架构中,标签 videoweb 是动态的(因为它们都可以在 media 下出现不止一次,并且内部内容不同)。

我尝试编写动态结构以及 Unmarshaller/Marshaller 接口,如示例所示,我似乎能够执行解析,但 unmarshals/marshals 内部内容不正确,忽略了名称和 URL 列表,每个列表只取一个元素。

我不确定这是什么问题。

如有任何帮助,我们将不胜感激

我已经在此处修改了您的示例 https://play.golang.org/p/rbcoL0ayeb。将您的定义更改为以下内容:

系列:

type Series struct {
   Name []Name `xml:"name"`
}

网站:

type Website struct {
   Url []Url `xml:"url"`
}