Описание формата FB2 от Sclex — различия между версиями

Материал из FictionBook
Перейти к: навигация, поиск
(→‎Юникодные символы)
(→‎Список возможных языков)
Строка 563: Строка 563:
  
 
== Список возможных языков ==
 
== Список возможных языков ==
−
<p class=p>Ниже приведены коды языков, которые можно прописывать в тэгах <b>&lt;lang&gt;</b> и <b>&lt;src-lang&gt;</b>. Например, волапюк это vo.</p>
+
<p class=p>Ниже приведены коды языков, которые можно прописывать в тэгах <b>&lt;lang&gt;</b> и <b>&lt;src-lang&gt;</b>.</p>
−
<p class=p>Основные кодировки (самые частые):</p>
+
<p class=p>Здесь приведены только основные кодировки, полный список содержится в стандарте ISO 639:</p>
 
<pre>
 
<pre>
 +
abk      ab    Абхазский
 +
aze      az    Азербайджанский
 +
alb/sqi  sq    Албанский
 
eng      en    Английский
 
eng      en    Английский
 +
arm/hye  hy    Армянский
 +
BA            Башкирский
 
bel      be    Белорусский
 
bel      be    Белорусский
 
bul      bg    Болгарский
 
bul      bg    Болгарский
 
hun      hu    Венгерский
 
hun      hu    Венгерский
 +
vie      vi    Вьетнамский
 
dut/nla  nl    Голландский
 
dut/nla  nl    Голландский
 
ell/gre  el    Греческий современный (1453-)
 
ell/gre  el    Греческий современный (1453-)
Строка 575: Строка 581:
 
grc            Древнегреческий (до 1453)
 
grc            Древнегреческий (до 1453)
 
heb      he    Иврит
 
heb      he    Иврит
 +
esl/spa  es    Испанский
 
ita      it    Итальянский
 
ita      it    Итальянский
 +
kaz      kk    Казахский
 +
kir      ky    Киргизский
 +
chi/zho  zh    Китайский
 +
kor      ko    Корейский
 +
lat      la    Латинский
 +
lav      lv    Латвийский
 +
lit      lt    Литовский
 +
mac/mak  mk    Македонийский
 +
mol      mo    Молдавский
 +
mon      mn    Монгольский
 
deu/ger  de    Немецкий
 
deu/ger  de    Немецкий
 +
mul            Несколько языков
 +
und            Неопределенный
 +
nor      no    Норвежский
 +
fas/per  fa    Персидский
 
pol      pl    Польский
 
pol      pl    Польский
 
por      pt    Португальский
 
por      pt    Португальский
 
rus      ru    Русский
 
rus      ru    Русский
 +
san      sa    Санскрит
 
slk/slo  sk    Словакский
 
slk/slo  sk    Словакский
 
slv      sl    Словенский
 
slv      sl    Словенский
 +
tgk      tg    Таджикский
 +
tat      tt    Татарский
 
tur      tr    Турецкий
 
tur      tr    Турецкий
 +
uzb      uz    Узбекский
 
ukr      uk    Украинский
 
ukr      uk    Украинский
 +
cym/wel  cy    Уэльский
 
fin      fi    Финский
 
fin      fi    Финский
 
fra/fre  fr    Французский
 
fra/fre  fr    Французский
 +
che            Чеченский
 
ces/cze  cs    Чешский
 
ces/cze  cs    Чешский
 +
        hr    Хорватский
 +
sve/swe  sv    Шведский
 +
epo      eo    Эсперанто
 +
est      et    Эстонский
 
jpn      ja    Японский
 
jpn      ja    Японский
 
</pre>
 
</pre>
−
<p class=p>Остальные кодировки:</p>
 
−
<pre>abk      ab    Abkhazian
 
−
ace            Achinese
 
−
ach            Acoli
 
−
ada            Adangme
 
−
aar      aa    Afar
 
−
afh            Afrihili
 
−
afr      af    Afrikaans
 
−
afa            Afro-Asiatic (Other)
 
−
aka            Akan
 
−
akk            Akkadian
 
−
alb/sqi  sq    Albanian
 
−
ale            Aleut
 
−
alg            Algonquian languages
 
−
tut            Altaic (Other)
 
−
amh      am    Amharic
 
−
apa            Apache languages
 
−
ara      ar    Arabic
 
−
arc            Aramaic
 
−
arp            Arapaho
 
−
arn            Araucanian
 
−
arw            Arawak
 
−
arm/hye  hy    Armenian
 
−
art            Artificial (Other)
 
−
asm      as    Assamese
 
−
ath            Athapascan languages
 
−
map            Austronesian (Other)
 
−
ava            Avaric
 
−
ave            Avestan
 
−
awa            Awadhi
 
−
aym      ay    Aymara
 
−
aze      az    Azerbaijani
 
−
nah            Aztec
 
−
ban            Balinese
 
−
bat            Baltic (Other)
 
−
bal            Baluchi
 
−
bam            Bambara
 
−
bai            Bamileke languages
 
−
bad            Banda
 
−
bnt            Bantu (Other)
 
−
bas            Basa
 
−
bak      ba    Bashkir
 
−
baq/eus  eu    Basque
 
−
bej            Beja
 
−
bem            Bemba
 
−
ben      bn    Bengali
 
−
ber            Berber (Other)
 
−
bho            Bhojpuri
 
−
bih      bh    Bihari
 
−
bik            Bikol
 
−
bin            Bini
 
−
bis      bi    Bislama
 
−
bra            Braj
 
−
bre      be    Breton
 
−
bug            Buginese
 
−
bua            Buriat
 
−
bur/mya  my    Burmese
 
−
cad              Caddo
 
−
car            Carib
 
−
cat      ca    Catalan
 
−
cau            Caucasian (Other)
 
−
ceb            Cebuano
 
−
cel            Celtic (Other)
 
−
cai            Central American Indian (Other)
 
−
chg            Chagatai
 
−
cha            Chamorro
 
−
che            Chechen
 
−
chr            Cherokee
 
−
chy            Cheyenne
 
−
chb            Chibcha
 
−
chi/zho  zh    Chinese
 
−
chn            Chinook jargon
 
−
cho            Choctaw
 
−
chu            Church Slavic
 
−
chv            Chuvash
 
−
cop            Coptic
 
−
cor            Cornish
 
−
cos        co    Corsican
 
−
cre              Cree
 
−
crp            Creoles and Pidgins (Other)
 
−
cpe            Creoles and Pidgins, English-based (Other)
 
−
cpf            Creoles and Pidgins, French-based (Other)
 
−
cpp            Creoles and Pidgins, Portuguese-based (Other)
 
−
cus            Cushitic (Other)
 
−
        hr    Croatian
 
−
dak            Dakota
 
−
del            Delaware
 
−
din            Dinka
 
−
div            Divehi
 
−
doi            Dogri
 
−
dra            Dravidian (Other)
 
−
dua            Duala
 
−
dum            Dutch, Middle (ca. 1050-1350)
 
−
dyu            Dyula
 
−
dzo      dz    Dzongkha
 
−
efi            Efik
 
−
eka            Ekajuk
 
−
elx            Elamite
 
−
enm            English, Middle (ca. 1100-1500)
 
−
ang            English, Old (ca. 450-1100)
 
−
esk            Eskimo (Other)
 
−
epo      eo    Esperanto
 
−
est      et    Estonian
 
−
ewe            Ewe
 
−
ewo            Ewondo
 
−
fan            Fang
 
−
fat            Fanti
 
−
fao      fo    Faroese
 
−
fij      fj    Fijian
 
−
fiu            Finno-Ugrian (Other)
 
−
fon            Fon
 
−
frm            French, Middle (ca. 1400-1600)
 
−
fro            French, Old (842- ca. 1400)
 
−
fry      fy    Frisian
 
−
ful            Fulah
 
−
gaa            Ga
 
−
gae/gdh  Gaelic (Scots)
 
−
glg      gl    Gallegan
 
−
lug            Ganda
 
−
gay            Gayo
 
−
gez            Geez
 
−
geo/kat  ka    Georgian
 
−
gmh            German, Middle High (ca. 1050-1500)
 
−
goh            German, Old High (ca. 750-1050)
 
−
gem            Germanic (Other)
 
−
gil            Gilbertese
 
−
gon            Gondi
 
−
got            Gothic
 
−
grb            Grebo
 
−
kal      kl    Greenlandic
 
−
grn      gn    Guarani
 
−
guj      gu    Gujarati
 
−
hai            Haida
 
−
hau      ha    Hausa
 
−
haw            Hawaiian
 
−
her            Herero
 
−
hil            Hiligaynon
 
−
him            Himachali
 
−
hin      hi    Hindi
 
−
hmo            Hiri Motu
 
−
hup            Hupa
 
−
iba            Iban
 
−
ice/isl  is    Icelandic
 
−
ibo            Igbo
 
−
ijo            Ijo
 
−
ilo            Iloko
 
−
inc            Indic (Other)
 
−
ine            Indo-European (Other)
 
−
ind      id    Indonesian
 
−
ina      ia    Interlingua (International Auxiliary language Association)
 
−
ine      -    Interlingue
 
−
iku      iu    Inuktitut
 
−
ipk      ik    Inupiak
 
−
ira            Iranian (Other)
 
−
gai/iri  ga    Irish
 
−
sga            Irish, Old (to 900)
 
−
mga            Irish, Middle (900 ? 1200)
 
−
iro            Iroquoian languages
 
−
jav/jaw  jv/jw Javanese
 
−
jrb            Judeo-Arabic
 
−
jpr            Judeo-Persian
 
−
kab            Kabyle
 
−
kac            Kachin
 
−
kam            Kamba
 
−
kan      kn    Kannada
 
−
kau            Kanuri
 
−
kaa            Kara-Kalpak
 
−
kar            Karen
 
−
kas      ks    Kashmiri
 
−
kaw            Kawi
 
−
kaz      kk    Kazakh
 
−
kha            Khasi
 
−
khm      km    Khmer
 
−
khi            Khoisan (Other)
 
−
kho            Khotanese
 
−
kik            Kikuyu
 
−
kin      rw    Kinyarwanda
 
−
kir      ky    Kirghiz
 
−
kom            Komi
 
−
kon            Kongo
 
−
kok            Konkani
 
−
kor      ko    Korean
 
−
kpe            Kpelle
 
−
kro            Kru
 
−
kua            Kuanyama
 
−
kum            Kumyk
 
−
kur      ku    Kurdish
 
−
kru            Kurukh
 
−
kus            Kusaie
 
−
kut            Kutenai
 
−
lad            Ladino
 
−
lah            Lahnda
 
−
lam            Lamba
 
−
oci      oc    Langue d'Oc (post 1500)
 
−
lao      lo    Lao
 
−
lat      la    Latin
 
−
lav      lv    Latvian
 
−
ltz            Letzeburgesch
 
−
lez            Lezghian
 
−
lin      ln    Lingala
 
−
lit      lt    Lithuanian
 
−
loz            Lozi
 
−
lub            Luba-Katanga
 
−
lui            Luiseno
 
−
lun            Lunda
 
−
luo            Luo (Kenya and Tanzania)
 
−
mac/mak  mk    Macedonian
 
−
mad            Madurese
 
−
mag            Magahi
 
−
mai            Maithili
 
−
mak            Makasar
 
−
mlg      mg    Malagasy
 
−
may/msa  ms    Malay
 
−
mal            Malayalam
 
−
mlt      ml    Maltese
 
−
man            Mandingo
 
−
mni            Manipuri
 
−
mno            Manobo languages
 
−
max            Manx
 
−
mao/mri  mi    Maori
 
−
mar      mr    Marathi
 
−
chm            Mari
 
−
mah            Marshall
 
−
mwr            Marwari
 
−
mas            Masai
 
−
myn            Mayan languages
 
−
men            Mende
 
−
mic            Micmac
 
−
min            Minangkabau
 
−
mis            Miscellaneous (Other)
 
−
moh            Mohawk
 
−
mol      mo    Moldavian
 
−
mkh            Mon-Kmer (Other)
 
−
lol            Mongo
 
−
mon      mn    Mongolian
 
−
mos            Mossi
 
−
mul            Multiple languages
 
−
mun            Munda languages
 
−
nau      na    Nauru
 
−
nav            Navajo
 
−
nde            Ndebele, North
 
−
nbl            Ndebele, South
 
−
ndo            Ndongo
 
−
nep      ne    Nepali
 
−
new            Newari
 
−
nic            Niger-Kordofanian (Other)
 
−
ssa            Nilo-Saharan (Other)
 
−
niu            Niuean
 
−
non            Norse, Old
 
−
nai            North American Indian (Other)
 
−
nor      no    Norwegian
 
−
nno            Norwegian (Nynorsk)
 
−
nub            Nubian languages
 
−
nym            Nyamwezi
 
−
nya            Nyanja
 
−
nyn            Nyankole
 
−
nyo            Nyoro
 
−
nzi            Nzima
 
−
oji            Ojibwa
 
−
ori      or    Oriya
 
−
orm      om    Oromo
 
−
osa            Osage
 
−
oss            Ossetic
 
−
oto            Otomian languages
 
−
pal            Pahlavi
 
−
pau            Palauan
 
−
pli            Pali
 
−
pam            Pampanga
 
−
pag            Pangasinan
 
−
pan      pa    Panjabi
 
−
pap            Papiamento
 
−
paa            Papuan-Australian (Other)
 
−
fas/per  fa    Persian
 
−
peo            Persian, Old (ca 600 ? 400 B.C.)
 
−
phn            Phoenician
 
−
pon            Ponape
 
−
pra            Prakrit languages
 
−
pro            Provencal, Old (to 1500)
 
−
pus      ps    Pushto
 
−
que      qu    Quechua
 
−
roh      rm    Rhaeto-Romance
 
−
raj            Rajasthani
 
−
rar            Rarotongan
 
−
roa            Romance (Other)
 
−
ron/rum  ro    Romanian
 
−
rom            Romany
 
−
run      rn    Rundi
 
−
sal            Salishan languages
 
−
sam            Samaritan Aramaic
 
−
smi            Sami languages
 
−
smo      sm    Samoan
 
−
sad            Sandawe
 
−
sag      sg    Sango
 
−
san      sa    Sanskrit
 
−
srd            Sardinian
 
−
sco            Scots
 
−
sel            Selkup
 
−
sem            Semitic (Other)
 
−
        sr    Serbian
 
−
scr      sh    Serbo-Croatian
 
−
srr            Serer
 
−
shn            Shan
 
−
sna      sn    Shona
 
−
sid            Sidamo
 
−
bla            Siksika
 
−
snd      sd    Sindhi
 
−
sin      si    Singhalese
 
−
sit      -    Sino-Tibetan (Other)
 
−
sio            Siouan languages
 
−
sla            Slavic (Other)
 
−
ssw      ss    Siswant
 
−
sog            Sogdian
 
−
som      so    Somali
 
−
son            Songhai
 
−
wen            Sorbian languages
 
−
nso            Sotho, Northern
 
−
sot      st    Sotho, Southern
 
−
sai            South American Indian (Other)
 
−
esl/spa  es    Spanish
 
−
suk            Sukuma
 
−
sux            Sumerian
 
−
sun      su    Sudanese
 
−
sus            Susu
 
−
swa      sw    Swahili
 
−
ssw            Swazi
 
−
sve/swe  sv    Swedish
 
−
syr            Syriac
 
−
tgl      tl    Tagalog
 
−
tah            Tahitian
 
−
tgk      tg    Tajik
 
−
tmh            Tamashek
 
−
tam      ta    Tamil
 
−
tat      tt    Tatar
 
−
tel      te    Telugu
 
−
ter            Tereno
 
−
tha      th    Thai
 
−
bod/tib  bo    Tibetan
 
−
tig            Tigre
 
−
tir      ti    Tigrinya
 
−
tem            Timne
 
−
tiv            Tivi
 
−
tli            Tlingit
 
−
tog      to    Tonga (Nyasa)
 
−
ton            Tonga (Tonga Islands)
 
−
tru            Truk
 
−
tsi            Tsimshian
 
−
tso      ts    Tsonga
 
−
tsn      tn    Tswana
 
−
tum            Tumbuka
 
−
ota            Turkish, Ottoman (1500 ? 1928)
 
−
tuk      tk    Turkmen
 
−
tyv            Tuvinian
 
−
twi      tw    Twi
 
−
uga            Ugaritic
 
−
uig      ug    Uighur
 
−
umb            Umbundu
 
−
und            Undetermined
 
−
urd      ur    Urdu
 
−
uzb      uz    Uzbek
 
−
vai            Vai
 
−
ven            Venda
 
−
vie      vi    Vietnamese
 
−
vol      vo    Volap&uuml;k
 
−
vot            Votic
 
−
wak            Wakashan languages
 
−
wal            Walamo
 
−
war            Waray
 
−
was            Washo
 
−
cym/wel  cy    Welsh
 
−
wol      wo    Wolof
 
−
xho      xh    Xhosa
 
−
sah            Yakut
 
−
yao            Yao
 
−
yap            Yap
 
−
yid      yi    Yiddish
 
−
yor      yo    Yoruba
 
−
zap            Zapotec
 
−
zen            Zenaga
 
−
zha      za    Zhuang
 
−
zul        zu    Zulu
 
−
zun            Zuni
 
−
AA &quot;Afar&quot;
 
−
AB &quot;Abkhazian&quot;
 
−
AF &quot;Afrikaans&quot;
 
−
AM &quot;Amharic&quot;
 
−
AR &quot;Arabic&quot;
 
−
AS &quot;Assamese&quot;
 
−
AY &quot;Aymara&quot;
 
−
AZ &quot;Azerbaijani&quot;
 
−
BA &quot;Bashkir&quot;
 
−
BE &quot;Byelorussian&quot;
 
−
BG &quot;Bulgarian&quot;
 
−
BH &quot;Bihari&quot;
 
−
BI &quot;Bislama&quot;
 
−
BN &quot;Bengali&quot; &quot;Bangla&quot;
 
−
BO &quot;Tibetan&quot;
 
−
BR &quot;Breton&quot;
 
−
CA &quot;Catalan&quot;
 
−
CO &quot;Corsican&quot;
 
−
CS &quot;Czech&quot;
 
−
CY &quot;Welsh&quot;
 
−
DA &quot;Danish&quot;
 
−
DE &quot;German&quot;
 
−
DZ &quot;Bhutani&quot;
 
−
EL &quot;Greek&quot;
 
−
EN &quot;English&quot; &quot;American&quot;
 
−
EO &quot;Esperanto&quot;
 
−
ES &quot;Spanish&quot;
 
−
ET &quot;Estonian&quot;
 
−
EU &quot;Basque&quot;
 
−
FA &quot;Persian&quot;
 
−
FI &quot;Finnish&quot;
 
−
FJ &quot;Fiji&quot;
 
−
FO &quot;Faeroese&quot;
 
−
FR &quot;French&quot;
 
−
FY &quot;Frisian&quot;
 
−
GA &quot;Irish&quot;
 
−
GD &quot;Gaelic&quot; &quot;Scots Gaelic&quot;
 
−
GL &quot;Galician&quot;
 
−
GN &quot;Guarani&quot;
 
−
GU &quot;Gujarati&quot;
 
−
HA &quot;Hausa&quot;
 
−
HI &quot;Hindi&quot;
 
−
HR &quot;Croatian&quot;
 
−
HU &quot;Hungarian&quot;
 
−
HY &quot;Armenian&quot;
 
−
IA &quot;Interlingua&quot;
 
−
IE &quot;Interlingue&quot;
 
−
IK &quot;Inupiak&quot;
 
−
IN &quot;Indonesian&quot;
 
−
IS &quot;Icelandic&quot;
 
−
IT &quot;Italian&quot;
 
−
IW &quot;Hebrew&quot;
 
−
JA &quot;Japanese&quot;
 
−
JI &quot;Yiddish&quot;
 
−
JW &quot;Javanese&quot;
 
−
KA &quot;Georgian&quot;
 
−
KK &quot;Kazakh&quot;
 
−
KL &quot;Greenlandic&quot;
 
−
KM &quot;Cambodian&quot;
 
−
KN &quot;Kannada&quot;
 
−
KO &quot;Korean&quot;
 
−
KS &quot;Kashmiri&quot;
 
−
KU &quot;Kurdish&quot;
 
−
KY &quot;Kirghiz&quot;
 
−
LA &quot;Latin&quot;
 
−
LN &quot;Lingala&quot;
 
−
LO &quot;Laothian&quot;
 
−
LT &quot;Lithuanian&quot;
 
−
LV &quot;Latvian&quot; &quot;Lettish&quot;
 
−
MG &quot;Malagasy&quot;
 
−
MI &quot;Maori&quot;
 
−
MK &quot;Macedonian&quot;
 
−
ML &quot;Malayalam&quot;
 
−
MN &quot;Mongolian&quot;
 
−
MO &quot;Moldavian&quot;
 
−
MR &quot;Marathi&quot;
 
−
MS &quot;Malay&quot;
 
−
MT &quot;Maltese&quot;
 
−
MY &quot;Burmese&quot;
 
−
NA &quot;Nauru&quot;
 
−
NE &quot;Nepali&quot;
 
−
NL &quot;Dutch&quot;
 
−
NO &quot;Norwegian&quot;
 
−
OC &quot;Occitan&quot;
 
−
OM &quot;Oromo&quot; &quot;Afan&quot;
 
−
OR &quot;Oriya&quot;
 
−
PA &quot;Punjabi&quot;
 
−
PL &quot;Polish&quot;
 
−
PS &quot;Pashto&quot; &quot;Pushto&quot;
 
−
PT &quot;Portuguese&quot;
 
−
QU &quot;Quechua&quot;
 
−
RM &quot;Rhaeto-Romance&quot;
 
−
RN &quot;Kirundi&quot;
 
−
RO &quot;Romanian&quot;
 
−
RU &quot;Russian&quot;
 
−
RW &quot;Kinyarwanda&quot;
 
−
SA &quot;Sanskrit&quot;
 
−
SD &quot;Sindhi&quot;
 
−
SG &quot;Sangro&quot;
 
−
SH &quot;Serbo-Croatian&quot;
 
−
SI &quot;Singhalese&quot;
 
−
SK &quot;Slovak&quot;
 
−
SL &quot;Slovenian&quot;
 
−
SM &quot;Samoan&quot;
 
−
SN &quot;Shona&quot;
 
−
SO &quot;Somali&quot;
 
−
SQ &quot;Albanian&quot;
 
−
SR &quot;Serbian&quot;
 
−
SS &quot;Siswati&quot;
 
−
ST &quot;Sesotho&quot;
 
−
SU &quot;Sudanese&quot;
 
−
SV &quot;Swedish&quot;
 
−
SW &quot;Swahili&quot;
 
−
TA &quot;Tamil&quot;
 
−
TE &quot;Tegulu&quot;
 
−
TG &quot;Tajik&quot;
 
−
TH &quot;Thai&quot;
 
−
TI &quot;Tigrinya&quot;
 
−
TK &quot;Turkmen&quot;
 
−
TL &quot;Tagalog&quot;
 
−
TN &quot;Setswana&quot;
 
−
TO &quot;Tonga&quot;
 
−
TR &quot;Turkish&quot;
 
−
TS &quot;Tsonga&quot;
 
−
TT &quot;Tatar&quot;
 
−
TW &quot;Twi&quot;
 
−
UK &quot;Ukrainian&quot;
 
−
UR &quot;Urdu&quot;
 
−
UZ &quot;Uzbek&quot;
 
−
VI &quot;Vietnamese&quot;
 
−
VO &quot;Volapuk&quot;
 
−
WO &quot;Wolof&quot;
 
−
XH &quot;Xhosa&quot;
 
−
YO &quot;Yoruba&quot;
 
−
ZH &quot;Chinese&quot;
 
−
ZU &quot;Zulu&quot;</pre>
 
  
 
[[Категория:FB документы]]
 
[[Категория:FB документы]]

Версия 13:56, 25 мая 2006

Общая структура документа

FB2-документ состоит из стандартной строки, формат которой описан в следующей главе данного описания, и раздела <FictionBook>.

Раздел FictionBook состоит из таких подразделов в указанном ниже порядке:

  1. <description> ? который описывает заголовок документа. Одно и только одно вхождение. (фразы вроде "одно и только одно вхождение" говорят, сколько раз подряд может идти данный тэг в данном месте документа)
  2. <body> ? описывает тело документа. Одно или более вхождений.
  3. <binary> ? содержит приложенные к файлу двоичные объекты ? картинки и прочее. Любое число вхождений.

Иными словами, присутствуют как минимум разделы <description> с <body>, а остальное ? по необходимости.

Пример:

<?xml version="1.0" encoding="windows-1251"?>
<FictionBook xmlns="http://www.gribuser.ru/xml/fictionbook/2.0"
  xmlns:l="http://www.w3.org/1999/xlink">
<description>
  ...
</description>
<body>
  ...
</body>
  ...
<body name="notes">
  ...
</body>
<binary id="cover.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAgAAZABkAAD/
  ...
</binary>
</FictionBook>


Первая строка документа

Первая строка FB2-документа имеет следующий стандартный для xml-файлов вид:

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

Свойство encoding задает кодировку документа, в нашем случае это windows-1251. А может быть, например, utf-8.

Раздел FictionBook

Этот раздел начинается сразу за первой строкой и открывается таким образом:

<FictionBook xmlns="http://www.gribuser.ru/xml/fictionbook/2.0"
  xmlns:l="http://www.w3.org/1999/xlink">

А закрывается в самом конце FB2-документа.

В xmlns:l вместо l может быть написано и другое имя, главное, чтобы потом оно использовалось в ссылках по всему документу. То есть, если объявлено xmlns:l="http://www.w3.org/1999/xlink", то ссылки надо оформлять как <a l:href=...>...</a>, а если объявлено xmlns:xlink="http://www.w3.org/1999/xlink", то надо так: <a xlink:href=...>...</a>. Аналогично и для ссылок в тэгах <image/>.

Поля раздела description

Раздел <description> состоит из перечисленных ниже частей в указанном порядке:

  1. <title-info> ? данные о книге. Одно и только одно вхождение.
  2. <src-title-info> ? данные об исходнике книги (до перевода). От нуля до одного вхождений.
  3. <document-info> ? информация об FB2-документе. Одно и только одно вхождение.
  4. <publish-info> ? сведения об издании книги, которая была использована как источник при подготовке документа. От нуля до одного вхождений.
  5. <custom-info> ? произвольная информация. Любое число вхождений.

То есть обязательны разделы <title-info> и <document-info>, а остальные добавляются по необходимости.

Рассмотрим пример заполнения его полей (они должны следовать в указанном порядке):

  <description>
  <title-info>
   <genre>sci_medicine</genre>
   <genre>science</genre>
   <author>
    <first-name>Борис</first-name>
    <last-name>Сергеев</last-name>
   </author>
   <book-title>Ум хорошо?</book-title>
   <annotation>
    <p>Об организации высших психических функций.</p>
   </annotation>
   <date value="1984-01-01">1984</date>
   <coverpage><image l:href="#cover.jpg"/></coverpage>
   <lang>ru</lang>
   <src-lang>ru</src-lang>
   <sequence name="Раскрывая тайны психики" number="2"/>
  </title-info>
  <document-info>
   <author>
    <nickname>Sclex</nickname>
    <email>sclex_at_inbox.ru</email>
   </author>
   <program-used>Dn/2, Opera 8.50, Bred3</program-used>
   <date value="2006-05-21">2006-05-21</date>
   <id>91824ABE-EEF7-48C3-AAAA-A719EFC4824A</id>
   <version>1.1</version>
   <history>
     <p>1.0 - подготовка fb2 by Sclex</p>
     <p>1.1 - вычитка ошибок by Sclex</p>
   </version>
  </document-info>
  <publish-info>
   <book-name>Борис Федорович Сергеев. Ум хорошо?</book-name>
   <publisher>Молодая гвардия</publisher>
   <city>М.</city>
   <year>1984</year>
  </publish-info>
 </description>

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

Внутри раздела <title-info>:

<genre> ? указывает жанр книги. Список возможных значений приведен в соответствующем разделе данного описания. Любое число вхождений, то есть книга может относиться к нескольким жанрам одновременно. В нашем примере это sci_medicine и science, то есть книга относится к жанрам "Медицина" и "Научно-образовательная: Прочее".

<author> ? содержит информацию об авторе книги. Возможны такие вложенные тэги как <first-name> ? имя, <last-name> ? фамилия, <middle-name> ? отчество, <nick> ? ник, и <email> ? адрес электронной почты. Одно или более вхождений, так как может быть несколько авторов у одной книги. В нашем примере определены имя Борис и фамилия Сергеев.

<book-title> ? описывает название книги. Одно и только одно вхождение. В нашем примере книга называется "Ум хорошо?".

<annotation> ? аннотация книги. Возможны в любом количестве и порядке следующие вложенные тэги: <p>, <poem>, <cite>, <subtitle>, <table>, <empty-line/> с соответствующим содержанием. От нуля до одного вхождения.

<keywords> ? содержит ключевые слова к данной книге для поисковых систем. Слова должны быть в виде неформатированного текста. От нуля до одного вхождения.

<date> ? хранит дату написания книги. В свойстве value дата описывается в формате ГГГГ-ММ-ДД, а внутри тэга дата задается в текстовом виде. От нуля до одного вхождения. В нашем примере свойство value имеет значение 1984-01-01, то есть первое января 1984-го года, а внутри тэга прописано значение 1984.

<coverpage> ? обложка книги. Внутри может содержать только тэг <image/>. От нуля до одного вхождения. В нашем примере ссылка указывает на картинку cover.jpg, приложенную к документу (значок # говорит, что эта ссылка локальная, то есть адресует в пределах документа).

<lang> ? сообщает язык книги в документе, то есть язык после перевода. Одно и только одно вхождение. В нашем примере это ru, то есть русский язык. Полный список кодов приведен в соответствующем разделе данного описания.

<src-lang> ? определяет язык, на котором исходно написана книга, то есть язык до перевода. От нуля до одного вхождений. Те же коды, что для тэга <lang>. В нашем примере это ru, то есть русский язык. Английскому языку соответствует код en.

<translator> ? информация о переводчике книги. Возможны такие вложенные тэги как <first-name> ? имя, <last-name> ? фамилия, <middle-name> ? отчество, <nick> ? ник, и <email> ? адрес электронной почты. Любое число вхождений.

<sequence> ? сведения о том, к каким сериям относится книга. Имеет такие свойства, как name (текстовая строка) ? название серии, и number (целое число) ? порядковый номер книги в серии. Любое число вхождений. В нашем примере описана серия "Раскрывая тайны психики", и указан номер книги в серии ? вторая.

Внутри раздела <document-info>:

<author> ? содержит информацию об авторе документа. Возможны такие вложенные тэги как <first-name> ? имя, <last-name> ? фамилия, <middle-name> ? отчество, <nick> ? ник, и <email> ? адрес электронной почты. Одно или более вхождений. В нашем примере определены ник Sclex и адрес электронной почты sclex_at_inbox.ru.

<program-used> ? в виде простого перечисляет программы, использованные при создании FB2-документа. От нуля до одного вхождений. В нашем примере это Dn/2, Opera 8.50 и Bred3.

<date> ? хранит дату создания документа. В свойстве value дата описывается в формате ГГГГ-ММ-ДД, а внутри тэга дата задается в текстовом виде. Одно и только одно вхождение. В нашем примере свойство value имеет значение 2006-05-21, то есть 21-е мая 2006-го года, и такое же значение прописано внутри тэга.

<src-url> ? URL страницы, откуда взят текст для подготовки документа. Любое число вхождений.

<src-ocr> ? автор текста, который был использован при подготовке документа. Но не тот автор, который написал книгу, а тот, который сканировал ее и подготовил электронный текст. От нуля до одного вхождений.

<id> ? уникальный идентификатор документа FB2. Каждый отдельный FB2-документ должен иметь собственный ID, отличающийся от ID других документов. Данный идентификатор имеет произвольный вид, то есть его содержание никак не ограничивается. Одно и только одно вхождение.

<version> ? версия документа в текстовом виде. Описывается дробным числом. Одно и только одно вхождение. В нашем случае ? 1.1.

<history> ? история создания и изменения документа. Содержит форматированный текст. Возможны в любом количестве и порядке следующие вложенные тэги: <p>, <poem>, <cite>, <subtitle>, <table>, <empty-line/> с соответствующим содержанием. От нуля до одного вхождений.

Внутри тэга <publish-info>:

<book-name> ? название оригинальной (бумажной) книги. От нуля до одного вхождений. В примере это "Борис Федорович Сергеев. Ум хорошо?".

<publisher> ? название издательства. От нуля до одного вхождений. В примере ? Молодая гвардия.

<city> ? город, в котором издана книга. От нуля до одного вхождений. В нашем случае это М., то есть Москва.

<year> ? год издания книги. От нуля до одного вхождений. В нашем случае ? 1984.

Тело документа (структура разделов body и section)

Тэг <body> предназначен для описания собственно тела документа. Этот тэг может иметь свойство name, которое описывает имя раздела. Например:

<body name="notes">

Внутри раздела <body> могут идти в указанном порядке:

  1. Картинка <image/>, которая будет отображаться вверху раздела. От нуля до одного вхождений.
  2. Заголовок <title>. От нуля до одного вхождений.
  3. Эпиграф <epigraph>. Любое число вхождений.
  4. Раздел <section>. Любое число вхождений.

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

Для раздела <section> имя описывается свойством id. Например так:

<section id="note33">

Раздел <section> состоит из следующих частей в указанном порядке:

  1. Заголовок <title>. От нуля до одного вхождений.
  2. Эпиграф <epigraph>. Любое число вхождений.
  3. Картинка <image/>, которая будет отображаться вверху раздела. От нуля до одного вхождений.
  4. Аннотация <annotation>, описывающая раздел. От нуля до одного вхождений.
  5. Либо подраздел <section> (любое число вхождений), либо форматированный текст с картинками (любое число вхождений).

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

Разделов <body> в документе может быть несколько. Это используется, например, для оформления примечаний (footnotes). По умолчанию пользователю показывается первый раздел <body>, а содержание остальных должно быть доступно по гиперссылкам. Имя раздела должно отражать смысл его содержания, но для основного раздела это необязательно.

Разделы <section> должны иметь вложенную структуру согласно иерархии оглавления. Например, если документ делится на части, которые в свою очередь делятся на главы, то части будут будут описаны в разделе <section> первого уровня, а главы ? в подразделе второго уровня. Проще понять это на примере:

<body>
  <title><p>Борис Сергеев</p><p>Парадоксы мозга</p></title>
  <section>
    <title><p>Часть 1. Великие невежды.</p></title>
    <section>
      <title><p>Глава 1. Во тьме веков.</p></title>
      <p>Когда люди стали о себе задумываться? ...</p>
      ...
    </section>
  </section>
</body>

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

Еще принято кроме того, что указано в заголовке, давать имя автора и название книги в тексте документа до того, как открывается <section> первого уровня, то есть в <title>, относящемся к <body>. Это видно из вышеприведенного примера.

Форматированный текст

Форматированный текст представляет собой последовательность фрагментов, ограниченных тэгами <p>, <poem>, <subtitle>, <cite>, <table>. Также могут входить пустые строки ? <empty-line/>.

Тэг <p> предназначен для описания одного абзаца текста книги.

Например:

<p>Вот абзац текста.</p>
<p>Еще один абзац текста.</p>


Пустые строки

Если нужно в форматированном тексте вставить пустую строку, это делается с помощью тэга <empty-line/>. Один такой тэг ? одна пустая строка. Закрывающий тэг в данном случае не требуется.

Например:

<p>Абзац до пустой строки.</p>
<empty-line/>
<p>А вот это уже абзац после пустой строки.</p>

Жирный и курсивный

Для форматированного текста, то есть внутри тэгов <p>, <poem>, <subtitle>, <table> возможно описать текст как жирный или курсивный. Жирный текст следует выделить тэгом <strong>, а курсивный ? тэгом <emphasis>.

Например:

<p>Вот это слово выведем <strong>жирным</strong>,
а вот это ? <emphasis>курсивным</emphasis>.</p>


Заголовки

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

Пример:

<title>
 <p>От Александрии до Лондона</p>
</title>

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

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

Обычно описание подзаголовка выглядит так:

<subtitle>* * *<subtitle>

Подзгаловком, в отличие от нормального заголовка, оформляется элемент оглавления, незначимый для структуры документа. Обычно это те самые три звездочки или x x x.


Стихи

Чтобы разместить стихотворение в тексте документа, используют тэг <poem>. Он может нести внутри себя следующие части в указанном порядке:

  1. Заголовок <title>. От нуля до одного вхождений.
  2. Эпиграф <epigraph>. Любое число вхождений.
  3. Строфы <stanza>. Одно или более вхождений. Строфа <stanza> ? это группа строк стихотворения, отделенная пустым промежутком от остальных строк. Отдельная строка стихотворения помечается тэгом <v>, который должен быть вложен в <stanza>.
  4. Автор стихотворения <text-author>. Любое число вхождений.
  5. Дата написания <date>. От нуля до одного вхождений.

Например, стихотворение из двух строф:


Наша Таня громко плачет,

Уронила в речку мячик.


Тише, Танечка, не плачь,

Не утонет в речке мяч.


Следует разметить таким образом:

<poem><stanza><v>Наша Таня громко плачет,</v>
<v>Уронила в речку мячик.</v></stanza>
<stanza><v>Тише, Танечка, не плачь,</v>
<v>Не утонет в речке мяч.</v></stanza></poem>

Эпиграфы

Для оформления эпиграфов предусмотрен тэг <epigraph>, который должен содержать внутри себя форматированный текст (любое число вхождений), а затем автора текста (тоже любое число вхождений).

Пример:

<epigraph>
   <p>Читателям, которые станут доискиваться, какие реальные
   люди и места описаны здесь под вымышленными именами и названиями,
   я бы посоветовал посмотреть вокруг себя и заглянуть в собственную душу,
   так как в этом романе рассказано о том, что происходит сегодня почти
   во всей Америке.</p>
</epigraph>


Цитированный текст

Для разметки цитированного текста существует тэг <cite>, который может содержать форматированный текст (любое число вхождений), а затем автора цитаты (любое число вхождений).

Пример:

<cite>
  <p>Время ? деньги.<p>
  <text-author>Бенджамин Франклин</text-author>
</cite>


Автор цитаты

Внутри тэгов <poem>, <cite> и <epigraph> возможно указать автора соответственно стихотворения, цитаты или эпиграфа. Для этого служит тэг <text-author>. Этот тэг должен стоять в самом конце родительского тэга, то есть непосредственно перед его закрытием. Допускается любое число вхождений тэга <text-author>.

Вот пример:

<epigraph>
  <p>Кажется, знаешь о себе все, так нет.
  Находятся люди, которые знают о тебе больше.</p>
  <text-author>В. Андреев</text-author>
</epigraph>


Картинки

Картинки вставляются с помощью тэга <image/> (закрывающий тэг не требуется). Свойство href указывает на адрес картинки. Если адрес картинки начинается с символа # (решетка), то картинка находится внутри документа.

Пример:

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

В этом примере в текст вставляется картинка cover.jpg, приложенная к документу (на что указывает символ решетки перед именем).


Ссылки

Ссылки вставляются с помощью тэга <a>. Свойство href определяет адрес ссылки. Адреса с символа # (решетка) задают расположение внутри документа.

Примеры:

<a l:href="#n1" type="note">[1]</a>

В этом примере текстом ссылки будет [1], а указывать она будет на раздел с идентификатором n1 внутри документа.

В l:href вместо l может быть и другой идентификатор, подробнее это описано в разделе "Раздел FictionBook".


Примечания

Примечания к тексту книги должны находиться в специальном разделе <body>, поименнованном notes, то есть описан он должен быть как <body name="notes">. Каждое примечание должно находиться в отдельном разделе <section> и иметь уникальный id, по которому оно будет доступно в ссылках. Вот типичный пример оформления тела примечаний:

 <body name="notes">
  <title><p>Примечания</p></title>
  <section id="note1">
   <title>
    <p>1</p>
   </title>
   <p>Известный английский архитектор XVIII века, испытавший в
   своем творчестве сильное влияние античной архитектуры. (Здесь и
   далее прим. ред.)</p>
  </section>
  <section id="note2">
   <title>
    <p>2</p>
   </title>
   <p>Американский просветитель, живший в XVIII веке</p>
  </section>
 </body>

Ссылка на примечание должна иметь свойство type, равное значению "note". Соответствующая размещенному выше примеру ссылка на первое примечание будет выглядеть таким образом:

в стиле Роберта Адама <a l:href="#note1" type="note">[1]</a>

Двоичные вложения

К документу FB2 могут быть приложены файлы, например картинки или что-нибудь другое. (Библиотека, правда, не примет файлы с иными вложениями, чем картинки).

Вот пример вложения:

<binary id="cover.jpg" content-type="image/jpeg">
AQMAEAMDBgkAAA/tAAAe7gAANHz/2wCEAAgGBgYGBggGBggMCAcIDA4KCAgKDhANDQ4NDRAR
DA4NDQ4MEQ8SExQTEg8YGBoaGBgjIiIiIycnJycnJycnJycBCQgICQoJCwkJCw4LDQsOEQ4O
...
h9x8OJ/B/c+gfbXM/wDQ/qcPZ9HHjqaPi17zZ4+6deEYNxtP+H1v8Opsec//2Q==</binary>

Свойство id описывает идентификатор (имя) двоичного объекта, а свойство content-type ? MIME-тип вложения. Внутри тэга <binary> находится файл, закодированный по методу BASE64.

Чтобы библиотека приняла файл, нужно чтобы в документе не было приложенных объектов, на которые нет ссылки, и чтобы не было ссылок, которые указывают на двоичные объекты, не приложенные к файлу.

Из картинок поддерживаются форматы JPG (тип image/jpeg) и PNG (тип image/png). Поддержка формата GIF отсутствует. Файл обложки обычно принято называть cover.jpg.

Символы Unicode

В текст можно вставлять символы по их коду в таблице Unicode. Для этого нужно написать значок &, потом значок #, потом десятичный код символа, потом точку с запятой.

Например для значка ? (не равно) ? код 8800, надо написать так:

&#8800;

Список возможных жанров

Здесь перечислены значения, которые принимает поле <genre> в заголовке FB2-документа.

Далее перечислены значения, которые принимает поле <genre> в заголовке FB2-документа.

sf_history              Альтернативная история
sf_action               Боевая Фантастика
sf_epic                 Эпическая Фантастика
sf_heroic               Героическая фантастика
sf_detective            Детективная Фантастика
sf_cyberpunk            Киберпанк
sf_space                Космическая Фантастика
sf_social               Социальная фантастика
sf_horror               Ужасы и Мистика
sf_humor                Юмористическая фантастика
sf_fantasy              Фэнтези
sf                      Научная Фантастика
child_sf                Детская Фантастика
det_classic             Классический Детектив
det_police              Полицейский Детектив
det_action              Боевики
det_irony               Иронический Детектив
det_history             Исторический Детектив
det_espionage           Шпионский Детектив
det_crime               Криминальный Детектив
det_political           Политический Детектив
det_maniac              Маньяки
det_hard                Крутой Детектив
thriller                Триллеры
detective               Детектив
sf_detective            Детективная Фантастика
child_det               Детские Остросюжетные
love_detective          Остросюжетные Любовные Романы
prose                   Проза
prose_classic           Классическая Проза
prose_history           Историческая Проза
prose_contemporary      Современная Проза
prose_counter           Контркультура
prose_rus_classic       Русская Классика
prose_su_classics       Советская Классика
humor_prose             Юмористическая Проза
child_prose             Детская Проза
love                    Любовные романы
love_contemporary       Современные Любовные Романы
love_history            Исторические Любовные Романы
love_detective          Остросюжетные Любовные Романы
love_short              Короткие Любовные Романы
love_erotica            Эротика
adv_western             Вестерны
adv_history             Исторические Приключения
adv_indian              Приключения: Индейцы
adv_maritime            Морские Приключения
adv_geo                 Путешествия и География
adv_animal              Природа и Животные
adventure               Приключения: Прочее
child_adv               Детские Приключения
children                Детское
child_tale              Сказки
child_verse             Детские Стихи
child_prose             Детская Проза
child_sf                Детская Фантастика
child_det               Детские Остросюжетные
child_adv               Детские Приключения
child_education         Детская Образовательная литература
children                Детское: Прочее
poetry                  Поэзия
dramaturgy              Драматургия
humor_verse             Юмористические Стихи
child_verse             Детские Стихи
antique_ant             Античная Литература
antique_european        Европейская Старинная Литература
antique_russian         Древнерусская Литература
antique_east            Древневосточная Литература
antique_myths           Мифы. Легенды. Эпос
antique                 Старинная Литература: Прочее
sci_history             История
sci_psychology          Психология
sci_culture             Культурология
sci_religion            Религиоведение
sci_philosophy          Философия
sci_politics            Политика
sci_business            Деловая литература
sci_juris               Юриспруденция
sci_linguistic          Языкознание
sci_medicine            Медицина
sci_phys                Физика
sci_math                Математика
sci_chem                Химия
sci_biology             Биология
sci_tech                Технические
science                 Научно-образовательная: Прочее
adv_animal              Природа и Животные
comp_www                Интернет
comp_programming        Программирование
comp_hard               Компьютерное Железо
comp_soft               Программы
comp_db                 Базы Данных
comp_osnet              ОС и Сети
computers               Компьютеры: Прочее
ref_encyc               Энциклопедии
ref_dict                Словари
ref_ref                 Справочники
ref_guide               Руководства
reference               Справочная Литература: Прочее
nonf_biography          Биографии и Мемуары
nonf_publicism          Публицистика
nonf_criticism          Критика
nonfiction              Документальное: Прочее
design                  Искусство, Дизайн
adv_animal              Природа и Животные
religion                Религия
religion_rel            Религия
religion_esoterics      Эзотерика
religion_self           Самосовершенствование
religion                Религия и духовность: Прочее
sci_religion            Религиоведение
humor_anecdote          Анекдоты
humor_prose             Юмористическая Проза
humor_verse             Юмористические Стихи
humor                   Юмор: Прочее
home_cooking            Кулинария
home_pets               Домашние Животные
home_crafts             Хобби, Ремесла
home_entertain          Развлечения
home_health             Здоровье
home_garden             Сад и Огород
home_diy                Сделай Сам
home_sport              Спорт
home_sex                Эротика, Секс
home                    Дом и Семья: Прочее

Список возможных языков

Ниже приведены коды языков, которые можно прописывать в тэгах <lang> и <src-lang>.

Здесь приведены только основные кодировки, полный список содержится в стандарте ISO 639:

abk      ab    Абхазский
aze      az    Азербайджанский
alb/sqi  sq    Албанский
eng      en    Английский
arm/hye  hy    Армянский
BA             Башкирский
bel      be    Белорусский
bul      bg    Болгарский
hun      hu    Венгерский
vie      vi    Вьетнамский
dut/nla  nl    Голландский
ell/gre  el    Греческий современный (1453-)
dan      da    Данийский
grc            Древнегреческий (до 1453)
heb      he    Иврит
esl/spa  es    Испанский
ita      it    Итальянский
kaz      kk    Казахский
kir      ky    Киргизский
chi/zho  zh    Китайский
kor      ko    Корейский
lat      la    Латинский
lav      lv    Латвийский
lit      lt    Литовский
mac/mak  mk    Македонийский
mol      mo    Молдавский
mon      mn    Монгольский
deu/ger  de    Немецкий
mul            Несколько языков
und            Неопределенный
nor      no    Норвежский
fas/per  fa    Персидский
pol      pl    Польский
por      pt    Португальский
rus      ru    Русский
san      sa    Санскрит
slk/slo  sk    Словакский
slv      sl    Словенский
tgk      tg    Таджикский
tat      tt    Татарский
tur      tr    Турецкий
uzb      uz    Узбекский
ukr      uk    Украинский
cym/wel  cy    Уэльский
fin      fi    Финский
fra/fre  fr    Французский
che            Чеченский
ces/cze  cs    Чешский
         hr    Хорватский
sve/swe  sv    Шведский
epo      eo    Эсперанто
est      et    Эстонский
jpn      ja    Японский