@Override
    public void buildFloralComposition(String fileName) throws DAOException {
        FileInputStream inputStream = null;
        XMLStreamReader reader = null;
        try {
            inputStream = new FileInputStream(new File(fileName));
            reader = factory.createXMLStreamReader(inputStream);
            while (reader.hasNext()) {
                int event = reader.next();
                switch (event) {
                    case XMLStreamConstants.START_ELEMENT:
                        startElement(reader);
                        break;
                    case XMLStreamConstants.CHARACTERS:
                        tagContent = reader.getText().trim();
                        break;
                    case XMLStreamConstants.END_ELEMENT:
                        endElement(reader);
                        break;
                }
            }
        } catch (FileNotFoundException e) {
            throw new DAOException("FileNotFoundException " + fileName + " : " + e.getMessage());
        } catch (XMLStreamException e) {
            throw new DAOException("XMLStreamException : " + e.getMessage());
        } finally {
            try {
                if (inputStream != null) {
                    inputStream.close();
                }
            } catch (IOException e) {
                LOG.error("Impossible close file " + fileName + " : " + e.getMessage());
            }
        }
    }