Style sheets:
XSL (generation 1.0):
Tutoriale XSL-FO
Istnieje standardowy sposób na zapisanie w dokumencie XML informacji
o arkuszu
stylu, którego należy użyć do jego prezentacji. Służy do
tego instrukcja przetwarzania
xml-stylesheet
umieszczona w początkowej części dokumentu (przed elementem
głównym).
Poza podstawowym, można podać także alternatywne style,
identyfikowane po nazwie (
title
).
<?xml-stylesheet type="text/xsl" href="styl.xsl"?>
<?xml-stylesheet type="text/css" href="styl.css" title="Domyślny"?> <?xml-stylesheet type="text/css" href="styl-specjalny.css" title="Specjalny" alternate="yes"?>
Jest to nawet wyspecyfikowane w odpowiedniej rekomendacji :) .
Otwórz w przeglądarce plik staff/staff.xml (z zipa).
Odkomentuj instrukcję xml-stylesheet
i odśwież widok w przeglądarce.
Sprawdź style alternatywne (w Firefoxie Widok / Styl strony)
Wprowadź zmiany do stylu - wyróżnij w pewien (dowolny) sposób elementy
Idea i podstawy opisane na wykładzie, można też zajrzeć do rekomendacji i tutoriali podanych na początku strony.
Do przekształceń FO używamy narzędzia Apache FOP.
fop -xml zrodlo.xml -xsl arkusz.xsl -pdf wynik.pdf
Aby poradzić sobie z problemem z domyślnymi czcionkami PDF (nie zawierają „ogonków”), należy ustawić w stylu konkretne nazwy czcionek, a położenie czcionek w systemie podać w pliku z konfiguracją:
fop -c fop.xconf -xml zrodlo.xml -xsl arkusz.xsl -pdf wynik.pdf
Samo przekształcenie XSLT można wykonać poleceniem
xsltproc -o wynik.fo arkusz.xsl zrodlo.xml
Obejrzyj i uruchom przykłady z katalogu staff (pliki z fo w nazwie są arkuszami XSL-FO).
Spróbuj wykonać drobne zmiany w stylu i zobaczyć efekt.
Plik docbook/howto.xml (w zipie) zawiera prosty przykład dokumentu w formacie Docbook. Naszym zadaniem jest stworzyć arkusz stylu XSL (FO) dla tego formatu, obsługujący pewien istotny zbiór elementów występujących w przykładzie.
Początkowy arkusz stylu format.xsl definiuje stronę (mniejszą niż A4, aby wyszło więcej stron) i zawiera szablon - zaślepkę, prezentujący wszystkie elementy rozdziałów jako bloki.
Poza oczywistymi sprawami, jak prezentacja para
w postaci bloku,
tytułu rodziału większą czcionką,
czy tabeli jako tabeli (przy tym troszkę roboty), spróbujmy wykonać pewne
rzeczy ilustrujące możliwości XSL-FO:
fo:basic-link
,fo:marker
(zob. przykład w staff),