code: @Override
    public void export(ITextNode[] nodes, String masterlanguage, String language, Status[] states)
        throws ExportException {
      LOG.info("Exporting Android XML file...");
      try (OutputStream outputStream = outputStreamFactory.createOutputStream(outputFile);
           BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"))) {
        synchronized (this) {
          // write header
          bw.write("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
          bw.write("\n");
          bw.write("<!-- Generated file - do not edit -->");
          bw.write("\n");
          bw.write("<resources>");
          bw.write("\n");
  
          for (ITextNode node : nodes) {
            IValueNode valueNode = node.getValueNode(language);
  
            // get value from value node
            if (valueNode != null) {
              if (states == null || TremaCoreUtil.containsStatus(valueNode.getStatus(), states)) {
                IKeyValuePair keyValuePair = new KeyValuePair(node.getKey(), valueNode.getValue());
                for (IExportFilter filter : iExportFilters) {
                  filter.filter(keyValuePair);
                }
  
                // validate key after it has been filtered
                String key = keyValuePair.getKey();
                if (!isValidKeyName(key)) {
                  throw new IllegalArgumentException("Invalid string key name "
                      + (key != null ? "'" + key + "'" : "null"));
                }
  
                // map the placeholders and write the result
                String value = keyValuePair.getValue();
                if (value != null) {
                  String formattedText = resolveIOSPlaceholders(value);
                  String rowText = String.format("  <string name=\"%s\">%s</string>", key, formattedText);
                  bw.write(rowText);
                  bw.write("\n");
                }
              }
            }
          }
  
          // write footer
          bw.write("</resources>");
  
        }
  
        bw.flush();
  
      } catch (IOException e) {
        throw new ExportException("Could not store properties:" + e.getMessage());
      }
      LOG.info("Exporting of Android XML file finished.");
    }
docs: {@inheritDoc}