Описание Fictionbook — различия между версиями

Материал из FictionBook
Перейти к: навигация, поиск
(Перевёл статью с английского на русский язык)
 
Строка 1: Строка 1:
{{Надо перевести на русский}}
+
Оргинальный текст: '''''Mike Matsnev'''''
[[Eng:FictionBook description|English]]
+
  
FictionBook is based on the XML standard from W3C, and FictionBook documents are well-formed XML documents, conforming to the FictionBook schema. Since the adoption of hyperlinks in FictionBook version 2.0, XML namespaces are now mandatory for all FictionBook documents. The main FictionBook namespace is ?<nowiki>http://www.gribuser.ru/xml/fictionbook/2.0</nowiki>?, the version number in the namespace URL will change as new versions of the standard are developed. The other required namespace is ?<nowiki>http://www.w3.org/1999/xlink</nowiki>? for XLink. It should be included if any hyperlink elements are used in the document.
+
Перевёл на русский язык '''''Майк Эшва'''''
  
The overall document structure is straightforward and resembles that of HTML. However, the main goal of this work is to design an XML based document that focuses on the document?s logical structure, and not on the presentation features. An essential characteristic of structured markup is that it explicitly distinguishes the structure and semantic content of a document. It does not mark up the way in which the document will appear to the reader, in print or otherwise. In this specification we deliberately didn?t include any direct means for specifying presentation features. The only way to influence the rendering process is by specifying styles for paragraphs and strings of characters. Instead some unique elements are provided to separate logical parts of book, like poems, citations, and epigraphs.
+
FictionBook основан на XML стандарте от W3C. FictionBook документы являются well-formed XML документами, соответствующими схеме FictionBook. Со времени адаптирования перекрёстных ссылок в FictionBook версии 2.0, пространство имён XML является обязательным для всех FictionBook документов. Главое пространство имён FictionBook - ?<nowiki>http://www.gribuser.ru/xml/fictionbook/2.0</nowiki>?, номер версии в URL пространства имён будет меняться вместе с появлением новых версий стандарта. Ещё одно необходимое пространство имён - ?<nowiki>http://www.w3.org/1999/xlink</nowiki>? для XLink элементов. Оно должно быть включено, если в документе используются перекрёстные ссылки.
  
The complete FictionBook schema is available in [http://www.gribuser.ru/xml/fictionbook/2.0/xsd/FictionBook2.xsd FictionBook2.xsd], [http://www.gribuser.ru/xml/fictionbook/2.0/xsd/FictionBookGenres.xsd FictionBookGenres.xsd], [http://www.gribuser.ru/xml/fictionbook/2.0/xsd/FictionBookLang.xsd FictionBookLang.xsd] and [http://www.gribuser.ru/xml/fictionbook/2.0/xsd/FictionBookLinks.xsd FictionBookLinks.xsd], so I will only provide a high level description of the elements here.
+
Общая структура документа проста и похожа на структуру HTML. Однако главная цель этой работы состоит в том, чтобы спроектировать основанный на XML документ, который фокусируется на логической структуре документа, а не на особенностях визуального представления информации. Важная особенность структурной разметки состоит в том, что она явным образом определяет структуру и семантику материала документа. Она не определяет способы отображения документа при просмотре, печати или как-либо иначе. В данную спецификацию мы сознательно не включили какие-либо прямые способы указания свойств отображения. Единственный способ повлиять на процесс формирования изображения, ? с помощью стилей параграфов и символьных строк. Вместо этого представлены некоторые специальные элементы для различных логических частей книги, таких как: стихи, цитаты и эпиграфы.
  
All text in the document is stored in the following paragraph-type elements: p, v, and subtitle. An empty-line element that has no content is used to insert one line of vertical space. A few more complex containers are built from these basic elements: title (contains any number of p and empty-line), annotation, poem, cite, epigraph.
+
Полная схема FictionBook содержится в файлах [http://www.gribuser.ru/xml/fictionbook/2.0/xsd/FictionBook2.xsd FictionBook2.xsd], [http://www.gribuser.ru/xml/fictionbook/2.0/xsd/FictionBookGenres.xsd FictionBookGenres.xsd], [http://www.gribuser.ru/xml/fictionbook/2.0/xsd/FictionBookLang.xsd FictionBookLang.xsd] и [http://www.gribuser.ru/xml/fictionbook/2.0/xsd/FictionBookLinks.xsd FictionBookLinks.xsd], так что далее я дам только высокоуровневое описание элементов.
 +
Весь текст в документе хранится в следующих элементах типов параграфов: p, v и subtitle. Элемент empty-line, не имеющий содержимого, используется для вставки одной линии вертикального пропуска. Несколько других контейнерных элементов определяются на основе этих базовых элементов: title (содержит любое количество p и empty-line элементов), annotation, poem, cite, epigraph.
  
All documents start with the FictionBook root element, under which stylesheet, description, body and binary elements can occur. The stylesheetelements immediately below root contain stylesheets; their type attribute contains the MIME type of stylesheet. It is recommended to include one text/css stylesheet to ease conversion to other formats if any styles are used in the document. Binary elements are quite simple too and contain any base64-encoded opaque data that might be needed to render the document. They must always have the id and content-type attributes.
+
Все документы начинаются с корневого элемента FictionBook, под которым могут появляться элементы stylesheet, description, body и binary. Stylesheet элементы сразу после корня содержат таблицы стилей, их атрибут type содержит MIME тип таблицы стилей. Если в документе используются стили, рекомендуется включать одну text/css таблицу стилей для упрощения конвертации в другие форматы. Элементы binary также очень просты и содержат закодированные base64 данные, которые могут потребоваться для отображения документа. Они всегда должны содержать id и content-type атрибуты.
 +
Элемент description содержит всю информацию о книге, которая разбивается на четыре главных категории: title-info, document-info, publish-info и custom-info.
  
Description element contains all information about the book that is further divided into four main categories: title-info, document-info, publish-info, and custom-info.
+
Элемент title-info содержит данные о самой книге. Элемент genre определяет жанр книги. Атрибут match используется тогда, когда жанр не может быть точно определён с помощью единственного ключевого слова, например, некоторые книги могут быть одновременно детективами и научной фантастикой. Список авторов хранится в элементе author, который имеет традиционные поля first-name, middle-name, last-name, и добавляет необязательные подэлементы home-page и email. Элемент book-title ? это название книги. Элемент annotation содержит описание книги в свободной форме. Поле keywords перечисляет любые подходящие ключевые слова, которые могут быть использованы поисковыми машинами. Элемент date определяет дату написания книги в любом формате, необязательный атрибут value должен содержать дату в понятном компьютеру формате, если он был использован. Элементы src-lang и lang указывают соответственно язык, на котором книга написана, и язык данного документа, если он является переводом оригинала. Элементы translator имеют точно такую же структуру, как и элементы author, описанные ранее, и используются для перечисления переводчиков книги, в случае если книга является переводной.
 +
Информация, непосредственно о данном документе, собрана в элементе document-info, который содержит подэлементы author, program-used, date, src-url, src-ocr, version и history. Элементы author и date имеют тот же тип, что одноимённые элементы из группы title-info. Элемент history имеет тот же тип, что и annotation, и предназначен для перечисления важных изменений, внесённых в документ. Элемент version имеет свободный формат и должен увеличиваться, когда документ меняется.
  
Title-info holds data related to the book itself. Genre specifies the book?s genre, the match attribute is used when the genre is not exactly identified by the single genre keyword, e.g. some book might be both a detective and a science fiction story. Authors list is stored in the author element, that has traditional first-name, middle-name, last-name fields, and a couple of optional home-page and email subelements. Book-title is the book?s title. Annotation contains a free form short description of the book. Keywords field lists any relevant keywords that can be used by the search engines. Date element specifies a free format date the book was written at, the optional value attribute must have the date in computer readable format if present. Src-lang and lang elements have the original language and the document?s language if this is a translation. Translator elements have exactly the same structure as the author element above, and are used to list the translators of the book if this is a translation.
+
Блок publish-info используется в случаях, когда документ создан на основе печатного материала и имеет несколько библиографических полей, так как: book-name, publisher, city, year и isbn.
 +
Записи в блоке custom-info должны использоваться для хранения информации, которая не соответствует другим ранее описанным полям. Эти записи должны обязательно содержать атрибут info-type.
 +
Следующая важная часть FictionBook документа ? это body, которая содержит сам текст книги. Первый элемент body всегда ? главный поддокумент данной книги. Последующие элементы body могут быть использованы для хранения сносок, комментариев и другой информации, которая не укладывается в нормальный поток текста. Каждый элемент body может содержать не обязательные элементы title, epigraph и как минимум один section элемент.
 +
Есть две разновидности секций. Одна из них содержит только другие подсекции, другая содержит сами параграфы текста. В текущей версии стандарта FictionBook не допускается смешивание подсекций и параграфов внутри одного и того же контейнера. Каждая секция может иметь несколько не обязательных полей заголовка: title, epigraph, image и annotation. После них должен быть как минимум один параграфный элемент для текстовых секций или как минимум одна подсекция для второго типа секций.
  
Information about this particular document is gathered in the document-info element, that contains author, program-used, date, src-url, src-ocr, version, and history elements. Author and date elements have the same type as in the title-info group. History?s type is the same as in annotation; it is intended to list major changes to the document. Version has the free format version of the document, and should be incremented when the document is changed.
+
FictionBook предоставляет несколько элементов для поддержки перекрёстных ссылок, важное свойство для электронных документов в наше время. Перекрёстные ссылки в FictionBook основаны на спецификации XLink от консорциума W3 и является подмножеством XLink. В настоящее время в FictionBook поддерживаются только простые связи из XLink. Первый элемент может быть включен в любой параграфный элемент. Он включает два обязательных атрибута: xlink:type с простым фиксированным значением и xlink:href, который определяет место назначения связи на языке XPath/XPointer. Для мест назначения связей в том же документе может быть использована простая форма XPointer-выражения: "#<id>". Необязательный атрибут type может быть использован для дальнейшего определения типа связи. В настоящее время определено лишь одно возможное значение для данного атрибута: "note", используемое для сносок. Второй элемент перекрёстных ссылок ? это image, который также имеет тот же обязательный XLink атрибут, и используется для вставки встроенных в текст изображений. Место назначения ссылки выделяется с помощью атрибута id, который может появляться во всех параграфных элементах, у большей части высокоуровневых контейнеров и на элементах двоичных данных.
  
Publish-info block is used when the document is created from a hardcopy edition, and has a few bibliographical fields like book-name, publisher, city, year and isbn.
+
Для демонстрации изложенного приведу пример FictionBook, содержащий первые несколько параграфов из ?A study in scarlet?, взятых из Проекта Гутенберга:
 
+
Custom-info records should be used to store information that does not fit into any of the above fields. These must always have the required info-type attribute.
+
 
+
The next major part of FictionBook document is body that contains the actual book?s text. The first body element is always the main subdocument in the book. Subsequent bodies can be used to store footnotes, comments and other stuff that does not belong to the normal text flow in the book. Each body element can contain an optional title, optional epigraph and at least one section.
+
 
+
There are two distinct kinds of sections. One contains other subsections only, and the other contains actual text paragraphs. It is not possible to mix subsections and paragraphs inside the same container in the current version of FictionBook standard. Each section can have a number of optional header fields: title, epigraph, image, and annotation. After these, there must be at least one paragraph-type element for text sections or at least one subsection for others.
+
 
+
The FictionBook provides a few elements for hyperlinking, an essential feature for electronic documents in our modern times. Hyperlinks in FictionBook are based on the XLink specification from the W3 consortium, and are a subset of the XLink. Currently only simple links from the XLink are included in FictionBook. First is the a element, that can be included in any paragraph-type element. It has two required attributes: xlink:type with the fixed value of ?simple?, and the xlink:href, that specifies the link destination in XPath/XPointer language. For link destinations within the same document, a simple form of XPointer expression can be used: ?#<id>?. The optional type attribute can be used to further specify the meaning of the link. At this time only one possible value for this attribute is defined, ?note? for footnotes. The second hyperlinking element is image that has the same mandatory XLink attributes, and is used for inserting inline images into the text flow. Link destinations are marked with the id attribute that can occur on all paragraph-type elements, on most high-level containers, and on the binary elements.
+
 
+
To illustrate the description there is a short FictionBook example, first few paragraphs from ?A study in scarlet?, taken from Project Gutenberg:
+
 
  <nowiki>
 
  <nowiki>
 
  <?xml version="1.0" encoding="iso-8859-1"?>
 
  <?xml version="1.0" encoding="iso-8859-1"?>
Строка 120: Строка 115:
 
  </nowiki>
 
  </nowiki>
  
'''''Mike Matsnev'''''
 
 
[[Категория:FB статьи]]
 
[[Категория:FB статьи]]

Текущая версия на 21:50, 29 июля 2006

Оргинальный текст: Mike Matsnev

Перевёл на русский язык Майк Эшва

FictionBook основан на XML стандарте от W3C. FictionBook документы являются well-formed XML документами, соответствующими схеме FictionBook. Со времени адаптирования перекрёстных ссылок в FictionBook версии 2.0, пространство имён XML является обязательным для всех FictionBook документов. Главое пространство имён FictionBook - ?http://www.gribuser.ru/xml/fictionbook/2.0?, номер версии в URL пространства имён будет меняться вместе с появлением новых версий стандарта. Ещё одно необходимое пространство имён - ?http://www.w3.org/1999/xlink? для XLink элементов. Оно должно быть включено, если в документе используются перекрёстные ссылки.

Общая структура документа проста и похожа на структуру HTML. Однако главная цель этой работы состоит в том, чтобы спроектировать основанный на XML документ, который фокусируется на логической структуре документа, а не на особенностях визуального представления информации. Важная особенность структурной разметки состоит в том, что она явным образом определяет структуру и семантику материала документа. Она не определяет способы отображения документа при просмотре, печати или как-либо иначе. В данную спецификацию мы сознательно не включили какие-либо прямые способы указания свойств отображения. Единственный способ повлиять на процесс формирования изображения, ? с помощью стилей параграфов и символьных строк. Вместо этого представлены некоторые специальные элементы для различных логических частей книги, таких как: стихи, цитаты и эпиграфы.

Полная схема FictionBook содержится в файлах FictionBook2.xsd, FictionBookGenres.xsd, FictionBookLang.xsd и FictionBookLinks.xsd, так что далее я дам только высокоуровневое описание элементов. Весь текст в документе хранится в следующих элементах типов параграфов: p, v и subtitle. Элемент empty-line, не имеющий содержимого, используется для вставки одной линии вертикального пропуска. Несколько других контейнерных элементов определяются на основе этих базовых элементов: title (содержит любое количество p и empty-line элементов), annotation, poem, cite, epigraph.

Все документы начинаются с корневого элемента FictionBook, под которым могут появляться элементы stylesheet, description, body и binary. Stylesheet элементы сразу после корня содержат таблицы стилей, их атрибут type содержит MIME тип таблицы стилей. Если в документе используются стили, рекомендуется включать одну text/css таблицу стилей для упрощения конвертации в другие форматы. Элементы binary также очень просты и содержат закодированные base64 данные, которые могут потребоваться для отображения документа. Они всегда должны содержать id и content-type атрибуты. Элемент description содержит всю информацию о книге, которая разбивается на четыре главных категории: title-info, document-info, publish-info и custom-info.

Элемент title-info содержит данные о самой книге. Элемент genre определяет жанр книги. Атрибут match используется тогда, когда жанр не может быть точно определён с помощью единственного ключевого слова, например, некоторые книги могут быть одновременно детективами и научной фантастикой. Список авторов хранится в элементе author, который имеет традиционные поля first-name, middle-name, last-name, и добавляет необязательные подэлементы home-page и email. Элемент book-title ? это название книги. Элемент annotation содержит описание книги в свободной форме. Поле keywords перечисляет любые подходящие ключевые слова, которые могут быть использованы поисковыми машинами. Элемент date определяет дату написания книги в любом формате, необязательный атрибут value должен содержать дату в понятном компьютеру формате, если он был использован. Элементы src-lang и lang указывают соответственно язык, на котором книга написана, и язык данного документа, если он является переводом оригинала. Элементы translator имеют точно такую же структуру, как и элементы author, описанные ранее, и используются для перечисления переводчиков книги, в случае если книга является переводной. Информация, непосредственно о данном документе, собрана в элементе document-info, который содержит подэлементы author, program-used, date, src-url, src-ocr, version и history. Элементы author и date имеют тот же тип, что одноимённые элементы из группы title-info. Элемент history имеет тот же тип, что и annotation, и предназначен для перечисления важных изменений, внесённых в документ. Элемент version имеет свободный формат и должен увеличиваться, когда документ меняется.

Блок publish-info используется в случаях, когда документ создан на основе печатного материала и имеет несколько библиографических полей, так как: book-name, publisher, city, year и isbn. Записи в блоке custom-info должны использоваться для хранения информации, которая не соответствует другим ранее описанным полям. Эти записи должны обязательно содержать атрибут info-type. Следующая важная часть FictionBook документа ? это body, которая содержит сам текст книги. Первый элемент body всегда ? главный поддокумент данной книги. Последующие элементы body могут быть использованы для хранения сносок, комментариев и другой информации, которая не укладывается в нормальный поток текста. Каждый элемент body может содержать не обязательные элементы title, epigraph и как минимум один section элемент. Есть две разновидности секций. Одна из них содержит только другие подсекции, другая содержит сами параграфы текста. В текущей версии стандарта FictionBook не допускается смешивание подсекций и параграфов внутри одного и того же контейнера. Каждая секция может иметь несколько не обязательных полей заголовка: title, epigraph, image и annotation. После них должен быть как минимум один параграфный элемент для текстовых секций или как минимум одна подсекция для второго типа секций.

FictionBook предоставляет несколько элементов для поддержки перекрёстных ссылок, важное свойство для электронных документов в наше время. Перекрёстные ссылки в FictionBook основаны на спецификации XLink от консорциума W3 и является подмножеством XLink. В настоящее время в FictionBook поддерживаются только простые связи из XLink. Первый элемент может быть включен в любой параграфный элемент. Он включает два обязательных атрибута: xlink:type с простым фиксированным значением и xlink:href, который определяет место назначения связи на языке XPath/XPointer. Для мест назначения связей в том же документе может быть использована простая форма XPointer-выражения: "#<id>". Необязательный атрибут type может быть использован для дальнейшего определения типа связи. В настоящее время определено лишь одно возможное значение для данного атрибута: "note", используемое для сносок. Второй элемент перекрёстных ссылок ? это image, который также имеет тот же обязательный XLink атрибут, и используется для вставки встроенных в текст изображений. Место назначения ссылки выделяется с помощью атрибута id, который может появляться во всех параграфных элементах, у большей части высокоуровневых контейнеров и на элементах двоичных данных.

Для демонстрации изложенного приведу пример FictionBook, содержащий первые несколько параграфов из ?A study in scarlet?, взятых из Проекта Гутенберга:

 <?xml version="1.0" encoding="iso-8859-1"?>
 <FictionBook xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns="http://www.gribuser.ru/xml/fictionbook/2.0">
  <description>
    <title-info>
      <genre match="100">detective</genre>
      <author>
        <first-name>Arthur</first-name>
        <middle-name>Conan</middle-name>
        <last-name>Doyle</last-name>
      </author>
      <book-title>A Study in Scarlet</book-title>
      <annotation>
      </annotation>
      <date value="1887-01-01">1887</date>
    </title-info>
    <document-info>
      <author>
        <first-name/>
        <last-name/>
        <nickname>Haali</nickname>
      </author>
      <program-used>vim, perl</program-used>
      <date value="2002-06-01">2002-06-01</date>
      <src-ocr>
        Project Gutenberg, file: study10.txt
        This etext is prepared directly from an 1887 edition, and care has
        been taken to duplicate the original exactly, including typographical
        and punctuation vagaries. Additions to the text include adding the
        underscore character (_) to indicate italics, and textual end-notes
        in curly braces ({}). Thanks to Randolph Cox for providing the book
        for etexting. Etext prepared by Roger Squires rsquires@unm.edu
      </src-ocr>
      <version>1.0</version>
      <history>
        <p>2002-06-01 Initial version</p>
      </history>
    </document-info>
  </description>
  <body>
    <section>
      <p>Frontispiece, with the caption: "He examined with his glass the word
        upon the wall, going over every letter of it with the most minute
        exactness." (<emphasis>Page</emphasis> 23.)</p>
    </section>
    <section>
      <title><p>PART I.</p></title>
      <section>
        <p>(<emphasis>Being a reprint from the reminiscences of</emphasis> JOHN
          H. WATSON, M.D.,<emphasis> late of the Army Medical
            Department.</emphasis>) <a xlink:href="#N2" type="note">2</a></p>
      </section>
      <section>
        <title><p>CHAPTER I. MR. SHERLOCK HOLMES.</p></title>
        <p>IN the year 1878 I took my degree of Doctor of Medicine of the
          University of London, and proceeded to Netley to go through the
          course prescribed for surgeons in the army. Having completed my
          studies there, I was duly attached to the Fifth Northumberland
          Fusiliers as Assistant Surgeon. The regiment was stationed in India
          at the time, and before I could join it, the second Afghan war had
          broken out. On landing at Bombay, I learned that my corps had
          advanced through the passes, and was already deep in the enemy's
          country. I followed, however, with many other officers who were in
          the same situation as myself, and succeeded in reaching Candahar in
          safety, where I found my regiment, and at once entered upon my new
          duties.</p>
        <p>The campaign brought honours and promotion to many, but for me it
          had nothing but misfortune and disaster. I was removed from my
          brigade and attached to the Berkshires, with whom I served at the
          fatal battle of Maiwand. There I was struck on the shoulder by a
          Jezail bullet, which shattered the bone and grazed the subclavian
          artery. I should have fallen into the hands of the murderous Ghazis
          had it not been for the devotion and courage shown by Murray, my
          orderly, who threw me across a pack-horse, and succeeded in bringing
          me safely to the British lines.</p>
      </section>
    </section>
  </body>
  <body name="footnotes">
    <section>
      <subtitle id="N2">2</subtitle>
      <p>"JOHN H. WATSON, M.D.": the initial letters in the name are
        capitalized, the other letters in small caps. All chapter titles are in
        small caps. The initial words of chapters are in small caps with first
        letter capitalized.</p>
    </section>
  </body>
 </FictionBook>