docs: public String getContent() {
          if (content != null) {
              return context != null ? context.replaceDynamicContentInString(content) : content;
          } else if (StringUtils.hasText(getContentResourcePath()) && getContentType().startsWith("text")) {
              try {
                  String fileContent = FileUtils.readToString(new PathMatchingResourcePatternResolver().getResource(getContentResourcePath()).getInputStream(), Charset.forName(charsetName));
                  return context != null ? context.replaceDynamicContentInString(fileContent) : fileContent;
              } catch (IOException e) {
                  throw new CitrusRuntimeException("Failed to read SOAP attachment file resource", e);
              }
          } else {
              try {
                  byte[] binaryData = FileCopyUtils.copyToByteArray(getDataHandler().getInputStream());
                  if (encodingType.equals(SoapAttachment.ENCODING_BASE64_BINARY)) {
                      return Base64.encodeBase64String(binaryData);
                  } else if (encodingType.equals(SoapAttachment.ENCODING_HEX_BINARY)) {
                      return Hex.encodeHexString(binaryData).toUpperCase();
                  } else {
                      throw new CitrusRuntimeException(String.format("Unsupported encoding type '%s' for SOAP attachment - choose one of %s or %s",
                              encodingType, SoapAttachment.ENCODING_BASE64_BINARY, SoapAttachment.ENCODING_HEX_BINARY));
                  }
              } catch (IOException e) {
                  throw new CitrusRuntimeException("Failed to read SOAP attachment data input stream", e);
              }
          }
      }