public boolean storeXML(final File target) throws IOException {
        boolean result = false;

        try {
            if (!target.exists() && !target.createNewFile()) {
                throw new IOException("Could not create target file " + target.getAbsolutePath());
            }

            final DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
            final DocumentBuilder docBuilder = docFactory.newDocumentBuilder();

            // root element
            final Document doc = docBuilder.newDocument();
            final Element rootElement = doc.createElement(XmlNodes.ROOT.toString());
            doc.appendChild(rootElement);
            // data elements
            Element el;
            for (Entry<String, String> e : fields) {
                el = doc.createElement(e.getKey());
                el.appendChild(doc.createTextNode(e.getValue()));
                rootElement.appendChild(el);
            }
            // write the content into xml file
            final TransformerFactory transformerFactory = TransformerFactory.newInstance();
            final Transformer transformer = transformerFactory.newTransformer();
            transformer.setOutputProperty(OutputKeys.INDENT, "yes");
            transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
            final DOMSource source = new DOMSource(doc);
            final StreamResult out = new StreamResult(target);
            transformer.transform(source, out);

            result = true;
        } catch (ParserConfigurationException ex) {
            LOG.log(Level.SEVERE, "Wrong parser configuration used.", ex);
        } catch (TransformerException ex) {
            LOG.log(Level.SEVERE, "Transformer exception occured.", ex);
        }

        return result;
    }