I have this nested golang struct:
// TierRequest is the outer most XML envelope of soap request
type TierRequest struc
There is no difference at the XML level between an element with no content and an end-tag:
<soapenv:Header></soapenv:Header>
and an empty element tag:
<soapenv:Header/>
To control which form is used, you'd have to treat the data as text rather than as XML, but better not to worry about a difference that makes no difference.
[Added for completeness]
...other than an obscure and antiquated recommendation
For interoperability, the empty-element tag should be used, and should only be used, for elements which are declared EMPTY.
regarding interoperability with SGML:
for interoperability
[Definition: Marks a sentence describing a non-binding recommendation included to increase the chances that XML documents can be processed by the existing installed base of SGML processors which predate the WebSGML Adaptations Annex to ISO 8879.]