public ParamsParse (String filePath) throws Exception {


        // Инициализация объекта
        db = new DBParams();

        try {
            // Откроем файл
            File fXmlFile = new File(filePath);

            // Подготовим парсер
            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();

            // Распарсим файл
            Document doc = dBuilder.parse(fXmlFile);

            // Без этого узел может расползтись на несколько строк и будет неправильно разобран
            doc.getDocumentElement().normalize();

            // Получим режим работы
            this.mode = doc.getDocumentElement().getElementsByTagName("mode").item(0).getTextContent();

            // В зависимости от режима работы будем выбирать определенные структуры
            // Если режим неизвестный то выходим с ошибкой
            if ( !(this.mode.equalsIgnoreCase("compare") || this.mode.equalsIgnoreCase("generate")) ) {
                throw new Exception("Неизвестный режим в файле параметров");
            }

            // Получим остальные параметры
            // Имена конечных тегов одинаковые так что искать можно без условностей.
            this.fileName = doc.getDocumentElement().getElementsByTagName("file_name").item(0).getTextContent();

            db.setSchemaName(doc.getDocumentElement().getElementsByTagName("schema_name").item(0).getTextContent());
            db.setSchemaPassword(doc.getDocumentElement().getElementsByTagName("schema_password").item(0).getTextContent());
            db.setBaseName(doc.getDocumentElement().getElementsByTagName("base_name").item(0).getTextContent());
            db.setBaseHost(doc.getDocumentElement().getElementsByTagName("base_host").item(0).getTextContent());
            db.setBasePort(Integer.parseInt(doc.getDocumentElement().getElementsByTagName("base_port").item(0).getTextContent()));
        }
        catch (Exception e) {
            System.out.println("ParamsParse: Ошибка при разборе параметров из файла");
            System.out.println(e.toString());
            throw e;
        }

        // После того как файл с параметрами разобрали надо проверить что все поля заполнены
        if ( ! db.checkNotEmpty())
            throw new Exception("ParamsParse: Ошибка в параметрах. Параметры схемы заполнены не верно.");

        if (this.fileName.isEmpty())
            throw new Exception("ParamsParse: Ошибка в параметрах. Параметр file_name задан неверно.");
    }