private void loadFile(String fileName) throws CWRCException {
        childrenFound = false;
        file = new File(fileName);

        if (file.exists()) {
        } else {
            try {
                FileOutputStream fileOut = new FileOutputStream(file);
                XMLStreamWriter out = XMLOutputFactory.newInstance().createXMLStreamWriter(new OutputStreamWriter(fileOut, "UTF-8"));

                out.writeStartDocument();
                out.writeStartElement("cwrc");
                out.writeEndElement();
                out.writeEndDocument();

                out.close();
            } catch (FileNotFoundException ex) {
                throw new CWRCException(CWRCException.Error.DATASOURCE_CREATE, ex);
            } catch (IOException ex) {
                throw new CWRCException(CWRCException.Error.DATASOURCE_CREATE, ex);
            } catch (XMLStreamException ex) {
                throw new CWRCException(CWRCException.Error.DATASOURCE_CREATE, ex);
            }
        }

        try {
            DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();

            String systemId = file.toURI().toURL().toString();
            doc = docBuilder.parse(new InputSource(systemId));
        } catch (ParserConfigurationException ex) {
            throw new CWRCException(CWRCException.Error.DATASOURCE_LOAD, ex);
        } catch (MalformedURLException ex) {
            throw new CWRCException(CWRCException.Error.DATASOURCE_LOAD, ex);
        } catch (SAXException ex) {
            throw new CWRCException(CWRCException.Error.DATASOURCE_LOAD, ex);
        } catch (IOException ex) {
            throw new CWRCException(CWRCException.Error.DATASOURCE_LOAD, ex);
        }
    }