FictionBook 2.0 Schema - комментарии — различия между версиями

Материал из FictionBook
Перейти к: навигация, поиск
 
м
 
(не показаны 7 промежуточные версии 3 участников)
Строка 1: Строка 1:
 
 
== Что такое Schema? ==
 
== Что такое Schema? ==
 
W3C Schema - формальное описание требований к документу XML. Schema определяет какие теги можно использовать, и где они могут располагаться, и что они могут содержать. Так же Schema определяет, какие теги должны присутствовать обязательно, а какие могут быть опущены.
 
W3C Schema - формальное описание требований к документу XML. Schema определяет какие теги можно использовать, и где они могут располагаться, и что они могут содержать. Так же Schema определяет, какие теги должны присутствовать обязательно, а какие могут быть опущены.
  
 
== Структура документа FictionBook ==
 
== Структура документа FictionBook ==
Документ FictionBook состоит из двух частей - заголовка (<description>) и тела (<body>). За ними могут следовать включенные в документ двоичные файлы. Пока обрабатываются программами файлы *.PNG и *.JPG, но вложить в документ можно любые файлы.
+
Документ FictionBook состоит из двух частей - заголовка ([[Элемент description|&lt;description&gt;]]) и тела ([[Элемент body|&lt;body&gt;]]. За ними могут следовать включенные в документ двоичные файлы. Пока обрабатываются программами файлы *.PNG и *.JPG, но вложить в документ можно любые файлы.
  
 
== Заголовок ==
 
== Заголовок ==
Заголовок состоит из трех частей: информация о содержимом книги (<title-info>), информация о XML-документе (<document-info>), и информация о бумажном издании (<publish-info>), на котором основывается данный документ XML.
+
Заголовок состоит из трех частей: информация о содержимом книги ([[Элемент title-info|&lt;title-info&gt;]]), информация о XML-документе ([[Элемент document-info|&lt;document-info&gt;]]), и информация о бумажном издании ([[Элемент publish-info|&lt;publish-info&gt;]]), на котором основывается данный документ XML.
 +
 
 +
В заголовке обязательными являются только [[Элемент title-info|&lt;title-info&gt;]] и [[Элемент document-info|&lt;document-info&gt;]]. [[Элемент title-info|&lt;title-info&gt;]] описывает название произведения, автора, жанр, язык и может содержать дополнительную информацию (типа аннотации, ключевых слов, языка оригинала и т.п.)
 +
 
 +
[[Элемент publish-info|&lt;publish-info&gt;]] описывает бумажное издание, на котором основан документ и является необязательным, хотя его заполнение при создании книг всячески приветствуется. Такая информация позволит легко отслеживать ошибки в документах и позволит объективно оценить удобство различных средств и методов разработки документов FictionBook и совершенствовать такие средства и методы.
 +
 
 +
=== Пример минимального заголовка: ===
 +
<pre>
 +
<description>
 +
<title-info>
 +
  <genre>history_russia</genre>
 +
  <author>
 +
  <first-name>Лев</first-name>
 +
  <middle-name>Николаевич</middle-name>
 +
  <last-name>Толстой</last-name>
 +
  </author>
 +
  <book-title>Война и мир</book-title>
 +
  <lang>ru</lang>
 +
</title-info>
 +
<document-info>
 +
  <author>
 +
  <nickname>GribUser</nickname>
 +
  </author>
 +
<date value="2002-10-15">15 ноября 2002г., 19:53</date>
 +
<id>GribUser_WarAndWorld_D49FHSH8l0HS5</id>
 +
<version>2.0</version>
 +
</document-info>
 +
</description>
 +
</pre>
 +
 
 +
=== Пример развернутого заголовка: ===
 +
<pre>
 +
<description>
 +
<title-info>
 +
<!--Вы можете указывать необходимое колличество жанров,которым соответствует книга. Это облегчит ее каталогизацию в библиотеке.
 +
Для занесения книги в библиотеку необходимо указать хотябы один жанр.--!>
 +
  <genre>history_russia</genre>
 +
  <genre>romance_historical</genre>
 +
  <genre>literature_classics</genre>
 +
  <genre>literature_history</genre>
 +
  <genre>literature_war</genre>
 +
  <genre>literature_rus_classsic</genre>
 +
  <genre>computers</genre>
 +
  <author>
 +
<!--Имя-Отчество-Фамилия автора книги. Так же
 +
здесь допустимы поля nickname, home-page, email.
 +
Необходимо указать first-name+last-name или nickname,
 +
остальные поля являются необязательными.--!>
 +
  <first-name>Лев</first-name>
 +
  <middle-name>Николаевич</middle-name>
 +
  <last-name>Толстой</last-name>
 +
  <nickname>Лева</nickname>
 +
  <home-page>http://www.pupkin.ru</home-page>
 +
  <email>lev@tolstoy.ru</email>
 +
  </author>
 +
<!--Название книги - комментарии излишни.--!>
 +
  <book-title>Война и мир</book-title>
 +
<!--Аннотация - позволит разыскивающему себе чтива
 +
в библиотеке оценить, подходит ему книга, или нет--!>
 +
  <annotation>
 +
<nowiki><p></nowiki>
 +
Это тестовый файл FictionBook 2.0. Создан грибовым дмитрием
 +
в демонстрационных целях и для экспериментов с библиотекой FIctionBook.lib.
 +
К сожалению сам роман я в FB2 пока не перевел.
 +
<nowiki></p></nowiki>
 +
<empty-line/>
 +
<nowiki><p></nowiki>
 +
Роман Толстого ?Война и мир? был написан в 1869 году. Это
 +
произведение явилось, по словам многих известных писателей и
 +
критиков, ?величайшим романом в мире?. Главная мысль в романе -
 +
мысль народная.
 +
<nowiki></p></nowiki>
 +
<!--Аннотация может включать в себя все текстовые элементы:
 +
стихи
 +
цитаты
 +
пустые строки
 +
гиперссылки.--!>
 +
<poem>
 +
<title>
 +
<nowiki><p></nowiki>
 +
Название стиха
 +
<nowiki></p></nowiki>
 +
</title>
 +
<epigraph>
 +
<nowiki><p></nowiki>
 +
Стихотворение посвящается
 +
тегу "stanza"
 +
<nowiki></p></nowiki>
 +
</epigraph>
 +
<stanza>
 +
<v>Типа тут стихи</v>
 +
<v>В этой строфе</v>
 +
<v>Типа тут стихи</v>
 +
<v>В этой строфе</v>
 +
</stanza>
 +
</poem>
 +
<nowiki><cite></nowiki>
 +
<nowiki><p></nowiki>
 +
Здесь можно кого-нибудь процитировать
 +
<nowiki></p></nowiki>
 +
<text-author>Автор/Источник Цитаты</text-author>
 +
<nowiki></cite></nowiki>
 +
<nowiki><p></nowiki>
 +
Большую часть романа занимают картины военных действий. В этом
 +
произведении Толстым дано изображение двух войн: 1805 и 1812 годов. В обеих войнах
 +
главным и решающим фактором явились
 +
народные массы. <a xlink:href="#annotation_src" type="note">[источник]</a>.
 +
<nowiki></p></nowiki>
 +
  </annotation>
 +
<!--Уф. Вот и кончилась эта чудовищная аннотация,
 +
дальше поехали ключевые слова, дата написания, обложка, язык книги и оригинала,
 +
переводчик и серия.--!>
 +
  <keywords>
 +
1912, война, роман, отечественная, наполеон, кутузов, император, политика, нравственность
 +
  </keywords>
 +
  <date value="1869-01-01">1863-1869</date>
 +
  <coverpage>
 +
  <image xlink:href="#cover.jpg"/>
 +
  </coverpage>
 +
  <lang>ru</lang>
 +
  <src-lang>ru</src-lang>
 +
  <translator>
 +
  <first-name>Вообще-то</first-name>
 +
  <middle-name>никакого переводчика нет</middle-name>
 +
  <last-name>Это так, для примера</last-name>
 +
  </translator>
 +
<!--Вообще-то этот роман не входит ни в какие серии,
 +
но если вы он входил, выглядело бы это так:--!>
 +
  <sequence name="Детство, Отрочество, Юность" number="2"/>
 +
</title-info>
 +
<!--Теперь поехала информация о документе,
 +
когда отформатирован, кем и т.д.--!>
 +
<document-info>
 +
  <author>
 +
  <nickname>GribUser</nickname>
 +
  <home-page>http://www.gribuser.ru</home-page>
 +
  <email>grib@gribuser.ru</email>
 +
  </author>
 +
<program-used>ClearTXT, XMLSpy, HomeSite 5.0</program-used>
 +
<date value="2002-10-15">15 ноября 2002г., 19:53</date>
 +
<src-url>http://www.magister.msk.ru/library/tolstoy/wp/wp00.htm</src-url>
 +
<src-ocr>Oleg E. Kolesnikov</src-ocr>
 +
<!--Поле id позволяет отслеживать судьбу документа,
 +
и не вносить, например, в библиотеку, две версии одного документа,
 +
а просто обновить его. Или наоборот, внести новый документ вместо
 +
обновления существующего.--!>
 +
<id>GribUser_WarAndWorld_D49FHSH8l0HS5</id>
 +
<version>2.0</version>
 +
<history>
 +
  <nowiki><p></nowiki>
 +
  Этот документ первоначально был создан для
 +
  FictionBook 1.0 и позднее переделан для FB2.0<nowiki></p></nowiki>
 +
  </history>
 +
</document-info>
 +
<!--И на закуску - информация о бумажной публикации,
 +
на которой основан документ.--!>
 +
<publish-info>
 +
  <book-name>Л.Н.Толстой, Полное Собрание Сочинений</book-name>
 +
  <publisher>ГИХЛ</publisher>
 +
  <city>Москва</city>
 +
  <year>1957</year>
 +
  <isbn>Тут пишем ISBN код книги, если есть</isbn>
 +
</publish-info>
 +
<!--А здесь - все, что не лезет ни в какие рамки.--!>
 +
<custom-info info-type="general">
 +
Здесь можно расположить дополнительную информацию, не укладывающуюся
 +
в заданную схему. Это может быть как описательная информация, так и коммерческая
 +
информация, связанная с книгой - например, информация о том, где можно купить бумажное издание
 +
</custom-info>
 +
</description>
 +
</pre>
 +
 
 +
== Тело ==
 +
Тело документа FictionBook ([[Элемент body|&lt;body&gt;]]) состоит из одной или более части ([[Элемент section|&lt;section&gt;]]). [[Элемент section|&lt;section&gt;]] может быть вложена внутрь другой [[Элемент section|&lt;section&gt;]], при этом одновременное вложение текстов и [[Элемент section|&lt;section&gt;]] не допускается.
 +
 
 +
Всегда допустимые теги внутри [[Элемент section|&lt;section&gt;]]:
 +
 
 +
* [[Элемент title|&lt;title&gt;]] - название секции (части, главы, или другой структурной единицы), допускающее использование параграфов ([[Элемент р|&lt;p&gt;]]) и пустых строк ([[Элемент empty-line|&lt;empty-line&gt;]]) для сложных заголовков;
 +
 
 +
* [[Элемент image|&lt;image&gt;]] - рисунок;
 +
 
 +
* [[Элемент epigraph|&lt;epigraph&gt;]] - эпиграф, допустим в начале, может быть несколько;
 +
 
 +
* [[Элемент annotation|&lt;annotation&gt;]] - краткое описание главы.
 +
 
 +
Теги, допустимые в любом порядке и количестве внутри [[Элемент section|&lt;section&gt;]], если в нее не вложена другая [[Элемент section|&lt;section&gt;]]:
 +
 
 +
* [[Элемент p|&lt;p&gt;]] - параграф. Допускает использование стилей [[Элемент style|&lt;style&gt;]], выделения  [[Элемент strong|&lt;strong&gt;]], [[Элемент emphasis|&lt;emphasis&gt;]] и ссылок [[Элемент a|&lt;a&gt;]];
 +
 
 +
* [[Элемент image|&lt;image&gt;]] - рисунок;
 +
 
 +
* [[Элемент empty-line|&lt;empty-line&gt;]] - пустая строка;
 +
 
 +
* [[Элемент poem|&lt;poem&gt;]] - стихи;
 +
 
 +
* [[Элемент subtitle|&lt;subtitle&gt;]] - смысловой разделитель, имеющий внутри себя текст;
 +
 
 +
* [[Элемент cite|&lt;cite&gt;]] - цитата.
  
В заголовке обязательными являются только <title-info> и <document-info>. <title-info> описывает название произведения, автора, жанр, язык и может содержать дополнительную информацию (типа аннотации, ключевых слов, языка оригинала и т.п.)
+
Более полную информацию можно найти, просмотрев исходный текст и комментарии в примере документа FictionBook.
  
<publish-info> описывает бумажное издание, на котором основан документ и является необязательным, хотя его заполнение при создании книг всячески приветствуется. Такая информация позволит легко отслеживать ошибки в документах и позволит объективно оценить удобство различных средств и методов разработки документов FictionBook и совершенствовать такие средства и методы.
+
[[Категория:FB документы]]

Текущая версия на 12:51, 26 октября 2013

Что такое Schema?

W3C Schema - формальное описание требований к документу XML. Schema определяет какие теги можно использовать, и где они могут располагаться, и что они могут содержать. Так же Schema определяет, какие теги должны присутствовать обязательно, а какие могут быть опущены.

Структура документа FictionBook

Документ FictionBook состоит из двух частей - заголовка (<description>) и тела (<body>. За ними могут следовать включенные в документ двоичные файлы. Пока обрабатываются программами файлы *.PNG и *.JPG, но вложить в документ можно любые файлы.

Заголовок

Заголовок состоит из трех частей: информация о содержимом книги (<title-info>), информация о XML-документе (<document-info>), и информация о бумажном издании (<publish-info>), на котором основывается данный документ XML.

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

<publish-info> описывает бумажное издание, на котором основан документ и является необязательным, хотя его заполнение при создании книг всячески приветствуется. Такая информация позволит легко отслеживать ошибки в документах и позволит объективно оценить удобство различных средств и методов разработки документов FictionBook и совершенствовать такие средства и методы.

Пример минимального заголовка:

 <description>
 <title-info>
   <genre>history_russia</genre>
   <author>
   <first-name>Лев</first-name>
   <middle-name>Николаевич</middle-name>
   <last-name>Толстой</last-name>
   </author>
   <book-title>Война и мир</book-title>
   <lang>ru</lang>
 </title-info>
 <document-info>
   <author>
   <nickname>GribUser</nickname>
   </author>
 <date value="2002-10-15">15 ноября 2002г., 19:53</date>
 <id>GribUser_WarAndWorld_D49FHSH8l0HS5</id>
 <version>2.0</version>
 </document-info>
 </description>

Пример развернутого заголовка:

<description>
 <title-info>
 <!--Вы можете указывать необходимое колличество жанров,которым соответствует книга. Это облегчит ее каталогизацию в библиотеке.
 Для занесения книги в библиотеку необходимо указать хотябы один жанр.--!>
   <genre>history_russia</genre>
   <genre>romance_historical</genre>
   <genre>literature_classics</genre>
   <genre>literature_history</genre>
   <genre>literature_war</genre>
   <genre>literature_rus_classsic</genre>
   <genre>computers</genre>
  <author>
 <!--Имя-Отчество-Фамилия автора книги. Так же
 здесь допустимы поля nickname, home-page, email.
 Необходимо указать first-name+last-name или nickname,
 остальные поля являются необязательными.--!>
   <first-name>Лев</first-name>
   <middle-name>Николаевич</middle-name>
   <last-name>Толстой</last-name>
   <nickname>Лева</nickname>
   <home-page>http://www.pupkin.ru</home-page>
   <email>lev@tolstoy.ru</email>
   </author>
 <!--Название книги - комментарии излишни.--!>
   <book-title>Война и мир</book-title>
 <!--Аннотация - позволит разыскивающему себе чтива
 в библиотеке оценить, подходит ему книга, или нет--!>
  <annotation>
 <p>
 Это тестовый файл FictionBook 2.0. Создан грибовым дмитрием
 в демонстрационных целях и для экспериментов с библиотекой FIctionBook.lib.
 К сожалению сам роман я в FB2 пока не перевел.
 </p>
 <empty-line/>
 <p>
 Роман Толстого ?Война и мир? был написан в 1869 году. Это
 произведение явилось, по словам многих известных писателей и
 критиков, ?величайшим романом в мире?. Главная мысль в романе -
 мысль народная.
 </p>
 <!--Аннотация может включать в себя все текстовые элементы:
 стихи
 цитаты
 пустые строки
 гиперссылки.--!>
 <poem>
 <title>
 <p>
 Название стиха
 </p>
 </title>
 <epigraph>
 <p>
 Стихотворение посвящается
 тегу "stanza"
 </p>
 </epigraph>
 <stanza>
 <v>Типа тут стихи</v>
 <v>В этой строфе</v>
 <v>Типа тут стихи</v>
 <v>В этой строфе</v>
 </stanza>
 </poem>
 <cite>
 <p>
 Здесь можно кого-нибудь процитировать
 </p>
 <text-author>Автор/Источник Цитаты</text-author>
 </cite>
 <p>
 Большую часть романа занимают картины военных действий. В этом
 произведении Толстым дано изображение двух войн: 1805 и 1812 годов. В обеих войнах
 главным и решающим фактором явились
 народные массы. <a xlink:href="#annotation_src" type="note">[источник]</a>.
 </p>
   </annotation>
 <!--Уф. Вот и кончилась эта чудовищная аннотация,
 дальше поехали ключевые слова, дата написания, обложка, язык книги и оригинала,
 переводчик и серия.--!>
   <keywords>
 1912, война, роман, отечественная, наполеон, кутузов, император, политика, нравственность
   </keywords>
   <date value="1869-01-01">1863-1869</date>
   <coverpage>
   <image xlink:href="#cover.jpg"/>
   </coverpage>
   <lang>ru</lang>
   <src-lang>ru</src-lang>
   <translator>
   <first-name>Вообще-то</first-name>
   <middle-name>никакого переводчика нет</middle-name>
   <last-name>Это так, для примера</last-name>
   </translator>
 <!--Вообще-то этот роман не входит ни в какие серии,
 но если вы он входил, выглядело бы это так:--!>
   <sequence name="Детство, Отрочество, Юность" number="2"/>
 </title-info>
 <!--Теперь поехала информация о документе,
 когда отформатирован, кем и т.д.--!>
 <document-info>
   <author>
   <nickname>GribUser</nickname>
   <home-page>http://www.gribuser.ru</home-page>
   <email>grib@gribuser.ru</email>
   </author>
 <program-used>ClearTXT, XMLSpy, HomeSite 5.0</program-used>
 <date value="2002-10-15">15 ноября 2002г., 19:53</date>
 <src-url>http://www.magister.msk.ru/library/tolstoy/wp/wp00.htm</src-url>
 <src-ocr>Oleg E. Kolesnikov</src-ocr>
 <!--Поле id позволяет отслеживать судьбу документа,
 и не вносить, например, в библиотеку, две версии одного документа,
 а просто обновить его. Или наоборот, внести новый документ вместо
 обновления существующего.--!>
 <id>GribUser_WarAndWorld_D49FHSH8l0HS5</id>
 <version>2.0</version>
 <history>
   <p>
   Этот документ первоначально был создан для
   FictionBook 1.0 и позднее переделан для FB2.0</p>
   </history>
 </document-info>
 <!--И на закуску - информация о бумажной публикации,
 на которой основан документ.--!>
 <publish-info>
   <book-name>Л.Н.Толстой, Полное Собрание Сочинений</book-name>
   <publisher>ГИХЛ</publisher>
   <city>Москва</city>
   <year>1957</year>
   <isbn>Тут пишем ISBN код книги, если есть</isbn>
 </publish-info>
 <!--А здесь - все, что не лезет ни в какие рамки.--!>
 <custom-info info-type="general">
 Здесь можно расположить дополнительную информацию, не укладывающуюся
 в заданную схему. Это может быть как описательная информация, так и коммерческая
 информация, связанная с книгой - например, информация о том, где можно купить бумажное издание
 </custom-info>
 </description>

Тело

Тело документа FictionBook (<body>) состоит из одной или более части (<section>). <section> может быть вложена внутрь другой <section>, при этом одновременное вложение текстов и <section> не допускается.

Всегда допустимые теги внутри <section>:

  • <title> - название секции (части, главы, или другой структурной единицы), допускающее использование параграфов (<p>) и пустых строк (<empty-line>) для сложных заголовков;
  • <epigraph> - эпиграф, допустим в начале, может быть несколько;
  • <annotation> - краткое описание главы.

Теги, допустимые в любом порядке и количестве внутри <section>, если в нее не вложена другая <section>:

  • <subtitle> - смысловой разделитель, имеющий внутри себя текст;

Более полную информацию можно найти, просмотрев исходный текст и комментарии в примере документа FictionBook.