Проверка fb2 на ошибки

Влад и мир про Сопов: Граф Наумов (Попаданцы)

Если в начале книги ещё было интересно читать, то к концу у автора кончилось воображение, ему опротивел его ГГ, отключил мозги у ГГ, сунул в руки ГГ чужой чемодан и ночной горшок, заставив с этим топать в деревню за 10 верст. Лексикон речи резко в конце книги сошел на задоприводной (всё связано с отверстием заднего прохода), в чем автор действительно оказался мастером слова. Но я таких не уважаю (мягко сказано). Читать нормальным людям не

подробнее …

Рейтинг: +1 ( 1 за, 0 против).

Влад и мир про Елисеев: Пройти через туман (Боевик)

Слабо написано. Много глупости и не нужных по сюжету банальных рассуждений автора. У ГГ в голове куча мусора, особенно когда он ей думать пытается. В таком стиле пишут компьютерные боты.

Рейтинг: +1 ( 1 за, 0 против).

Serg55 про Шек: Резчик. Том 6 (Героическая фантастика)

серия книг хорошая.Событий много, даже очень на такой короткий отрезок времени.Автор явно планирует еще не меньше десятка книг…

надеюсь на скорое продолжение

Рейтинг: 0 ( 0 за, 0 против).

Category:

  • IT
  • Cancel

Если вам почему-то не захотелось воспользоваться какими-либо мощными FB-тулзами или сервисом  genebook, или вам надо проверить валидность кода, сгенерированной на этом сервисе книги в формата FB2, а XML-редактора нет под рукой, или что то ещё, то для работы со всеми указанными в заголовке статьи форматами файлов есть XmlGrid.
Особо расписывать нечего — всё очень просто. Посему просто фотоэкскурс на его сайт xmlgrid.net. В в данном примере мы не создавали файл, а просто загрузили свежесозданную на genebook FB2-книгу и редактировали её (с последующей выгрузкой и отработке на ридерах).
N.B! если вы всё делали правильно при редактировании, то под кнопкой By URL справа от кнопки Validate появляется значок сохранения. Нажимаем, сохраняем. При только валидации, конечно, этого не требуется.

Загружаем документ. В нашем случае формата FB2:

XmlGrid_11
XmlGrid_2

Валидация и структура тестовой книги:

XmlCrid_3

Проверяем корректность введенной информации о книге:

XmlGrid_4

Правим и дополняем текст книги:

XmlGrid_5

Работаем в XML непосредственно:

XmlGrid_6

Сохраняем результат:

XmlGrid_7


FB Tools

FB Tools – это пакет программ, которые предназначены для облегчения работы с электронными книгами. В данный пакет входят такие компоненты:

  • Валидатор документов FB2
  • Редактор документов FB2
  • Провайдер информации о документах FB2 в Проводнике (дает возможность просматривать авторов, жанры, названия и другую информацию прямо в проводнике, даже не открывая файл)
  • FB Tools

    Приложения интегрируются с проводником, добавляют команды в меню для папок (Validate FictionBook Documents) и файлов с .fb2- расширением (Edit, Validate). С помощью редактора можно менять поля описания документов, экспортировать HTML-файлы, вызывать Any2FB2 для импорта документа в других форматах. Но стоит знать, что данный редактор игнорирует все комментарии XML, а также неизвестные элементы во время чтения электронных документов, поэтому при чтении файлов с комментариями, последующими записями, все комментарии пропадут.

    FB Tools

    Программы FB Tools работают под Windows NT4/2K/XP. Также для работы данной программы необходим MSXML4.

    Итак, FB Tools является мощным средством, которое работает с электронными книгами, имеющими формат Fiction Book 2.

    Перечислим основные возможности этой программы:

    • Работа с документами формата FB2
    • Импортирование разных документов других форматов
    • Возможность интеграции в проводник
    • Работа с описанием файлов

    Для работы данной программы потребуется операционная система из семейства Windows NT: а лучше всего подойдет Windows 2000 либо Windows XP.

    Также вам понадобится MSXML 4.0 SP2, а также Internet Explorer, версия которого не ниже 5.5.

    Скачать MSXML 4.0 вы можете с официального сайта Microsoft. При этом проверка Windows на легальность производиться не будет :).

    Допустим, вы хотите установить FB Editor – приложение из состава FictionBook Tools, оно предназначено для более тщательного редактирования – с расстановкой тегов, или добавлением изображения, или изменением текста. При этом оно открывает файлы в формате FB2 своими силами, а импортирование других документов осуществляется при помощи вызова ANY to FB2, которая производит предварительную конвертацию.

    Обязательно прочитайте следующее, это очень важно. Если вы установили Internet Explorer версии 7.0 и выше, то ставить FB Editor даже не стоит пытаться, так как он работать не будет. Вам придется воспользоваться другой альтернативной разработкой — FB Writer либо FBE от ЛитРес.

    После того, как все нужные компоненты будут закачаны, а программа будет установлена, вы можете приступать к работе.

    После запуска самой программы появится рабочее окно. Вверху него находится стандартное меню, а также панель инструментов. Под ними панель Линков. Большую часть окна занимает окно редактирования текста. Слева от главного окна расположена панель Document Tree, где отображается древовидная структура документа. При помощи нее вы можете быстро перейти в нужный вам элемент электронной книги. И внизу находится служебная строка. Там выводится структура редактируемого элемента (к примеру, body/section/p) либо сообщения валидатора.

    Скачать FB Tools бесплатно

    • FictionBook Tools v2.0

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

2
branches

84
tags


Code

  • Use Git or checkout with SVN using the web URL.

  • Open with GitHub Desktop

  • Download ZIP

Latest commit

Files

Permalink

Failed to load latest commit information.

Type

Name

Latest commit message

Commit time

SharpFBTools

Набор инструментов для пакетной обработки fb2 книг, написанный на языке C#:

Валидатор, Корректор, Сортировщик, Дубликатор, Архиватор

Мне справедливо указали на применимость для валидации fb2 стандартных функций.
Решил проработать тему.
В общем случае должно работать для всех языков, предусматривающих поддержку xml.
Для меня это shell.
В текущей действительности стоит рекомендовать app-text/xmlstarlet.
Description: A set of tools to transform, query, validate, and edit XML documents

В предположении использования ванильной редакции формата (схемы (FictionBook-2.1) лежат в ~/.fb2/, берутся с адреса http://www.gribuser.ru/xml/fictionbook/2.1/xsd/).

fb2-val.sh:
#!/bin/sh
#
# Проверка наличия исполняемого файла базовой утилиты
if [ ! `which xmlstarlet` ]
then
echo "required utility xmlstarlet not found"
exit 1
fi
#
# Проверка наличия схем:
if [ ! -f ~/.fb2/FictionBook2.1.xsd ]
then
echo "Root XML scheme missed"
echo "fetch missed file from http://www.gribuser.ru/xml/fictionbook/2.1/xsd/ and put it into ~/.fb2/"
exit 2
fi
#
if [ ! -f ~/.fb2/FictionBookGenres.xsd ] && [ ! -f ~/.fb2/FictionBookLang.xsd ] && [ ! -f ~/.fb2/FictionBookLinks.xsd ]
then
echo "Slave XML scheme missed"
echo "fetch missed file from http://www.gribuser.ru/xml/fictionbook/2.1/xsd/ and put it into ~/.fb2/"
exit 3
fi
#
#
if [ ! $1 ]
then
echo "argument don't set"
exit 4
fi
if [ ! -f $1 ]
then
echo "file $1 don't exist"
exit 4
fi
#
#
xmlstarlet val --xsd ~/.fb2/FictionBook2.1.xsd $1
#
exit 0

Update: спасибо товарищам, в комментариях обратившим внимание на то, что добавление к команде проверки опции ‘-e‘ в части информативности сообщений об ошибках уравнивает данный скрипт с fb2validator.py.

В плюсе относительно app-text/fb2utils — отсутствие зависимости от python:2 (вследствие чего втыкание оного пакета может представить некоторые сложности).

В минусе — информативность. Сообщаемые валидатором app-text/fb2utils предупреждения о пустых тэгах часто облегчают корректуру файла.

Пример использования (в сравнении с с fb2validartor):

Указание в качестве аргумента несуществующего файла:
$ fb2validator.py Kovalev_Istoriya_Rima_s_illyustratsiyami_.233265.fb2.zip
(совсем ничего не сообщает)
$ fb2-val.sh Kovalev_Istoriya_Rima_s_illyustratsiyami_.233265.fb2.zip
file Kovalev_Istoriya_Rima_s_illyustratsiyami_.233265.fb2.zip don't exist

Достаточно подробный вывод fb2validator:
$ fb2validator.py Kovalev_Istoriya_Rima_s_illyustratsiyami_.233265.fb2
*** Validation of file Kovalev_Istoriya_Rima_s_illyustratsiyami_.233265.fb2 ***
* Try the DOM parser *
xml validity check passed
* Schema validation *
fb2 validity check passed
* Extra FB2 checkup *
WARNING: Line 16: empty tag: {http://www.gribuser.ru/xml/fictionbook/2.0}first-name
WARNING: Line 17: empty tag: {http://www.gribuser.ru/xml/fictionbook/2.0}last-name
WARNING: Line 1669: empty tag: {http://www.gribuser.ru/xml/fictionbook/2.0}p
WARNING: Line 4121: empty tag: {http://www.gribuser.ru/xml/fictionbook/2.0}p
WARNING: Line 4642: empty tag: {http://www.gribuser.ru/xml/fictionbook/2.0}p
WARNING: Line 6658: empty tag: {http://www.gribuser.ru/xml/fictionbook/2.0}p
WARNING: Line 6665: empty tag: {http://www.gribuser.ru/xml/fictionbook/2.0}p
WARNING: Line 7032: empty tag: {http://www.gribuser.ru/xml/fictionbook/2.0}p
WARNING: Line 7774: empty tag: {http://www.gribuser.ru/xml/fictionbook/2.0}p
WARNING: Line 7794: empty tag: {http://www.gribuser.ru/xml/fictionbook/2.0}p
WARNING: Line 8359: empty tag: {http://www.gribuser.ru/xml/fictionbook/2.0}p
WARNING: Line 8364: empty tag: {http://www.gribuser.ru/xml/fictionbook/2.0}p
WARNING: Line 8369: empty tag: {http://www.gribuser.ru/xml/fictionbook/2.0}p
WARNING: Line 8373: empty tag: {http://www.gribuser.ru/xml/fictionbook/2.0}p
WARNING: Line 8402: empty tag: {http://www.gribuser.ru/xml/fictionbook/2.0}p
WARNING: Line 8407: empty tag: {http://www.gribuser.ru/xml/fictionbook/2.0}p
WARNING: Line 8417: empty tag: {http://www.gribuser.ru/xml/fictionbook/2.0}p
WARNING: Line 8443: empty tag: {http://www.gribuser.ru/xml/fictionbook/2.0}p
WARNING: Line 8449: empty tag: {http://www.gribuser.ru/xml/fictionbook/2.0}p
> Some errors found <
------------------------------------------------------------------------

(удобно для последующей ручной коррекции)

$ fb2-val.sh Kovalev_Istoriya_Rima_s_illyustratsiyami_.233265.fb2
Kovalev_Istoriya_Rima_s_illyustratsiyami_.233265.fb2 - valid

$ fb2-val.sh de_Vovenarg_Razmyishleniya_i_maksimyi.277204.fb2
de_Vovenarg_Razmyishleniya_i_maksimyi.277204.fb2 - invalid

fb2validator автоматически отрабатывает zip-архивы (стандарт де-факто хранения):
$ fb2validator.py Kavahara_Sword_Art_Online_1_Sword_Art_Online.225640.fb2.zip
*** Validation of file Kavahara_Sword_Art_Online_1_Sword_Art_Online.225640.fb2.zip ***
** Zipped file found: Kavahara_Sword_Art_Online_1_Sword_Art_Online.225640.fb2 **
* Try the DOM parser *
xml validity check passed
* Schema validation *
fb2 validity check passed
* Extra FB2 checkup *
ERROR: Line 39: bad external link: file:///C:/Program%20Files/Fiction%20Book%20Editor/Версия%20текста%20от%2001.03.11.%20Последнюю%20версию%20можно%20найти%20на%20http://ushwood.narod.ru/sao/sao.html
WARNING: Line 20: empty tag: {http://www.gribuser.ru/xml/fictionbook/2.0}date
WARNING: Line 31: empty tag: {http://www.gribuser.ru/xml/fictionbook/2.0}first-name
WARNING: Line 32: empty tag: {http://www.gribuser.ru/xml/fictionbook/2.0}last-name
> Some errors found <
------------------------------------------------------------------------

Наличная редакция скрипта этого не делает (думаю на предмет: нужно ли?).
$ fb2-val.sh Kavahara_Sword_Art_Online_1_Sword_Art_Online.225640.fb2.zip
Kavahara_Sword_Art_Online_1_Sword_Art_Online.225640.fb2.zip - invalid
$ fb2-val.sh Kavahara_Sword_Art_Online_1_Sword_Art_Online.225640.fb2
Kavahara_Sword_Art_Online_1_Sword_Art_Online.225640.fb2 - valid

Вывод:
fb2validator практически работает и за себя (как валидатор) и за того парня (за модуль дополнительной проверки).
Во втором качестве он сообщает достаточно полезной информации, но строго говоря подхалтуривает.
Что (попытка взятия на прицел двух зайцев) нельзя сказать, чтобы положительно сказывалось на его основной функциональности (впрочем, здесь я наверное не вполне прав: надо посмотреть ещё на exit codes).

Лаконичный вывод проверки посредством xmlstarlet при необходимости можно достаточно просто продолжить.
Например:
RES_STRING=`xmlstarlet val --xsd $SCHEMA/FictionBook2.1.xsd $fb2file`
RESULT=`echo $RES_STRING | gawk '{ print $3 }'`
if [ "$RESULT" = "valid" ]
then
# Запуск модуля дополнительной проверки для валидного fb2
# Перечень проверок --- предмет отдельного обсуждения.
else
# Если проверяемый файл не является валидным fb2, то первым делом надо проверить: является ли он валидным xml.
fi

Ну и далее по потребностям и согласно рекомендациям руководящего документа.

P.S. app-text/xmlstarlet-1.3.1 в стабильной ветке (amd64). Но лишняя завязка на работоспособность Сети не нужна. Именно поэтому руководствоваться можно и нужно app-doc/abs-guide.

  • Anarchist’s блог

Понравилась статья? Поделить с друзьями:
  • Проверка ddr на ошибки
  • Проверка dbf файлов на ошибки
  • Проверить эссе на ошибки
  • Проверить шрифт на ошибки
  • Проверка csv файла на ошибки