Přeskočit na obsah

Extensible Stylesheet Language - Formatting Objects

Z Wikipedie, otevřené encyklopedie

eXtensible Stylesheet Language - Formatting Objects (český volný překlad: „formátovací objekty pro rozšiřitelný stylový jazyk“) je značkovací jazyk na bázi XML pro formátování dokumentů. XSL-FO je součástí XSL, sady W3C technologií určených pro transformaci a formátování XML dat.


Základy XSL-FO

Na rozdíl od kombinace HTML a CSS je XSL-FO spojeným prezentačním jazykem. Neobsahuje žádné sématntické značkování jako HTML. A na rozdíl od CSS, které upravuje prezentaci externího XML nebo HTML dokumentu, v sobě obsahuje veškerá data dokumentu.

Základní myšlenkou je, že uživatel nepíše dokument v XSL-FO, ale v jiném XML jazyce. Může použít XHTML, DocBook, TEI, ale i jakýkoli jiný XML jazyk. Dokument následně převede pomocí XSLT předpisu (který si vytvoří nebo někde získá) na XSL-FO.

Když vznikne XSL-FO dokument, předá se specializované aplikaci označované jako FO procesor. Ta převede XSL-FO dokument do formátu, který je čitelný, tisknutelný či obojí. Nejobvyklejšími výstupními formáty FO procesorů jsou PDF a PostScript, ale můžete se setkat i s jinými typy výstupů, jako například RTF či dokonce přímé grafické zobrazení do okna na displeji.

Jazyk XSLT původně vznikl pouze pro převod dokumentů do formátu XSL-FO, později začal být využíván v širším měřítku pro libovolné transformace. Dodnes je však někdo s XSL-FO směšován a můžete se setkat s názory, že XSLT je součástí XSL-FO. Transformace pomocí XSLT je mimořádně silná. Může zahrnovat automatické generování obsahu, odkazů, rejstříku a řadu dalších operací.

XSL-FO dokument se nepodobá PDF ani PostScriptu. Nepředepisuje přesný vzhled textu rozloženého na stránkách. Místo toho popisuje, jaké jsou vlastnosti stránky a kam má být umístěn jejich jednotlivý obsah. Z toho FO procesor odvodí, jak text konkrétně umístit v rámci hranic předepsaných FO dokumentem. XSL-FO dokonce připouští, že různé FO procesory vytvoří odlišný výstup.

Například některé FO procesory mohou rozdělovat slova, zatímco jiné se rozhodnou je nedělit. Mohou také používat odlišné algoritmy dělení slov. Výsledkem může být v mezních případech i velmi odlišný vzhled jednotlivých stránek. Existují i další případy, kdy XSL-FO umožňuje FO procesorům určitou míru volnosti v rozvržení výstupu.

Rozdíly v chování FO procesorů, vedoucí k nekonzistentním výsledkům, zpravidla nepředstavují problém. Hlavním účelem XSL-FO je totiž vytvářet stránkovaná, tištěná média. XSL-FO dokumenty jsou zpravidla používány jen jako mezistupeň, nejčastěji pro vytvoření PDF souborů či tištěných dokumentů. Teprve tato finální podoba dokumentů je distribuována. V tom se XSL-FO liší od HTML, které interpretuje každý prohlížeč sám. Uživatel, který chce vytvořit tištěný dokument, si může zvolit FO procesor vyhovující jeho nárokům na kvalitu výstupu a odlišnosti vzhledu jeho dokumentu při zpracování jinými procesory mu nijak nevadí.


Viz též

Externí odkazy