Dyskusje zwolenników wyższości formy nad treścią i ich przeciwników trwają już od wieków. Szybko znalazły one swoje miejsce w nowej, internetowej rzeczywistości, gdy wraz z rozwojem technologii tworzenia stron WWW z jednej strony jak grzyby po deszczu wyrosły witryny zachwycające szatą graficzną, ubogie w treść, a z drugiej o wręcz ascetycznym wyglądzie, zawierające jednak niezwykle cenne informacje.
o autorach
Michał Paluchowski CEO, właściciel i redaktor vortalu NetHut.pl. Jego ulubionym tygodnikiem jest Wprost, a na co dzień z przyjemnością czyta Gazetę Wyborczą. Jest zakochany w muzyce i komputerach, czasem nieco ekscentryczny. Zawsze otwarty na nowe znajomości.
Łącznie napisał dla nas 45 artykułów.tych samych autorów
- IMAP w stylu PHP [MP]
- Własne RSS [MP]
- Wprowadzenie do XML [MP]
- Rozszerzenia XSSI [MP]
- Dynamiczne generowanie grafiki w PHP [MP]
zobacz również
Optymalnym rozwiązaniem okazał się, jak zawsze, złoty środek, a więc akceptacja wagi zarówno formy jak i treści, ich nawzajem uzupełniających się ról, oraz konsekwentne poszukiwanie równowagi między jednym a drugim.
Pora więc uzupełnić braki jakie posiada mogłoby się wydawać doskonały system przechowywania danych jakim jest XML. Wadą wynikającą bezpośrednio z jego otwartości – możliwości definiowania dowolnych znaczników – jest, iż przeglądarki nie wiedzą jak owe znaczniki interpretować i jak formatować ich wygląd. Próba wywołania dokumentu XML w przeglądarce skutkuje po prostu wyświetleniem jego zhierarchizowanej zawartości.
By pomóc przeglądarkom, dostarczając informacje o zamierzonej interpretacji znaczników opracowane zostały standardy XSL (eXtensible Stylesheet Language). Na rodzinę tych standardów składają się trzy języki:
- XSLT (XSL Translations) umożliwia określenie reguł transformacji zawartości XML i wyświetlenia jej w innym formacie, np. XHTML.
- XPath (XML Path Language) zawiera możliwości odnoszenia się do części dokumentu XML, w tym znaczników czy atrybutów. Ten język jest wykorzystywany przez XSLT do wyszukiwania fragmentów pliku XML w celu zmiany ich formatu i wyświetlenia.
- XSL-FO (XSL Formatting Objects) umożliwia dodatkowe przekształcenie dokumentu skonwertowanego z pomocą XSLT, uzupełniając go o atrybuty wymagane przez inne formaty w jakich dokument ma zostać opublikowany, m.in. PDF.
Dwie ostatnie pozycje są dla nas mniej interesujące, przynajmniej w chwili obecnej. Skoncentrujemy się tutaj ściśle na XSLT, ponieważ to on stanowi podstawę formatowania zawartości plików XML.
Przykład do pracy
Zacznijmy więc od przykładowego pliku XML, z którym będziemy pracować:
<?xml version="1.0" encoding="UTF-8"?>
<news>
<wiadomosc>
<tytul>Rewolucja w Internecie!</tytul>
<autor>Jan Kowalski </autor>
<data>21.08.04</data>
<tresc>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore et
dolore magna aliquyam erat, sed diam voluptua.
</tresc>
</wiadomosc>
<wiadomosc>
<tytul>Sprawy wagi państwowej</tytul>
<autor>Andrzej Nowak</autor>
<data>19.07.04</data>
<tresc>
Duis autem vel eum iriure dolor in hendrerit in vulputate
velit esse molestie consequat, vel illum dolore eu
feugiat nulla facilisis.
</tresc>
</wiadomosc>
</news>
Jak widać nasz przykład zawiera dwie wiadomości, każda z własnym tytułem, datą publikacji, nazwiskiem autora i treścią. Po zapisaniu powyższej treści do pliku, powiedzmy example.xml i otwarciu go w przeglądarce internetowej, ukaże nam się poniższy widok:

Jeśli jednak w strukturze dokumentu pojawi się jakiś błąd, przykładowo wewnątrz znacznika zamykającego </tresc> zniknie slash, a więc pozostanie <tresc>, parser w przeglądarce błyskawicznie nam to zgłosi:

To właśnie jest ogromną zaletą przechowywania treści w formacie XML. Szczególnie w dużych systemach zarządzania treścią, z których korzystają większe grupy autorów. Parsery XML w procesie sprawdzania poprawności kodu wykryją wszystkie formalne błędy, tym samym minimalizując ryzyko nieprawidłowości w formatowaniu dokumentu. To duży plus, gdy autorami treści dla danej strony WWW mają być osoby potocznie mówiąc ‘nietechniczne’.
Wracając do pierwszego obrazka, tuż nad dokumentem, na szarym tle przeglądarka wyświetliła lakoniczny komunikat o braku informacji dotyczących stylu wyświetlania powiązanych z danym dokumentem, stąd został on pokazany w stanie ‘surowym’. Te brakujące informacje to właśnie XSL.