XML - ćwiczenia 8 - style, idea XSLT, XPath

Referencje

Rekomendacje

HTML
XHTML
XHTML modularization
CSS level 2
Associating Style Sheets with XML Documents
Web Content Accessibility Guidelines

Przykład

XML bez wizualizacji (pokaż kod)
arkusz CSS (pokaż kod)
XML z CSS (pokaż kod)
arkusz XSLT -> XHTML (pokaż kod)
XML z XSLT -> XHTML (pokaż kod)

Wizualizacja XML, arkusze stylu

Dokumenty XML w ogólności nie zawierają informacji o tym, jak prezentować ich zawarość. Nie można też ustalić uniwersalnego sposobu interpretowania XML, gdyż w różnych dokumentach te same nazwy elementów znaczą co innego. Ogólne sposoby prezentowania XML są bardzo ubogie, np. w przeglądarkach internetowych wyświetla się kod XML (stary Netscape), zawartość tekstowa (Mozilla) lub struktura drzewiasta (Internet Explorer).

Wiele dokumentów XML zawiera jednak dane, które można prezentować w bardziej specyficzny sposób.
Pomysł arkuszy stylu polega na tym, aby umieścić informację o prezentacji poza dokumentem i to w taki sposób, żeby ta sama informacja (ten sam arkusz) była dobra dla całej klasy dokumentów. Na przykład możemy określić jeden styl dla prac magisterskich, inny dla artykułów, jeszcze inny dla... spisu pracowników firmy.
Ponadto dla określonej klasy dokumentów możemy zdefiniować wiele styli.

Rozdzielenie treści od jej prezentacji jest jednym z fundamentów ideologii XML, zarządzania treścią, standardów promowanych przez organizację W3C.

CSS

Cascading Style Sheets, rekomendacja W3C jest dość prostym sposobem zapisania informacji o prezentacji poszczególnych elementów dokumentu. Pozwala dużo powiedzieć o wyglądzie, szeroko stosowany przy HTML, jest (nie idealnie) zaimplementowany we wszystkich liczących się graficznych przeglądarkach internetowych.

Arkusz CSS skłąda się z wyrażeń, którymi mogą być m.in. reguły (rules) mówiące jak wyświetlać pooszczególne elementy dokumentu. Każda reguła składa się z wzorca, na podstawie którego określane jest jakich elementów dotyczy dana reguła, i deklaracji określających jak dany element wyświetlać.

Pattern matching

Wzorce określające elementy, których dotyczy reguła, mają intuicyjną składnię i dość dużą siłę wyrazu. Można określać elementy w oparciu o ich nazwy, zagnieżdżenie w dokumencie, wartości atrybutów. W przypadku wizualizowania HTML specjalne znaczenie ma atrybut class, w arkuszu można zdefiniować styl dla elementów podanej klasy. W HTML można też informację o stylu umieszczaś bezpośrednio w dokumencie w atrybucie style elementu, którego styl ten dotyczy.

Wady CSS

CSS pozwala wypisywać wartość elementów, nie atrybutów (ani tym bardziej komentarzy i instrukcji przetwarzania). CSS nie pozwala na zmianę kolejności elementów, ich duplikowanie, nie można też pogrupować elementów inaczej niż jest to zrobione w dokumencie źródłowym. Po prostu kolejne elementy są wyświetlane w sposób określony w arkuszu. CSS ma własną specyficzną składnię.

Zadania

  1. Napisz arkusz CSS wizualizujący dowolny dokument XML w prosty sposób (wyświetlając każdy element jak blok tekstowy) i wyświetlający wybrany węzeł w specyficzny sposób (np. z czerwonym tłem). Zmieniając wzorzec wybranego elementu zaznaczaj różne elementy dokumentu. Możesz się pobawić przykładem: XML, CSS.
  2. Napisz arkusz CSS wizualizujący przykład Purchase Order zawarty w materiałach do JAXB.