Страница 9 из 51
Часть II
Подробное описание формата FictionBook
§ 2.1 Структура файла FictionBook.
Базовые понятия
Книга FictionBook представляет собой XML-файл.
Структурно этот файл можно разделить на три части.
1) Desсription — заголовок (описание) книги;
2) Body — непосредственно текст книги. В книге может быть несколько body.
3) Binary — необязательная часть. Содержит бинарные файлы, в кодировке BASE64. [2.1] Как правило, это картинки.
§ 2.2 Пример книги в формате FictionBook
Cпецификация (schema) FictionBook находится на сайте Дмитрия Грибова, а также входит в комплект FB Tools. Поэтому размещать ее в электронной версии книги смысла нет.
Но пример книги в формате FictionBook привести необходимо:
reference
Имя автора
Фамилия автора
Юзич
Пример книги в формате FictionBook 2.1
Это пример книги в формате FictiionBook
14 апреля 2006 г.
ru
Юзич
FB Tools
2006-04-14
1E693E16-8A80-4391-9800-C1A91A5E29A7
1.0
v 1.0 — создание книги (Юзич)
Юзич
ПРИМЕР КНИГИ В ФОРМАТЕ FictionBook 2.1
Это эпиграф
Автор эпиграфа
Первая секция
Секции обычно содержат текст.
Текст может разделяться пустыми строками.
Подзаголовок
Или подзаголовками.
Вторая секция
Первая вложенная секция
Текст может быть полужирным или курсивным.
Содержать линки и [сноски].
В тексте могут быть картинки.
Вторая вложенная секция
Это цитата.
Автор цитаты.
Снова текст.
Третья секция
Стихи:
Парус
А у дельфина взрезано брюхо винтом.
Выстрела в спину не ожидает никто.
На батарее нету снарядов уже.
Надо быстрее на вираже.
Но парус! Порвали парус!
Каюсь! Каюсь! Каюсь!
Владимир Высоцкий
Снова обычный текст.
Примечания
1
Текст сноски.
iVBORw0KGgoAAAANSUhEUgAAAAkAAAAICAMAAAAcEyWHAAAABGdBTUEAAK/INwWK6QAAABl0
RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAGUExURQEBAf///+tZAq0AAAAY
SURBVHjaYmBAAEZGRjDGzsKvDgYAAgwABR4AH2mwMFgAAAAASUVORK5CYII=
§ 2.3 Элементы описания книги.
Базовые структурные элементы
В самом начале любого файла книги идет признак формата XML
Здесь указана сигнатура принадлежности к формату XML, его версия и кодировка файла. Для русскоязычных FictionBook это обычно windows-1251 или utf-8. [2.2]
За ним в обязательном порядке следует:
Корневой элемент.
Cинтаксис : content.
Фактически, всегда используется в виде:
content
.
Используется в элементах : корневой элемент
Вложенные элементы : stylesheet , description , body , binary
Количество вхождений : одно
Атрибуты : xmlns
Версия формата : 2.0
Пример : см. пример книги FictionBook, § 2.2
Список стилей, позволяющих конкретно определить, как будет выглядеть книга на экране устройства для чтения. До последнего времени читалками не поддерживался и практически не использовался. Лишь в конце 2007 года появился CoolReader 3.09 с экспериментальной поддержкой stylesheet.
Cинтаксис : content.
Используется в элементах : FictionBook
Вложенные элементы : нет
Количество вхождений : одно или отсутствует.
Атрибуты : type
Версия формата : 2.0
Пример :
.body{font-family : Verdana, Geneva, Arial, Helvetica, sans-serif;}
.p{margin:0.5em 0 0 0.3em; padding:0.2em; text-align:justify;}
Заголовок (описание) книги.
Cинтаксис : content.
Используется в элементах : FictionBook
Вложенные элементы : title-info , src-title-info , document-info , publish-info , custom-info , output
Количество вхождений : одно
Атрибуты : нет
Версия формата : 2.0
Пример :
nonfiction
Имя автора
Фамилия автора
Название книги
2007 г.
ru
Юзич
FB Tools
2006-07-10
46C35002-014D-4AE4-8FE4-5E7881D72B0D
1.0
Тело книги. Допускаются дополнительные body для примечаний и дополнительных материалов.
Cинтаксис : content.
Используется в элементах : FictionBook
Вложенные элементы : image , title , epigraph , section
Количество вхождений : одно и более
Атрибуты : name
Версия формата : 2.0
Пример :
Заголовок
Текст.
2.1
Подробное описание BASE64 cм. приложение E.
2.2
UTF-8 — это ASCII-совместимая многобайтная кодировка Unicode.
В отличие от стандартного Unicode, в utf-8 cимволы с кодами от 0x00000000 до 0x0000007f (стандартный набор US-ASCII) кодируются как байты с кодами от 0x00 до 0x7f (совместимость с кодовой таблицей ASCII). Это означает, что файлы и строки, содержащие только 7-битные ASCII-символы, будут иметь одинаковое представление как в ASCII, так и в UTF-8.