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?