Presentation of XML Documents, XSLT

References for subject 10

XML11.zip - example files

Style sheets:

XSL (generation 1.0):

Tutoriale XSL-FO

Przypisywanie arkusza stylu do dokumentu

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 ).

Example 1.

<?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 :) .

CSS

Task 1.

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

  1. pierwszą osobę w każdym dziale
  2. numer komórki szefa

XSLT + XSL-FO

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

Task 2. Przykłady

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.

Task 3. Styl dla Docbook-a

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:

  1. odnośniki za pomocą fo:basic-link,
  2. stopka z numerem strony,
  3. „running header”, czyli nagłówek zawierający informację o tytule bieżącego rozdziału, za pomocą fo:marker (zob. przykład w staff),
  4. różne marginesy dla stron parzystych i nieparzystych (zob. przykład w staff),

Valid XHTML 1.1Valid CSS