protected function read(\XMLReader $reader)
    {
        libxml_clear_errors();
        
        $status = @$reader->read();

        $error = libxml_get_last_error();
        if($error)
        {
            libxml_clear_errors();
            throw new Exceptions\ParseException(sprintf('Xml parsing error "%s" in file "%s" on line %s on column %s', $error->message, $error->file, $error->line, $error->column));
        }

        return $status;
    }