Текст книги "Создание электронных книг в формате FictionBook 2.1: практическое руководство (beta 4)"
Автор книги: Михаил Кондратович
сообщить о нарушении
Текущая страница: 2 (всего у книги 10 страниц)
§ 1.3 Несколько слов о XML
Расширяемый язык разметки – eXtensible Markup Language, был создан для хранения структурированных данных в текстовом формате. Теоретически файлы XML должны легко читаться как программным обеспечением, так и человеком.
С использованием технологии XML можно записывать и обрабатывать практически любые данные, вне зависимости от их структуры и сложности.
На базе XML уже создано большое количество подмножеств для решения конкретных задач. Например, есть реализация HTML средствами XML – XHTML, язык для записи математических формул и выражений (MathML), язык для химических формул, для медицинской электронной документации. Новый формат файлов пакета M$ Office 2007 представляет собой не что иное, как пачку XML-документов, которые сохраняются в одном архиве.
Кроме того, поскольку любые данные в XML – это обычный текст, то и работать с ними можно как с текстом: готовить XML-документы в notepad, а в случае потери какой-либо части данных с остальными можно будет по-прежнему работать.
В отличие от HTML, набор средств разметки (тэгов) в XML не фиксирован, и может быть произвольным.
Разумеется, это должно как-то описываться. Поэтому в XML есть такое понятие, как «спецификация», DTD (Document Type Definition – описание типа документа) – документ, в котором описана структура XML-подмножества. В настоящее время на смену DTD пришла XML Schema.
Если возникнет необходимость, XML легко преобразовать в любой другой формат. Для этого существует XSLT – eXtensible Stylesheet Language Transformation – расширяемый язык стилей.
Вот, к примеру, реализация адресной книги на базе XML.
Василий
Иванович пер. Кривоколенный, 5-15
Пупкин
555-22-11
736-11-22
Кооператив ул. Малая Арнаутская, 12
Рога и Копыта
202-33-20
202-32-00
http://www.horn&hoof.com
mail@horn&hoof.com
Как видим, сам документ имеет древовидную структуру и состоит из вложенннных элементов.
Первая строка является признаком XML и содержится во всех документах.
Элемент – это данные, ограниченные парой тэгов.
Кроме данных, элементы могут содержать в себе атрибуты – например, у элемента phone есть атрибут type, который может принимать фиксированные значения «home» и «mobile».
Вместо пары тэгов для обозначения границ элемента может использоваться один тэг вида
Стандарт XML предписывает, чтобы у «дерева» элементов был корневой элемент, который будет содержать внутри себя все остальные. Корневой элемент должен быть единственным, то есть XML-документ, где два и больше корневых элементов, – это документ, сформированный неправильно.
Как видим, все просто и понятно. Документ легко читается и редактируется, а при желании можно написать XSL, трансформирующий его в HTML или RTF.
Давая свободу, XML одновременно предъявляет к документу гораздо более жесткие требования, чем HTML. Одно из ключевых понятий XML – «валидный» документ. Все элементы документа должны быть правильно закрыты, а вложенность их соответстовать спецификации. Конструкции типа Text, которые легко «проглатывает» HTML, в XML считаются фатальной ошибкой.
§ 1.4 Формат FictionBook – стандарт де-факто для электронных книг
Итак, формат FictionBook…
Сам формат был разработан Дмитрием Грибовым с несколькими соавторами, при поддержке группы энтузиастов.
Он полностью базируется на XML.
На данный момент это самый прогрессивный и перспективный формат для электронных книг. Единственный его недостаток, как признают сами авторы, бОльшие временные затраты при подготовке начального текста. Впрочем, он легко окупается удобством чтения.
В отличие от всех не-XML форматов, которые ориентированы на хранение или оформление текстовых данных, в FictionBook упор сделан на структурирование документа. То есть с помощью тэгов выделяются области текста: это – глава, это – заголовок, это – эпиграф, а вот это – цитата. А как все «это» будет выглядеть на экране, зависит от программы-ридера. Впрочем, на случай, если потребуется оформить книгу строго определенным образом, предусмотрена возможность присоединения таблицы стилей.
Используя формат FictionBook можно создать четко структурированную книгу (именно книгу, а не просто электронный документ), которую удобно читать в специализированной программе-читалке, а в случае надобности можно легко сконвертировать в любой популярный формат. Как правило, без потери разметки.
Возможности FictionBook позволяют выделить отдельные элементы книги: заголовки, эпиграфы, стихи, цитаты, вставить в текст иллюстрации и сноски, и, что немаловажно, внести все выходные данные книги.
Все компоненты книги (описание, непосредственно текст, иллюстрации) хранятся в одном файле, который можно упаковать архиватором. Большинство программ-читалок для FB2 умеют напрямую работать с архивами.
За прошедшие несколько лет стандарт уже успел устояться. Несмотря на то, что он включает сравнительно немного элементов, в него трудно добавить что-то действительно новое и полезное.
Еще одно достоинство FictionBook – книги в этом формате отлично поддаются каталогизации. Опираясь на встроенную систему описания книги, можно с легкостью создать как домашнюю, так и сетевую электронную библиотеку любого масштаба.
Учитывая объем электронных книг, накопленный до появления FictionBook, первый вопрос, который возникает при знакомстве с новым форматом – это возможность конвертирования книг из других форматов.
Никаких проблем. Разработанные авторами формата и энтузиастами программные средства позволяют эффективно конвертировать книги из форматов txt, HTML, RTF (doc).
Если же, наоборот, возникнет необходимость преобразовать книгу в формате FictionBook в другой формат, то «штатный» конвертор FB2Any неплохо справляется с преобразованием FB2 не только в классические txt и RTF, но и в специализированные форматы Roсket Book, iSilo, Micro$oft Reader. Еще не успел устояться новомодный формат для аппаратных читалок Wolf, как появились сразу несколько программ для конвертации книг fb2 в этот формат.
Таким образом, формат FictionBook обладает всеми качествами, чтобы стать единым стандартом для e-Book. И, фактически, уже стал им. Использование FB2 в русскоязычных онлайн-библиотеках, подтвердило его функциональность и жизнеспособность.
В нынешнем состоянии формат наиболее подходит для художественной литературы. Что совершенно не мешает использовать его для технических, методических, справочных изданий, а также для периодики.
После прочтения этого панегирика у читателя возникает справедливый вопрос:
Если FictionBook так хорош, то почему им не пользуются все?
Потому что развитие и, самое главное, продвижение формата целиком зависит от горстки энтузиастов.
Недосуг стало Михаилу Мацневу заниматься HaaliReader и FB Tools и все фактически замерло.
Впрочем, сейчас намечаются перемены к лучшему. Появляются новые программы для чтения, конверторы.
Второй причиной, пожалуй можно признать, необходимость ручного труда при подготовке книги. Автоматическая конвертация, позволяющей сделать качественную книгу просто невозможна. К тому же, до недавних пор, существующие программные средства для конвертации и редактирования особенным дружелюбием к пользователю не отличались.
Версия 2.1
В версию 2.1 формата было введено много новых и полезных элементов, как-то:
1. В заголовке появился новый необязательный раздел
2. Четыре новых способа форматирования текста: (нижний индекс), (верхний индекс), (преформатированный текст),
3. . 4. Добавлена схема управления конвертацией платных документов. 5. Переработан список жанров. 6. Добавлен новый элемент – таблицы! 7. Добавлены атрибуты title и id для К несчастью, эти полезные новшества не были оперативно поддержаны софтом для чтения и редактирования. Поэтому все нововведения оказались «сбоку припеку». Они не используются, и кое-кто из пользователей уже поговаривает, что неплохо бы их вообще убрать. Что, надеюсь, сделано не будет. Отсюда напрашивается категорический вывод, что выпуск давно анонсированной версии формата 3.0 должен сопровождаться выходом обновленных версий стандартной читалки, и не менее стандартного редактора. И читалка, и редактор, должны корректно поддерживать все особенности формата и, кроме того, они должны быть совместимы по формату закладок. Последняя «фича» крайне важна для вычитки текстов. Также, в обязательном порядке, должен быть, опять же, стандартный, пакет скриптов для сетевых библиотек. Иначе все улучшения и нововведения просто теряют всякий смысл. Книга FictionBook представляет собой XML-файл. Структурно этот файл можно разделить на три части. 1) Desсription – заголовок (описание) книги; 2) Body – непосредственно текст книги. В книге может быть несколько body. 3) Binary – необязательная часть. Содержит бинарные файлы, в кодировке BASE64. [2.1] 2.1
Cпецификация (schema) FictionBook находится на сайте Дмитрия Грибова, а также входит в комплект FB Tools. Поэтому размещать ее в электронной версии книги смысла нет. Но пример книги в формате FictionBook привести необходимо: Это пример книги в формате FictiionBook v 1.0 – создание книги (Юзич) Юзич ПРИМЕР КНИГИ В ФОРМАТЕ FictionBook 2.1 Это эпиграф Первая секция Секции обычно содержат текст. Текст может разделяться пустыми строками. Или подзаголовками. Вторая секция Первая вложенная секция Текст может быть полужирным или Содержать линки и [сноски]. В тексте могут быть картинки. Вторая вложенная секция Это цитата. Снова текст. Третья секция Стихи: Парус Снова обычный текст. Примечания 1 Текст сноски. RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAGUExURQEBAf///+tZAq0AAAAY SURBVHjaYmBAAEZGRjDGzsKvDgYAAgwABR4AH2mwMFgAAAAASUVORK5CYII= В самом начале любого файла книги идет признак формата XML <?xml version="1.0" encoding="windows-1251"?> Здесь указана сигнатура принадлежности к формату XML, его версия и кодировка файла. Для русскоязычных FictionBook это обычно windows-1251 или utf-8. [2.2] 2.2
За ним в обязательном порядке следует: Корневой элемент. Cинтаксис: <FictionBook>content</FictionBook>. Фактически, всегда используется в виде: <FictionBook xmlns="http://www.gribuser.ru/xml/fictionbook/2.0« xmlns:l=»http://www.w3.org/1999/xlink"> content </FictionBook>. Используется в элементах: корневой элемент Вложенные элементы: stylesheet, description, body, binary Количество вхождений: одно Атрибуты: xmlns Версия формата: 2.0 Пример: см. пример книги FictionBook, § 2.2 Список стилей, позволяющих конкретно определить, как будет выглядеть книга на экране устройства для чтения. До последнего времени читалками не поддерживался и практически не использовался. Лишь в конце 2007 года появился CoolReader 3.09 с экспериментальной поддержкой stylesheet. Cинтаксис: <stylesheet>content</stylesheet>. Используется в элементах: 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интаксис: <description>content</description>. Используется в элементах: FictionBook Вложенные элементы: title-info, src-title-info, document-info, publish-info, custom-info, output Количество вхождений: одно Атрибуты: нет Версия формата: 2.0 Пример: Тело книги. Допускаются дополнительные body для примечаний и дополнительных материалов. Cинтаксис: <body>content</body>. Используется в элементах: FictionBook Вложенные элементы: image, title, epigraph, section Количество вхождений: одно и более Атрибуты: name Версия формата: 2.0 Пример: Заголовок Текст. Содержит бинарные элементы, присоединяемые к файлу книги. Как правило, это картинки. Cинтаксис: <binary>content</binary>. Используется в элементах: FictionBook Вложенные элементы: нет Количество вхождений: произвольное Атрибуты: id (обязательный), content-type (обязательный) Версия формата: 2.0 Пример: iVBORw0KGgoAAAANSUhEUgAAAAkAAAAICAMAAAAcEyWHAAAABGdBTUEAAK/INwWK6QAAABl0 RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAGUExURQEBAf///+tZAq0AAAAY SURBVHjaYmBAAEZGRjDGzsKvDgYAAgwABR4AH2mwMFgAAAAASUVORK5CYII= Содержит базовую информацию о книге (заголовок, информация об авторе и переводчике, аннотация, вхождение в серию и т.д.) Cинтаксис: <title-info>content</title-info>. Используется в элементах: description Вложенные элементы: genre, author, book-title, annotation, keywords, date, coverpage, lang, src-lang, translator, sequence Количество вхождений: одно Атрибуты: нет Версия формата: 2.0 Пример: Аналогично 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 Пример: Информация о самом файле FictionBook – кем, когда и с помощью каких программных средств создана данная электронная книга. Cинтаксис: <document-info>content</document-info>. Используется в элементах: description Вложенные элементы: author, program-used, date, src-url, src-ocr, id, version, history Количество вхождений: одно Атрибуты: нет Версия формата: 2.0 Пример: v 1.0 – вычитка, конвертация в FB2 (Юзич) Информация о бумажном оригинале книги, если таковой существовал в природе. Cинтаксис: <publish-info>content</publish-info>. Используется в элементах: description Вложенные элементы: book-name, publisher, city, year, isbn, sequence Количество вхождений: одно или отсутствует Атрибуты: нет Версия формата: 2.0 Пример: Произвольная дополнительная информация. Cинтаксис: <custom-info>текст</custom-info>. Используется в элементах: description Вложенные элементы: Количество вхождений: одно или отсутствует Атрибуты: info-type (обязательный) Версия формата: 2.0 Пример: Жанр произведения. Содержимое элемента строго фиксировано и определяется файлом FictionBookGenres.xsd, входящим в состав спецификации FictionBook. Список жанров с переводом приведен в Приложении В. Cинтаксис: <genre>фиксированное значение</genre>. Используется в элементах: title-info, src-title-info Вложенные элементы: нет Количество вхождений: одно или более Атрибуты: match Версия формата: 2.0 Пример: Автор произведения или создатель электронной книги. Согласно спецификации, существуют два варианта правильного заполнения элемента. В первом случае, обязательно должны быть заполнены поля «Имя» и «Фамилия» (элементы 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 Название книги. Cинтаксис: <book-title>текст</book-title>. Используется в элементах: title-info, src-title-info Вложенные элементы: Количество вхождений: одно Атрибуты: нет Версия формата: 2.0 Пример: Аннотация. Краткое текстовое описание книги Cинтаксис: <annotation>content</annotation>. Используется в элементах: title-info, src-title-info, section Вложенные элементы: p, poem, cite, subtitle, table, empty-line Количество вхождений: одно или отсутствует Атрибуты: id Версия формата: 2.0 Пример: Список ключевых слов, с помощью которых библиотечный софт может искать книгу. Слова должны быть характерными для конкретного произведения. Cинтаксис: <keywords>текст</keywords>. Используется в элементах: title-info, src-title-info Вложенные элементы: нет Количество вхождений: одно или отсутствует Атрибуты: нет Версия формата: 2.0 Пример: Дата написания книги или создания файла. Список ключевых слов, с помощью которых библиотечный софт может искать книгу. Элемент date предусмотрен также и в стихотворениях, но из-за отсутствия поддержки в редакторах там не используется. Cинтаксис: <date>текст</date>. Используется в элементах: title-info, src-title-info, document-info, poem Вложенные элементы: нет Количество вхождений: одно или отсутствует Атрибуты: value Версия формата: 2.0 Пример: Картинка обложки. Содержит внутри элемент image, в который непосредственно и находится ссылка на bin-объект. Элементов image может быть несколько. Cинтаксис: <coverpage> Используется в элементах: title-info, src-title-info Вложенные элементы: image Количество вхождений: одно или отсутствует. Атрибуты: нет Версия формата: 2.0 Пример: Язык, на котором написана книга. Список возможных значений приведен в Приложении Г. Cинтаксис: <lang>по возможности, фиксированное значение</lang> Используется в элементах: title-info, src-title-info Вложенные элементы: нет Количество вхождений: одно Атрибуты: нет Версия формата: 2.0 Пример: Язык, на котором написан оригинал (для переводных книг). Список возможных значений приведен в Приложении Г. Cинтаксис: <src-lang>по возможности, фиксированное значение</src-lang> Используется в элементах: title-info, src-title-info Вложенные элементы: нет Количество вхождений: одно или отсутствует Атрибуты: нет Версия формата: 2.0 Пример: Информация о переводчике (для переводных книг). Cинтаксис: <translator>content</translator> Используется в элементах: title-info, src-title-info Вложенные элементы: first-name, middle-name, last-name, nickname, home-page, email Количество вхождений: произвольное Атрибуты: нет Версия формата: 2.0 Пример: см. пример элемент author Серия, в которую входит книга. Допускается неограниченное число вложенных серий. Cинтаксис: <sequence/> или <sequence><sequence/></sequence> Используется в элементах: title-info, src-title-info Вложенные элементы: sequence Количество вхождений: произвольное Атрибуты: name (обязательный), number Версия формата: 2.0 Пример: Программное обеспечение, использовавшееся при создании книги. Cинтаксис: <program-used>текст</program-used> Используется в элементах: document-info Вложенные элементы: нет Количество вхождений: одно или отсутствует Атрибуты: нет Версия формата: 2.0 Пример: Ссылка на сайт, если исходный текст книги был скачан из Интернета. Cинтаксис: <src-url>текст</src-url> Используется в элементах: document-info Вложенные элементы: нет Количество вхождений: произвольное Атрибуты: нет Версия формата: 2.0 Пример: Информация о людях, которые сканировали (набирали) и вычитывали книгу. Cинтаксис: <src-ocr>текст</src-ocr> Используется в элементах: document-info Вложенные элементы: нет Количество вхождений: одно или отсутствует Атрибуты: нет Версия формата: 2.0 Пример: Уникальный идентификационный номер книги. Cинтаксис: <id>текст</id> Используется в элементах: document-info Вложенные элементы: нет Количество вхождений: одно Атрибуты: нет Версия формата: 2.0 Пример: Номер версии файла. Cинтаксис: <version>число</version> Используется в элементах: document-info Вложенные элементы: нет Количество вхождений: одно Атрибуты: нет Версия формата: 2.0 Пример: История изменений, вносившихся в файл. Cинтаксис: <history>Content</history> Используется в элементах: document-info Вложенные элементы: p, poem, cite, subtitle, table, empty-line Количество вхождений: одно или отсутствует Атрибуты: id Версия формата: 2.0 Пример: v 1.0 – вычитка, конвертация в FB2 (Юзич) v 1.1 – дополнительное форматирование (Faiber) v 1.2 – дополнительная вычитка (Юзич) v 1.3 – дополнительная вычитка (Юзич) v 1.4 – окончательная (надеюсь!) вычитка (Юзич) Название бумажного оригинала. Cинтаксис: <book-name>текст</book-name> Используется в элементах: publish-info Вложенные элементы: нет Количество вхождений: одно или отсутствует Атрибуты: нет Версия формата: 2.0 Пример: см. пример элемента publish-info Название издательства, выпустившего бумажный оригинал. Используется в элементах: publish-info Cинтаксис: <publisher>текст</publisher> Вложенные элементы: нет Количество вхождений: одно или отсутствует Атрибуты: нет Версия формата: 2.0 Пример: см. пример элемента publish-info Город, в котором был издан бумажный оригинал. Cинтаксис:<city>текст</city> Используется в элементах: publish-info Вложенные элементы: нет Количество вхождений: одно или отсутствует Атрибуты: нет Версия формата: 2.0 Пример: см. пример элемента publish-info Год выхода бумажного оригинала Cинтаксис: <year>текст</year> Используется в элементах: publish-info Вложенные элементы: нет Количество вхождений: одно или отсутствует Атрибуты: нет Версия формата: 2.0 Пример: см. пример элемента publish-info ISBN-код бумажного оригинала. Cинтаксис: <isbn>текст</isbn> Используется в элементах: publish-info Вложенные элементы: нет Количество вхождений: одно или отсутствует Атрибуты: нет Версия формата: 2.0 Пример: см. пример элемента publish-infoЧасть II
Подробное описание формата FictionBook§ 2.1 Структура файла FictionBook.
Базовые понятия
Base64
Этот алгоритм был разработан для представления произвольных последовательностей байтов в форму, читаемую для человека. Кодирующий и декодирующий алгоритмы очень просты, но закодированные данные примерно на 33% больше, чем некодированные. Этот метод идентичен тому, который используется в приложениях PEM (Privacy Enhanced Mail), описанной в RFC 1421 с одним отличием: base64 не приемлет встроенного «чистого» текста.
Base64 использует 65-символьный поднабор из US-ASCII, выделяя 6 бит на каждый печатный символ. (65-й символ «=» используется для обозначения функции спец. обработки).
Этот поднабор имеет важное свойство: он идентичен всем версиям языковой кодировки ISO 646, включая US ASCII, а также всем версиям EBCDIC. Другие популярные механизмы кодирования (uuencode, base85 – часть уровня 2 PostScript) не разделяют этих свойств и поэтому не удовлетворяют требованиям переносимости для двоичных данных электронной почты.
Процесс кодирования преобразует 4 входных символа в виде 24-битной группы, обрабатывая их слева направо. Эти группы затем рассматриваются как 4 соединенные 6-битные группы, каждая из которых транслируется в одиночную цифру алфавита base64. При кодировании base64, входной поток байтов должен быть упорядочен старшими битами вперед.
Каждая 6-битная группа используется как индекс для массива 64-х печатных символов. Символ, на который указывает значение индекса, помещается в выходную строку. Эти символы выбраны так, чтобы быть универсально представимыми и исключают символы, имеющие специальное значение для SMTP-транспорта («.», CR, LF) и для синтаксиса вложенных тел MIME («-»).
Таблица: Алфавит Base64
Выходной поток (закодированные байты) должен иметь длину строк не более 76 символов. Все признаки перевода строки и другие символы, отсутствующие в таблице 1, должны быть проигнорированы декодером base64. Среди данных в Base64 символы, не перечисленные в табл. 1, переводы строки и т.п. должны говорить об ошибке передачи данных, и, соответственно, почтовая программа должна оповестить пользователя о ней.
Если в хвосте потока кодируемых данных осталось меньше, чем 24 бита, справа добавляются нулевые биты до образования целого числа 6-битных групп. А до конца 24-битной группы остается от 0 до 3-х недостающих 6-битных групп, вместо каждой из которых ставится символ-заполнитель «=». Поскольку весь входной поток представляет собой целое число 8-битных групп (т.е., просто байтных значений), то возможны лишь следующие случаи:
(1) входной поток как раз оканчивается 24-битной группой. В таком случае, выходной поток будет оканчиваться четырьмя символами Base64 без символа «=»;
(2) хвост входного потока имеет длину 8 бит. Тогда в конце выходного кода быдут два символа Base64, с добавлением двух символов «=»;
(3) хвост входного потока имеет длину 16 бит. Тогда в конце выходного будут стоять три символа Base64 и один символ «=».
Т.к. символ «=» является хвостовым заполнителем, его появление в теле письма может означать только то, что конец данных достигнут. Но такой гарантии нет, если число переданных битов кратно 24.
Любые бессмысленные последовательности в коде Base64 вроде «=====» должны быть игнорированы.
Основано на:
Спецификация RFC 1521 «MIME – Multipurpose Internet Mail Extensions. Part one.»
Перевод: Антон Воронин
[Закрыть] Как правило, это картинки.§ 2.2 Пример книги в формате FictionBook
§ 2.3 Элементы описания книги.
Базовые структурные элементы
UTF-8 – это ASCII-совместимая многобайтная кодировка Unicode.
В отличие от стандартного Unicode, в utf-8 cимволы с кодами от 0x00000000 до 0x0000007f (стандартный набор US-ASCII) кодируются как байты с кодами от 0x00 до 0x7f (совместимость с кодовой таблицей ASCII). Это означает, что файлы и строки, содержащие только 7-битные ASCII-символы, будут иметь одинаковое представление как в ASCII, так и в UTF-8.
[Закрыть]Элемент FictionBook
Элемент stylesheet
Элемент description
Элемент body
Элемент binary
§ 2.4 Элементы описания книги (description). Элементы первого уровня
Элемент title-info
Элемент src-title-info
Элемент document-info
Элемент publish-info
Элемент custom-info
§ 2.5 Элементы описания книги (description). Элементы второго уровня
Элемент genre
Элемент author
Элемент book-title
Элемент annotation
Элемент keywords
Элемент date
Элемент coverpage
Элемент lang
Элемент src-lang
Элемент translator
Элемент sequence
Элемент program-used
Элемент src-url
Элемент src-ocr
Элемент id
Элемент version
Элемент history
Элемент book-name
Элемент publisher
Элемент city
Элемент year
Элемент isbn