docs: private void addSoapHeaders(SoapMessage response, Message replyMessage) throws TransformerException {
          for (Entry<String, Object> headerEntry : replyMessage.getHeaders().entrySet()) {
              if (MessageHeaderUtils.isSpringInternalHeader(headerEntry.getKey()) ||
                      headerEntry.getKey().startsWith(DEFAULT_JMS_HEADER_PREFIX)) {
                  continue;
              }
  
              if (headerEntry.getKey().equalsIgnoreCase(SoapMessageHeaders.SOAP_ACTION)) {
                  response.setSoapAction(headerEntry.getValue().toString());
              } else if (!headerEntry.getKey().startsWith(MessageHeaders.PREFIX)) {
                  SoapHeaderElement headerElement;
                  if (QNameUtils.validateQName(headerEntry.getKey())) {
                      QName qname = QNameUtils.parseQNameString(headerEntry.getKey());
  
                      if (StringUtils.hasText(qname.getNamespaceURI())) {
                          headerElement = response.getSoapHeader().addHeaderElement(qname);
                      } else {
                          headerElement = response.getSoapHeader().addHeaderElement(getDefaultQName(headerEntry.getKey()));
                      }
                  } else {
                      throw new SoapHeaderException("Failed to add SOAP header '" + headerEntry.getKey() + "', " +
                              "because of invalid QName");
                  }
  
                  headerElement.setText(headerEntry.getValue().toString());
              }
          }
  
          for (String headerData : replyMessage.getHeaderData()) {
              TransformerFactory transformerFactory = TransformerFactory.newInstance();
              Transformer transformer = transformerFactory.newTransformer();
  
              transformer.transform(new StringSource(headerData),
                      response.getSoapHeader().getResult());
          }
      }