52672.fb2 Создание электронных книг в формате FictionBook 2.1: практическое руководство. Версия 1.0 Release Candidat 1 от 15.05.2008 г. - читать онлайн бесплатно полную версию книги . Страница 5

Создание электронных книг в формате FictionBook 2.1: практическое руководство. Версия 1.0 Release Candidat 1 от 15.05.2008 г. - читать онлайн бесплатно полную версию книги . Страница 5

Часть 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 привести необходимо:

<?xml version="1.0" encoding="windows-1251"?>

<FictionBook xmlns="" xmlns:l="http://www.w3.org/1999/xlink">

 <description>

  <title-info>

   <genre>reference</genre>

   <author>

    <first-name>Имя автора</first-name>

    <last-name>Фамилия автора</last-name>

    <nickname>Юзич</nickname>

   </author>

   <book-title>Пример книги в формате FictionBook 2.1</book-title>

   <annotation>

    <p>Это пример книги в формате FictiionBook</p>

   </annotation>

   <date value="2006-04-14">14 апреля 2006 г.</date>

   <lang>ru</lang>

  </title-info>

  <document-info>

   <author>

    <nickname>Юзич</nickname>

   </author>

   <program-used>FB Tools</program-used>

   <date value="2006-04-14">2006-04-14</date>

   <id>1E693E16-8A80-4391-9800-C1A91A5E29A7</id>

   <version>1.0</version>

   <history>

    <p>v 1.0 — создание книги (Юзич)</p>

   </history>

  </document-info>

 </description>

 <body>

  <title>

   <p>Юзич</p>

   <p>ПРИМЕР КНИГИ В ФОРМАТЕ FictionBook 2.1</p>

  </title>

  <epigraph>

   <p>Это эпиграф</p>

   <text-author>Автор эпиграфа</text-author>

  </epigraph>

  <section>

   <title>

    <p>Первая секция</p>

   </title>

   <p>Секции обычно содержат текст.</p>

   <empty-line/>

   <p>Текст может разделяться пустыми строками.</p>

   <subtitle>Подзаголовок</subtitle>

   <p>Или подзаголовками.</p>

  </section>

  <section>

   <title>

    <p>Вторая секция</p>

   </title>

   <section>

    <title>

     <p>Первая вложенная секция</p>

    </title>

    <p>Текст может быть <strong>полужирным</strong> или <emphasis>курсивным</emphasis>.</p>

    <p>Содержать <a l:href="#Sect3">линки</a> и <a l:href="#note01" type="note">[сноски]</a>.</p>

    <p>В тексте могут быть картинки.</p>

    <image l:href="#sampl.png"/>

    <empty-line/>

   </section>

   <section>

    <title>

     <p>Вторая вложенная секция</p>

    </title>

    <cite>

     <p>Это цитата.</p>

     <text-author>Автор цитаты.</text-author>

    </cite>

    <p>Снова текст.</p>

   </section>

  </section>

  <section id="Sect3">

   <title>

    <p>Третья секция</p>

   </title>

   <p>Стихи:</p>

   <poem>

    <title>

     <p>Парус</p>

    </title>

    <stanza>

     <v>А у дельфина взрезано брюхо винтом.</v>

     <v>Выстрела в спину не ожидает никто.</v>

     <v>На батарее нету снарядов уже.</v>

     <v>Надо быстрее на вираже.</v>

    </stanza>

    <stanza>

     <v>Но парус! Порвали парус!</v>

     <v>Каюсь! Каюсь! Каюсь!</v>

    </stanza>

    <text-author>Владимир Высоцкий</text-author>

   </poem>

   <p>Снова обычный текст.</p>

  </section>

 </body>

 <body name="notes">

  <title>

   <p>Примечания</p>

  </title>

  <section id="note01">

   <title>

    <p>1</p>

   </title>

   <p>Текст сноски.</p>

  </section>

 </body>

 <binary id="sampl.png" content-type="image/png">iVBORw0KGgoAAAANSUhEUgAAAAkAAAAICAMAAAAcEyWHAAAABGdBTUEAAK/INwWK6QAAABl0

RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAGUExURQEBAf///+tZAq0AAAAY

SURBVHjaYmBAAEZGRjDGzsKvDgYAAgwABR4AH2mwMFgAAAAASUVORK5CYII=</binary>

</FictionBook>

§ 2.3 Элементы описания книги.Базовые структурные элементы

В самом начале любого файла книги идет признак формата XML

<?xml version="1.0" encoding="windows-1251"?>

Здесь указана сигнатура принадлежности к формату XML, его версия и кодировка файла. Для русскоязычных FictionBook это обычно windows-1251 или utf-8. [2.2]

За ним в обязательном порядке следует:

Элемент FictionBook

Корневой элемент.

Cинтаксис: <FictionBook>content</FictionBook>.

Фактически, всегда используется в виде:

<FictionBook xmlns="" xmlns:l="http://www.w3.org/1999/xlink">

content

</FictionBook>.

Используется в элементах: корневой элемент

Вложенные элементы: stylesheet, description, body, binary

Количество вхождений: одно

Атрибуты: xmlns

Версия формата: 2.0

Пример: см. пример книги FictionBook, § 2.2

Элемент stylesheet

Список стилей, позволяющих конкретно определить, как будет выглядеть книга на экране устройства для чтения. До последнего времени читалками не поддерживался и практически не использовался. Лишь в конце 2007 года появился CoolReader 3.09 с экспериментальной поддержкой stylesheet.

Cинтаксис: <stylesheet>content</stylesheet>.

Используется в элементах: FictionBook

Вложенные элементы: нет

Количество вхождений: одно или отсутствует.

Атрибуты: type

Версия формата: 2.0

Пример:

 <stylesheet type="text/css">

 .body{font-family : Verdana, Geneva, Arial, Helvetica, sans-serif;}

 .p{margin:0.5em 0 0 0.3em; padding:0.2em; text-align:justify;}

 </stylesheet>

Элемент description

Заголовок (описание) книги.

Cинтаксис: <description>content</description>.

Используется в элементах: FictionBook

Вложенные элементы: title-info, src-title-info, document-info, publish-info, custom-info, output

Количество вхождений: одно

Атрибуты: нет

Версия формата: 2.0

Пример:

<description>

  <title-info>

   <genre>nonfiction</genre>

   <author>

    <first-name>Имя автора</first-name>

    <last-name>Фамилия автора</last-name>

   </author>

   <book-title>Название книги</book-title>

   <date>2007 г.</date>

   <lang>ru</lang>

  </title-info>

  <document-info>

   <author>

    <nickname>Юзич</nickname>

   </author>

   <program-used>FB Tools</program-used>

   <date value="2006-07-10">2006-07-10</date>

   <id>46C35002-014D-4AE4-8FE4-5E7881D72B0D</id>

   <version>1.0</version>

  </document-info>

 </description>

Элемент body

Тело книги. Допускаются дополнительные body для примечаний и дополнительных материалов.

Cинтаксис: <body>content</body>.

Используется в элементах: FictionBook

Вложенные элементы: image, title, epigraph, section

Количество вхождений: одно и более

Атрибуты: name

Версия формата: 2.0

Пример:

<body>

  <title>

   <p>Заголовок</p>

  </title>

  <section>

   <p>Текст.</p>

  </section>

 </body>

Элемент binary

Содержит бинарные элементы, присоединяемые к файлу книги. Как правило, это картинки.

Cинтаксис: <binary>content</binary>.

Используется в элементах: FictionBook

Вложенные элементы: нет

Количество вхождений: произвольное

Атрибуты: id (обязательный), content-type (обязательный)

Версия формата: 2.0

Пример:

<binary id="sampl.png" content-type="image/png">

iVBORw0KGgoAAAANSUhEUgAAAAkAAAAICAMAAAAcEyWHAAAABGdBTUEAAK/INwWK6QAAABl0

RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAGUExURQEBAf///+tZAq0AAAAY

SURBVHjaYmBAAEZGRjDGzsKvDgYAAgwABR4AH2mwMFgAAAAASUVORK5CYII=

</binary>

§ 2.4 Элементы описания книги (description). Элементы первого уровня

Элемент title-info

Содержит базовую информацию о книге (заголовок, информация об авторе и переводчике, аннотация, вхождение в серию и т.д.)

Cинтаксис: <title-info>content</title-info>.

Используется в элементах: description

Вложенные элементы: genre, author, book-title, annotation, keywords, date, coverpage, lang, src-lang, translator, sequence

Количество вхождений: одно

Атрибуты: нет

Версия формата: 2.0

Пример:

  <title-info>

   <genre>nonfiction</genre>

   <author>

    <first-name>Cергей</first-name>

    <last-name>Лукьяненко</last-name>

   </author>

   <book-title>Спектр</book-title>

   <date>2004 г.</date>

   <lang>ru</lang>

  </title-info>

Элемент src-title-info

Аналогично src-title-info содержит базовую информацию о книге-оригинале (для переводных книг).

Здесь наблюдается интересный момент: как title-info, так и src-title-info содержат элемент src-lang. Хотя, по логике, его следовало бы упразднить.

Cинтаксис: <src-title-info>content</src-title-info>.

Используется в элементах: description

Вложенные элементы: genre, author, book-title, annotation, keywords, date, coverpage, lang, src-lang, translator, sequence

Количество вхождений: одно или отсутствует

Атрибуты: нет

Версия формата: 2.1

Пример:

<src-title-info>

   <genre>adv_maritime</genre>

   <author>

    <first-name>Robert</first-name>

    <middle-name>Loevis</middle-name>

    <last-name>Stivenson</last-name>

   </author>

   <book-title>Treasure Island</book-title>

   <date>1896</date>

   <lang>en</lang>

  </src-title-info>

Элемент document-info

Информация о самом файле FictionBook — кем, когда  и с помощью каких программных средств создана данная электронная книга.

Cинтаксис: <document-info>content</document-info>.

Используется в элементах: description

Вложенные элементы: author, program-used, date, src-url, src-ocr, id, version, history

Количество вхождений: одно

Атрибуты: нет

Версия формата: 2.0

Пример:

<document-info>

   <author>

    <nickname>Юзич</nickname>

    <email>Duzz-scrbs@rambler.ru</email>

   </author>

   <program-used>FB Tools</program-used>

   <date value="2006-06-29">2006-05-22</date>

   <src-url>http://hungryewok.narod.ru/</src-url>

   <src-ocr>OCR: Голодный Эвок Грызли; SpellCheck: Юзич</src-ocr>

   <id>86F8C27D-9F15-4DE7-8751-12AE057CA4DC</id>

   <version>1.0</version>

   <history>

    <p>v 1.0 — вычитка, конвертация в FB2 (Юзич)</p>

   </history>

Элемент publish-info

Информация о бумажном оригинале книги, если таковой существовал в природе.

Cинтаксис: <publish-info>content</publish-info>.

Используется в элементах: description

Вложенные элементы: book-name, publisher, city, year, isbn, sequence

Количество вхождений: одно или отсутствует

Атрибуты: нет

Версия формата: 2.0

Пример:

<publish-info>

   <book-name>С. Павлов «Лунная радуга»</book-name>

   <publisher>Детская литература</publisher>

   <city>Москва</city>

   <year>1989</year>

   <isbn>5-08-000842-3</isbn>

   <sequence name="Библиотека приключений и научной фантастики"/>

  </publish-info>

Элемент custom-info

Произвольная дополнительная информация.

Cинтаксис: <custom-info>текст</custom-info>.

Используется в элементах: description

Вложенные элементы:

Количество вхождений: одно или отсутствует

Атрибуты: info-type (обязательный) 

Версия формата: 2.0

Пример:

  <custom-info info-type="На правах рекламы:">Сайт Голодного Эвока Грызли — лучшее в Рунете собрание книг по «Звёздным Войнам»!</custom-info>

§ 2.5 Элементы описания книги (description). Элементы второго уровня

Элемент genre

Жанр произведения.

Содержимое элемента строго фиксировано и определяется файлом FictionBookGenres.xsd, входящим в состав спецификации FictionBook.

Список жанров с переводом приведен в Приложении В.

Cинтаксис: <genre>фиксированное значение</genre>.

Используется в элементах: title-info, src-title-info

Вложенные элементы: нет

Количество вхождений: одно или более

Атрибуты: match

Версия формата: 2.0

Пример:

<genre>sf_action</genre>

   <genre match="30">sf_space</genre>

Элемент author

Автор произведения или создатель электронной книги.

Согласно спецификации, существуют два варианта правильного заполнения элемента. В первом случае, обязательно должны быть заполнены поля «Имя» и «Фамилия» (элементы first-name и last-name). Во втором — поле «Ник» (элемент nickname).

Cинтаксис: <author>Content</author>.

Используется в элементах: title-info, src-title-info, document-info

Вложенные элементы: first-name, middle-name, last-name, nickname, home-page, email

Количество вхождений: одно или более

Атрибуты: нет

Версия формата: 2.0

<author>

    <first-name>Кондратович </first-name>

    <middle-name>Михаил</middle-name>

    <last-name>Иосифович</last-name>

    <nickname>Юзич</nickname>

    <home-page>http://www.yuzich.narod.ru</home-page>

    <email>yuzich@yandex.ru</email>

   </author>

Элемент book-title

Название книги.

Cинтаксис: <book-title>текст</book-title>.

Используется в элементах: title-info, src-title-info

Вложенные элементы:

Количество вхождений: одно

Атрибуты: нет

Версия формата: 2.0

Пример:

Элемент annotation

Аннотация. Краткое текстовое описание книги

Cинтаксис: <annotation>content</annotation>.

Используется в элементах: title-info, src-title-info, section

Вложенные элементы: p, poem, cite, subtitle, table, empty-line

Количество вхождений: одно или отсутствует

Атрибуты: id

Версия формата: 2.0

Пример:

Элемент keywords

Список ключевых слов, с помощью которых библиотечный софт может искать книгу.

Слова должны быть характерными для конкретного произведения.

Cинтаксис: <keywords>текст</keywords>.

Используется в элементах: title-info, src-title-info

Вложенные элементы: нет

Количество вхождений: одно или отсутствует

Атрибуты: нет

Версия формата: 2.0

Пример:

<keywords>Лунная радуга, Анарда, экзот, гурм, МУКБОП, Япет, Казаранг</keywords>

Элемент date

Дата написания книги или создания файла.

Список ключевых слов, с помощью которых библиотечный софт может искать книгу.

Элемент date предусмотрен также и в стихотворениях, но из-за отсутствия поддержки в редакторах там не используется.

Cинтаксис: <date>текст</date>.

Используется в элементах: title-info, src-title-info, document-info, poem

Вложенные элементы: нет

Количество вхождений: одно или отсутствует

Атрибуты: value

Версия формата: 2.0

Пример:

<date value="1989-01-01">Красноярск, июнь 1989</date>

Элемент coverpage

Картинка обложки. Содержит внутри элемент image, в который непосредственно и находится ссылка на bin-объект. Элементов image может быть несколько.

Cинтаксис: <coverpage><image/></coverpage>

Используется в элементах: title-info, src-title-info

Вложенные элементы: image

Количество вхождений:  одно или отсутствует.

Атрибуты: нет

Версия формата: 2.0

Пример:

   <coverpage>

    <image l:href="#cover.jpg"/></coverpage>

Элемент lang

Язык, на котором написана книга.

Список возможных значений приведен в Приложении Г.

Cинтаксис: <lang>по возможности, фиксированное значение</lang>

Используется в элементах: title-info, src-title-info

Вложенные элементы: нет

Количество вхождений: одно

Атрибуты: нет

Версия формата: 2.0

Пример:

   <lang>ru</lang>

Элемент src-lang

Язык, на котором написан оригинал (для переводных книг).

Список возможных значений приведен в Приложении Г.

Cинтаксис: <src-lang>по возможности, фиксированное значение</src-lang>

Используется в элементах: title-info, src-title-info

Вложенные элементы: нет

Количество вхождений: одно или отсутствует

Атрибуты: нет

Версия формата: 2.0

Пример:

<src-lang>en</src-lang>

Элемент translator

Информация о переводчике  (для переводных книг).

Cинтаксис: <translator>content</translator>

Используется в элементах: title-info, src-title-info

Вложенные элементы: first-name, middle-name, last-name, nickname, home-page, email

Количество вхождений: произвольное

Атрибуты: нет

Версия формата: 2.0

Пример: см. пример элемент author

Элемент sequence

Серия, в которую входит книга. Допускается неограниченное число вложенных серий.

Cинтаксис: <sequence/> или <sequence><sequence/></sequence>

Используется в элементах: title-info, src-title-info

Вложенные элементы: sequence

Количество вхождений: произвольное

Атрибуты: name (обязательный), number

Версия формата: 2.0

Пример:

<sequence name="Звёздные Войны">

    <sequence name="Адмирал Траун" number="2"/>

   </sequence>

Элемент program-used

Программное обеспечение, использовавшееся при создании книги.

Cинтаксис: <program-used>текст</program-used>

Используется в элементах: document-info

Вложенные элементы: нет

Количество вхождений: одно или отсутствует

Атрибуты: нет

Версия формата: 2.0

Пример:

   <program-used>FB Tools, EmEditor, hands.drv & brain.sys</program-used>

Элемент src-url

Ссылка на сайт, если исходный текст книги был скачан из Интернета.

Cинтаксис: <src-url>текст</src-url>

Используется в элементах: document-info

Вложенные элементы: нет

Количество вхождений: произвольное

Атрибуты: нет

Версия формата: 2.0

Пример:

<src-url>http://www.natahaus.ru</src-url>

Элемент src-ocr

Информация о людях, которые сканировали (набирали) и вычитывали книгу.

Cинтаксис: <src-ocr>текст</src-ocr>

Используется в элементах: document-info

Вложенные элементы: нет

Количество вхождений: одно или отсутствует

Атрибуты: нет

Версия формата: 2.0

Пример:

<src-ocr>OCR Zmiy; SpellCheck Юзич</src-ocr>

Элемент id

Уникальный идентификационный номер книги.

Cинтаксис: <id>текст</id>

Используется в элементах: document-info

Вложенные элементы: нет

Количество вхождений: одно

Атрибуты: нет

Версия формата: 2.0

Пример:

<id>B3627A48-7F9C-400E-8CD7-0159B75F1A14</id>

Элемент version

Номер версии файла.

Cинтаксис: <version>число</version>

Используется в элементах: document-info

Вложенные элементы: нет

Количество вхождений: одно

Атрибуты: нет

Версия формата: 2.0

Пример:

<version>1.0</version>

Элемент history

История изменений,  вносившихся в файл.

Cинтаксис: <history>Content</history>

Используется в элементах: document-info

Вложенные элементы: p, poem, cite, subtitle, table, empty-line

Количество вхождений: одно или отсутствует

Атрибуты: id

Версия формата: 2.0

Пример:

   <history>

    <p>v 1.0 — вычитка, конвертация в FB2 (Юзич)</p>

    <p>v 1.1 — дополнительное форматирование (Faiber)</p>

    <p>v 1.2 — дополнительная вычитка (Юзич)</p>

    <p>v 1.3 — дополнительная вычитка  (Юзич)</p>

    <p>v 1.4 — окончательная (надеюсь!) вычитка  (Юзич)</p>

   </history>

Элемент book-name

Название бумажного оригинала.

Cинтаксис: <book-name>текст</book-name>

Используется в элементах: publish-info

Вложенные элементы: нет

Количество вхождений: одно или отсутствует

Атрибуты: нет

Версия формата: 2.0

Пример: см. пример элемента publish-info

Элемент publisher

Название издательства, выпустившего бумажный оригинал.

Используется в элементах: publish-info

Cинтаксис: <publisher>текст</publisher>

Вложенные элементы: нет

Количество вхождений: одно или отсутствует

Атрибуты: нет

Версия формата: 2.0

Пример: см. пример элемента publish-info

Элемент city

Город, в котором был издан бумажный оригинал.

Cинтаксис:<city>текст</city>

Используется в элементах: publish-info

Вложенные элементы: нет

Количество вхождений: одно или отсутствует

Атрибуты: нет

Версия формата: 2.0

Пример: см. пример элемента publish-info

Элемент year

Год выхода бумажного оригинала

Cинтаксис: <year>текст</year>

Используется в элементах: publish-info

Вложенные элементы: нет

Количество вхождений: одно или отсутствует

Атрибуты: нет

Версия формата: 2.0

Пример: см. пример элемента publish-info

Элемент isbn

ISBN-код бумажного оригинала.

Cинтаксис: <isbn>текст</isbn>

Используется в элементах: publish-info

Вложенные элементы: нет

Количество вхождений: одно или отсутствует

Атрибуты: нет

Версия формата: 2.0

Пример: см. пример элемента publish-info

§ 2.6 Элементы описания книги (description). Элементы третьего уровня (информация об авторе)

Элемент first-name

Имя автора книги или документа, а также переводчика.

Cинтаксис: <first-name>текст</first-name>

Используется в элементах: author, translator

Вложенные элементы: нет

Количество вхождений: одно или отсутствует

Атрибуты: нет

Версия формата: 2.0

Пример: см. пример элемента author, § 2.5

Элемент middle-name

Отчество автора книги или документа, а также переводчика.

Cинтаксис: <middle-name>текст</middle-name>

Используется в элементах: author, translator

Вложенные элементы: нет

Количество вхождений: одно или отсутствует

Атрибуты: нет

Версия формата: 2.0

Пример: см. пример элемента author, § 2.5

Элемент last-name

Фамилия автора книги или документа, а также переводчика.

Cинтаксис: <last-name>текст</last-name>

Используется в элементах: author, translator

Вложенные элементы: нет

Количество вхождений: одно или отсутствует

Атрибуты: нет

Версия формата: 2.0

Пример: см. пример элемента author, § 2.5

Элемент nickname

Ник (сетевой псевдоним) автора книги или документа, а также переводчика.

Cинтаксис: <nickname>текст</nickname>

Используется в элементах: author, translator

Вложенные элементы: нет

Количество вхождений: одно или отсутствует

Атрибуты: нет

Версия формата: 2.0

Пример: см. пример элемента author, § 2.5

Элемент home-page

Адрес персонального сайта автора книги или документа, а также переводчика.

Cинтаксис: <home-page>текст</home-page>

Используется в элементах: author, translator

Вложенные элементы: нет

Количество вхождений: одно или отсутствует

Атрибуты: нет

Версия формата: 2.0

Пример: см. пример элемента author, § 2.5

Элемент email

Адрес электронной почты автора книги или документа, а также переводчика.

Cинтаксис: <email>текст</email>

Используется в элементах: author, translator

Вложенные элементы: нет

Количество вхождений: одно или отсутствует

Атрибуты:  нет

Версия формата: 2.0

Пример: см. пример элемента author, § 2.5

§ 2.7 Элементы тела книги (body).

Элемент image

Картинка.

Cинтаксис: <image/>

Используется в элементах: body, section, p

Вложенные элементы: нет

Количество вхождений: одно или отсутствует

Атрибуты: alt, title, id, href (обязательный).

Версия формата: 2.0

Пример:

Элемент title

Заголовок книги, раздела или стихотворения. С версии 2.1 — еще и картинки.

Cинтаксис: <title>content</title>

Используется в элементах: body, section, stanza, poem, image (2.1)

Вложенные элементы: p, empty-line

Количество вхождений: одно или отсутствует

Атрибуты: нет

Версия формата: 2.0

Пример:

Элемент epigraph

Эпиграф.

Cинтаксис: <epigraph>content</epigraph>

Используется в элементах: body, section

Вложенные элементы: ppoem, cite, empty-line, text-author

Количество вхождений: произвольное

Атрибуты: id

Версия формата: 2.0

Пример:

<epigraph>

   <p>Черт побери! Как и все другие, наказанные нами, вы управляетесь законом, который богачи придумали для собственной безопасности. Эти трусливые собачьи души не имеют смелости каким-либо иным способом защитить то, что они мошеннически нахапали. Проклятья и кровь на имуществе этих продувных бестий. Между нами единственное различие: они обирают бедняков под покровительством закона, не так ли? А мы грабим богатых, рассчитывая только на свою храбрость.</p>

   <text-author>Чарльз Беллами, пират</text-author>

</epigraph>

Элемент section

Раздел.

Cинтаксис: <section>content</section>

Используется в элементах: body, section

Вложенные элементыtitle, epigraph, image, annotation, section, p, poem, subtitle, cite, empty-line, table

Количество вхождений: одно и более

Атрибуты: id

Версия формата: 2.0

Пример:

  <section>

  <title>

   <p>Заголовок секции</p>

  </title>

   <p>Текст.</p>

  </section>

§ 2.8 Элементы раздела книги (section).Элементы первого уровня.

Элемент cite

Цитата. Отрывок текста из другого произведения.

В FictionBook с поспощью тэга cite также выделяются письма, записки, надписи, списки и еще много чего.

Cинтаксис: <cite>content</cite>

Используется в элементахsection, epigraph, annotation, history

Вложенные элементы: p, poem, empty-line, subtitle, table, text-author

Количество вхождений: произвольное

Атрибуты: id

Версия формата: 2.0

Пример:

<cite>

    <p>«Что происходит в Зеленом Доме? По не подтвержденным, но и не опровергнутым сведениям несколько дней назад внушительная группа боевых ведьм совершила стремительный вояж за пределы Тайного Города. Куда именно? Как ни странно, это осталось загадкой: наши белокурые красавицы изменили традиционной словоохотливости и держат рот на замке. Остальные Великие Дома не проявляют беспокойства…»</p>

    <text-author>(«Тиградком»)</text-author>

   </cite>

Элемент poem

Стихи, песни, баллады и т.д.

Cинтаксис: <poem>content</poem>

Используется в элементахsection, epigraph, cite, annotation, history

Вложенные элементы: title, epigraph, stanza, text-author, date

Количество вхождений: произвольное

Атрибуты: id

Версия формата: 2.0

Пример:

    <stanza>

     <title>

      <p>В тяжелой мантии торжественных обрядов…</p>

     </title>

     <v>В тяжелой мантии торжественных обрядов,</v>

     <v>Неумолимая, меня не встреть.</v>

     <v>На площади, под тысячами взглядов,</v>

     <v>Хочу я умереть.</v>

    </stanza>

    <stanza>

     <v>Чтобы лился на волосы и в губы</v>

     <v>Полуденный огонь.</v>

     <v>Чтоб были флаги, чтоб гремели трубы</v>

     <v>И гарцевал мой конь…</v>

    </stanza>

    <text-author>Марина Цветаева,</text-author>

    <date>Феодосия, 1913</date>

   </poem>

Элемент p

Обычный абзац текста.

Cинтаксис: <p>content</p>

Используется в элементахannotation, history, section, epigraph, cite

Вложенные элементы: a, code, emphasis, strikethrough, strong, style, sub, sup, image

Количество вхождений: произвольное

Атрибуты: id, style

Версия формата: 2.0

Пример:

<p>Cамый обычный текст. </p>

Элемент subtitle

Подзаголовок.

Cинтаксис: <subtitle>content</subtitle>

Используется в элементахsection, stanza, annotation, history

Вложенные элементы: strong, emphasis, style, a, strikethrough, sub, sup, code, image

Количество вхождений: произвольное

Атрибуты: id, style

Версия формата: 2.0

Пример:

<subtitle>* * *</subtitle>

Элемент empty-line

Пустая строка. Может использоваться как «немой» заголовок.

Cинтаксис: <empty-line/>

Используется в элементахsection, epigraph, cite, title, annotation, history

Вложенные элементы: нет

Количество вхождений: произвольное

Атрибуты: нет

Версия формата: 2.0

Пример:

<p>После этого абзаца должна идти пустая строка.</p>

<empty-line/>

Элемент table

Таблицы.

На момент написания книги поддерживается только читалками CoolReader и AlReader.

Cинтаксис: <table>content</table>

Используется в элементахsection, epigraph, annotation, history

Вложенные элементы: tr

Количество вхождений: произвольное

Атрибуты: id, style

Версия формата: 2.1

Пример:

    <table>

     <tr>

      <th>Заголовок 1-го столбца</th>

      <th>Заголовок 2-го столбца</th>

      <th colspan="2">Объединенный заголовок 3-го и 4-го столбцов</th>

      <th>Заголовок 5-го столбца</th>

     </tr>

     <tr>

      <td align="center">1-я ячейка 1-го столбца</td>

      <td rowspan="2">1-я и 2-я ячейки 2-го столбца</td>

      <td align="right">1-я ячейка 3-го столбца</td>

      <td align="right">1-я ячейка 4-го столбца</td>

      <td align="left">1-я ячейка 5-го столбца</td>

     </tr>

     <tr>

      <td align="center">2-я ячейка 1-го столбца</td>

      <td colspan="2"><p>2-я ячейка 3-го и 4-го столбцов</p></td>

      <td align="right">2-я ячейка 5-го столбца</td>

     </tr>

    </table>

Как видим, допускается размещение текста как непосредственно в самих элементах ячеек таблицы (td, th), так и предварительно заключеннного в элемент p.

Впрочем, это, вероятнее всего, огрех валидатора FBE. Ради эксперимента, я поместил в элемент td элемент cite. И валидатор это спокойно переварил.

§ 2.9 Элементы раздела книги (section).Элементы второго уровня.

Элемент stanza

Строфа стихотворения.

Cинтаксис: stanza>content</stanza>

Используется в элементахpoem

Вложенные элементы: title, subtitle, v

Количество вхождений: одно и более

Атрибуты: нет

Версия формата: 2.0

Пример: см. пример элемента poem

Элемент text-author

Автор эпиграфа, цитаты или стихов.

Cинтаксис: <text-author>content</text-author>

Используется в элементахcite, epigraph, poem

Вложенные элементы: strong, emphasis, style, a, strikethrough, sub, sup, code, image

Количество вхождений: произвольное

Атрибуты: id, style

Версия формата: 2.0

Пример: см. пример элемента poem

Элемент v

Cтрока в строфе стихотворения.

Cинтаксис: <v>content</v>

Используется в элементахstanza

Вложенные элементыa, code, emphasis, strikethroughstrongstyle,   sub, supimage

Количество вхождений: одно и более

Атрибуты: нет

Версия формата: 2.0

Пример: см. пример элемента poem

§ 2.10 Элементы таблиц

Элемент tr

Строка таблицы.

Cинтаксис: <tr>content</tr>

Используется в элементахtable

Вложенные элементыth, td

Количество вхождений: одно и более

Атрибуты: aligh

Версия формата: 2.1

Пример: см. пример элемента table

Элемент th

Заголовок столбца таблицы.

Cинтаксис: <th>content</th>

Используется в элементахtr

Вложенные элементы:    a, code, emphasis, strikethrough, strong, style, sub, supimage

Количество вхождений: одно или отсутствует

Атрибуты: id, style, colspan, rowspan, aligh

Версия формата: 2.1

Пример: см. пример элемента table

Элемент td

Ячейка столбца таблицы.

Cинтаксис: <td>content</td>

Используется в элементахtr

Вложенные элементы:    a, code, emphasis, strikethrough, strong, stylesub, supimage

Количество вхождений: одно и более

Атрибуты: id, style, colspan, rowspan, aligh

Версия формата: 2.1

Пример: см. пример элемента table

§ 2.11 Элементы абзаца (стилевые элементы)

Элемент a

Ссылка или сноска.

Cинтаксис: <a>content</a>

Используется в элементахcode, emphasis, p, strikethrough, strong, stylesubtitle, sub, supth, tdv

Вложенные элементы:     code, emphasis, strikethroughstrong, style, sub, sup, image

Количество вхождений: произвольное

Атрибуты: href (обязательный), type

Версия формата: 2.0

Пример:

<p>см. <a l:href="#primer">пример</a></p>

Элемент code

Преформатированный текст. В читалках должен отображаться моноширинным шрифтом.

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

На момент написания книги поддерживается только читалкой CoolReader. Причем, поддерживается неправильно — как элемент аналогичный сite, хотя это такое же стилевое выделение, как strong или emphasis.

Cинтаксис: <code>content</code>

Используется в элементах:  code, emphasis, p, strikethrough, strong, stylesubtitle, sub, supth, tdv

Вложенные элементы:     a, code, emphasis, strikethrough, strong, stylesub, supimage

Количество вхождений: произвольное

Атрибуты: нет

Версия формата: 2.1

Пример:

<code>Преформатированный текст</code>

Элемент emphasis

Наклонный шрифт (курсив).

Cинтаксис: <emphasis>content</emphasis>

Используется в элементах:  code, emphasis, p, strikethrough, strong, stylesubtitle, sub, supth, tdv

Вложенные элементы:     a, code, emphasis, strikethrough, strong, stylesub, sup, image

Количество вхождений: произвольное

Атрибуты: нет

Версия формата: 2.0

Пример:

<emphasis>Курсивный текст</emphasis>

Элемент strikethrough

Перечеркнутый шрифт.

На момент написания книги читалками не поддерживается.

Cинтаксис: <strikethrough>content</strikethrough>

Используется в элементах:  code, emphasis, p, strikethrough, strong, style, subtitle, sub, supth, tdv

Вложенные элементы:     a, code, emphasis, strikethrough, strong, stylesub, sup, image

Количество вхождений: произвольное

Атрибуты: нет

Версия формата: 2.1

Пример:

<p><strikethrough>Эта сволочь</strikethrough>, этот нехороший человек…</p>

Элемент strong

Полужирный шрифт.

Cинтаксис: <strong>content</strong>

Используется в элементах:  code, emphasis, p, strikethrough, strong, stylesubtitle, sub, supth, td,  v

Вложенные элементы:     a, code, emphasis, strikethrough, strong, style, sub, supimage

Количество вхождений: произвольное

Атрибуты: нет

Версия формата: 2.0

Пример:

<strong>Полужирный текст</strong>

Элемент style

Заранее определенный стиль для отображения книги.

Cинтаксис: <style>content</style>

Используется в элементах:  code, emphasis, p, strikethrough, strong, stylesubtitle, sub, supth, tdv

Вложенные элементы:     code, emphasis, strikethrough, strong, style, sub, supimage

Количество вхождений: произвольное

Атрибуты: name (обязательный)

Версия формата: 2.0

Пример:

<p>Этот текст будет <style name="italic">курсивным </style></p>

<p>— <style name="foreign lang" xml:lang="fr">Dieu, quelle virulente sortie</style></p>

Элемент sub

Нижний индекс (subscript).

На момент написания книги читалками не поддерживается.

Cинтаксис: <sub>content</sub>

Используется в элементах:  code, emphasis, p, strikethrough, strong, stylesubtitle, sub, supth, tdv

Вложенные элементы:     a, code, emphasis, strikethrough, strong, stylesub, sup, image

Количество вхождений: произвольное

Атрибуты: нет

Версия формата: 2.1

Пример:

<p>x<sub>1</sub>+x<sub>2</sub>=y</p>

Элемент sup

Верхний индекс (superscript).

На момент написания книги читалками не поддерживается.

Cинтаксис: <sup>content</sup>

Используется в элементах:  code, emphasis, p, strikethrough, strong, stylesubtitle, sub, supth, tdv

Вложенные элементы:     a, code, emphasis, strikethrough, strong, stylesub, supimage

Количество вхождений: произвольное

Атрибуты: нет

Версия формата: 2.1

Пример:

<p>E=mC<sup>2</sup></p>

§ 2.12 Элементы для платных книг

В версию 2.1 были введены специальные элементы для создания платных книг. Поскольку сам формат средств криптозащиты не предусматривает, обрабатывать эти тэги должен исключительно сервер библиотеки.

К сожалению, или, вернее, к счастью, эти элементы до сих пор не нашли применения.

Элемент output

Определяет способ вывода контента книги.

Cинтаксис: <output>content</output>

Используется в элементах:  description

Вложенные элементыpart, output-document-class

Количество вхождений: произвольное

Атрибуты: mode (обязательный), currency, incude-all (обязательный)

Версия формата: 2.1

Пример:

<output mode="free" include-all="deny">

<part include="require" l:href="#half0_1"/>

<part include="allow" l:href="#half0_2"/>

<part include="allow" l:href="#half0_4_2"/>

<part include="require" l:href="#half0_4_3"/>

</output>

<output mode="paid" price="3.14" currency="WMZ" include-all="require">

<part include="deny" l:href="#half0_4_3"/>

</output>

Элемент output-document-class

Назначение неясно.

Cинтаксис:<output-document-class>parts</output-document-class>

Используется в элементах:  output

Вложенные элементы: part

Количество вхождений: произвольное

Атрибуты: name, create, price

Версия формата: 2.1

Пример:

Элемент part

Делит книгу на платные и бесплатные части.

Cинтаксис:<part/>

Используется в элементах:  output

Вложенные элементы: нет

Количество вхождений: произвольное

Атрибуты: mode, include

Версия формата: 2.1

Пример: см. пример элемента output

§ 2.13 Спецсимволы

Некоторые символы в теле книги отображаются особым образом. Это нужно для предотвращения ошибок. Например, «<» и «>» зарезервированы для обозначения границ тэгов. Если их использовать в прямом виде как-то еще, то программа будет считать это ошибкой.

Такие последовательности называются предопределенными сущностями.

Список таких символов в FictionBook крайне мал. Их, собственно, всего три.

&amp; — &;

&lt; — <;

&gt ; — >;

Cтандартные сущности XML &apos; и &quot; в FiсtionBook не используются и конвертируются в символы «'» и «"» соответственно.

§ 2.14 Список атрибутов элементов

Многие элементы в FictionBook имеют дополнительные параметры — атрибуты.

Атрибут aligh

Выравнивание текста в ячейке таблицы.

Используется в элементах: td, th, tr

Значение: фиксированное; left, right, center, justify

Значение по умолчанию: left

Атрибут alt

Назначение аналогично HTML — текст, отображающийся вместо картинки.

Используется в элементах: image

Значение: произвольная текстовая строка

Атрибут colspan

Позволяет объединять столбцы таблиц.

Используется в элементах: th, td

Значение: произвольное целое число

Атрибут content-type

Определяет тип содержимого элемента-контейнера binary

Используется в элементахbinary

Значение: фиксированное; image/png, image/jpeg, image/tiff, image/bmp, octet-stream

Атрибут create

Назначение неясно.

Используется в элементах: output-document-class

Значение:

Атрибут currency

Валюта, в которой определена цена платной книги.

Используется в элементах: output

Значение: ограниченно-произвольное

Атрибут href

Ссылка. Как правило, внутри документа.

Используется в элементах: a, image

Значение: ссылка.

Атрибут id

Метка, позволяющая ссылаться на элемент.

Используется в элементах: annotation, binary, cite, epigraph, image, p, poem, section, subtitle, table, td, text-author, th

Значение:  текстовая строка.

Атрибут info-type

Характеризует произвольную информацию.

Используется в элементахcustom-info

Значение: произвольная текстовая строка.

Атрибут include

Назначение неясно.

Используется в элементахpart

Значение:

Атрибут include-all

Назначение неясно.

Используется в элементах: output

Значение: фиксированное

Атрибут match

Определяет степень соответствия произведения выбранному жанру.

Используется в элементах: genre

Значение: целое число в диапазоне от 1 до 100

Атрибут mode

Способ вывода платного документа

Используется в элементах: output

Значение:

Атрибут name

Позволяет присвоить элементу имя. В отличие от метки (id), имя элемента используется исключительно программными средствами обработки документа.

Используется в элементах: body, sequence, output-document-class

Значение: произвольное

Атрибут number

Порядковый номер книги в серии.

Используется в элементах: sequence

Значение: произвольное целое число

Атрибут price

Цена платного документа

Используется в элементах: output-document-class

Значение: произвольное число c плавающей запятой

Атрибут rowspan

Позволяет объединять строки таблицы.

Используется в элементах: th, td

Значение: произвольное целое число

Атрибут style

Позволяет выбрать для элемента предопределенный стиль.

Используется в элементах: p, subtitle, table, td, text-author, th

Значение: произвольное; строка состоящая из латинских букв и цифр.

Пример:

<p style="text-align: right">Текст, выровненный по правому краю<p>

<p style="background-color: black; color: white; margin-left: 20%; margin-right: 20%; margin-top: 10px; margin-bottom: 10px; line-height: 180% ">Текст: фон черный, цвет шрифта белый, отступы справа и слева 20 процентов, сверху и снизу — 10 пикселей, высота строки 180 процентов</p>

Атрибут title

Позволяет добавить к рисунку заголовок (подпись)

Используется в элементах: image

Значение: произвольная текстовая строка

Атрибут type

Определяет тип элемента.

Используется в элементах: a, stylesheet

Значение: фиксированное

Атрибут value

Дата.

Используется в элементах: date

Значение: произвольная дата в формате YYYY-MM-DD

Атрибут xmlns

Ссылка на спецификацию формата.

Атрибут value: FictionBook

Значение: жестко фиксированное

§ 2.15 Алфавитный список всех элементов FictionBook 2.1

a (§ 2.11)

annotation  (§ 2.5)

author  (§ 2.5)

binary  (§ 2.3)

body  (§ 2.3)

book-name  (§ 2.5)

book-title  (§ 2.5)

cite (§ 2.8)

city  (§ 2.5)

code (§ 2.11)

coverpage  (§ 2.5)

custom-info  (§ 2.4)

date  (§ 2.5)

description  (§ 2.3)

document-info  (§ 2.4)

email (§ 2.6)

emphasis (§ 2.11)

empty-line (§ 2.8)

epigraph (§ 2.7)

FictionBook  (§ 2.3)

first-name  (§ 2.6)

genre  (§ 2.5)

history  (§ 2.5)

home-page (§ 2.6)

id  (§ 2.5)

isbn  (§ 2.5)

image (§ 2.7)

keywords  (§ 2.5)

lang  (§ 2.5)

last-name (§ 2.6)

middle-name (§ 2.6)

nickname (§ 2.6)

output-document-class (§ 2.12)

output (§ 2.12)

p (§ 2.8)

part (§ 2.12)

poem (§ 2.8)

program-used  (§ 2.5)

publish-info  (§ 2.4)

publisher  (§ 2.5)

section (§ 2.7)

sequence  (§ 2.5)

src-lang  (§ 2.5)

src-ocr  (§ 2.5)

src-title-info  (§ 2.4)

src-url  (§ 2.5)

stanza (§ 2.9)

strikethrough (§ 2.11)

strong (§ 2.11)

style (§ 2.11)

stylesheet  (§ 2.3)

sub (§ 2.11)

subtitle (§ 2.8)

sup (§ 2.11)

table (§ 2.8)

td (§ 2.10)

text-author (§ 2.9)

th (§ 2.10)

title (§ 2.7)

title-info (§ 2.4)

tr (§ 2.10)

translator (§ 2.5)

v (§ 2.9)

version  (§ 2.5)

year  (§ 2.5)


  1. Подробное описание BASE64 cм. приложение E.

  2. UTF-8 — это ASCII-совместимая многобайтная кодировка Unicode.В отличие от стандартного Unicode, в utf-8 cимволы  с  кодами  от  0x00000000   до 0x0000007f (стандартный набор US-ASCII) кодируются как байты с кодами от 0x00 до 0x7f (совместимость с кодовой таблицей ASCII).   Это  означает,  что файлы и строки, содержащие только 7-битные ASCII-символы,  будут  иметь одинаковое представление как в ASCII, так и в UTF-8.