RequestRequestRequestBulkRequest
type RequestBulk struct {
XMLName xml.Name `xml:"https://item.com RequestBulk"`
Message string `xml:"Message"`
Request []Request `xml:"Request,omitempty"`
}
type Request struct {
XMLName xml.Name `xml:"https://item.com Request"`
Text string `xml:"text"`
}
Unmarshalling the following XMLs works as expected:
<Request xmlns="https://item.com">
<text>Some request text</text>
</Request>
<RequestBulk xmlns="https://item.com">
<Message>Some Text</Message>
<Request xmlns="https://item.com">
<text>Some request text</text>
</Request>
<Request xmlns="https://item.com">
<text>Some other request text</text>
</Request>
</RequestBulk>
The Problem
RequestBulk
Request []Request `xml:"Request,omitempty"`
to
RequestMessage []Request `xml:"RequestMessage,omitempty"`
and change the XML to:
<RequestBulk xmlns="https://item.com">
<Message>Some Text</Message>
<RequestMessage xmlns="https://item.com">
<text>Some request text</text>
</RequestMessage>
<RequestMessage xmlns="https://item.com">
<text>Some other request text</text>
</RequestMessage>
</RequestBulk>
I get the following error:
expected element type <Request> but have <RequestMessage>
XMLName xml.Name `xml:"https://item.com Request"`
The Question
RequestRequestBulkRequestRequestMessage
In other words; How do I use the same struct with different namespaces?