1 XPath, XSLT, (and XSL:FO)Zaawansowane Aplikacje Internetowe XPath, XSLT, (and XSL:FO) Dawid Weiss
2 Wykład XPath – „adresy” do elementów XML Czemu służy XPath?Ścieżki (ang. access paths) Osie (ang. axes) Warunki (ang. node tests) Predykaty (ang. predicates) Wyrażenia (ang. expressions) XSLT – transformacje plików XML XSL:FO – prawdziwy raj dla smakoszy Presentation outline.
3 Czemu służy XPath? Gdy XML zyskał popularność, powstały technologie pochodne, potrzebny był jednoznaczny opis adresu elementu w pliku XML XPath przypomina ścieżki w systemie plików, z paroma dodatkowymi elementami Może adresować więcej niż jeden element Posiada warunki Posiada wyrażenia
4 Xpath – XML jako drzewo XPath traktuje XML jako drzewo elementówKażdy z „liści” może być: tagiem, atrybutem, instrukcją sterującą, komentarzem, tekstem, elementem namespace Liście są ze sobą powiązane „gałęziami”, które nazywamy osiami
5 Przykład reprezentacji w postaci drzewa
6 Proste ścieżki dostępu
7 Nazwy ścieżek dostępu (osi)Parent:: Child:: Ancestor:: Ancestor-or-self:: Descendant:: Descendant-or-self:: Preceding:: Preceding-sibling:: Following:: Following-sibling:: Self:: Attribute:: Namespace::
8 Ścieżki dostępu, c.d. //person/ancestor::leaders/person
9 Predykaty Predykaty umożliwiają funkcjonalne wyeliminowanie niektórych węzłów /path[predicate] Predykaty mogą zawierać funkcje i operatory Tylko węzły dla których predykat jest prawdziwy zostają włączone do wyniku
10 Operatory
11 Funkcje
12 Funkcje i predykaty w praktyce
13 XPath – za i przeciw Czy łatwo się nauczyć XPath?Tak, choć czasem nie jest łatwo… Czy XPath jest użyteczny? Jak najbardziej, ma wiele zastosowań, ale głównie używany jest w XSLT =
14 XSLT XSLT = Extensible Stylesheet Language TransformationsRegułowy język przetwarzania dokumentów XML w inne dokumenty XML (lub w dokumenty tekstowe) Język sam jest zapisany oczywiście w… XML! Używa języka XPath do adresowania elementów pliku źródłowego Podsumowując: XSLT jest językiem programowania
15 Prosty plik XSLT i reguły
16 Przetwarzanie w XSLT Zawsze zaczyna się w tagu głównym (ang. root node) – '/' Pasujące reguły są dopasowywane i uruchamiane Zmienia się węzeł kontekstu (ang. context node) w zależności od odpalonych reguł Procedura jest powtarzana rekurencyjnie dla nowych węzłów kontekstowych
17 XSLT – przetwarzanie
18 Ale po co jest XSLT?! Aby zmienić strukturę pliku XML!
19
20
21 Zad. domowe! Napisz arkusz XSLT, który wykona transformację odwrotną!
22 Tylko po to jest ten XSLT?XSLT jest również językiem zapytań do plików XML, podobnie jak SQL jest językiem zapytań do baz danych XQuery….
23 Tylko po to jest ten XSLT?Język, który umożliwia konwersję z XML do HTML! Umożliwia skupienie się na treści strony, a nie jej wyglądzie
24 Example of XML – HTML conversion
25
26
27
Download file
28 Za i przeciw XSLT XSLT jest bardzo wszechstronnym językiemStyl programowania deklaratywnego nie jest dla każdego… Łatwo osiągnąć separację treści od prezentacji (XML->HTML)! XSLT nie jest najszybszy… XSLT nie jest przystosowany do produkowania formatów binarnych (PDF)
29 XSL:FO – język opisu graficznegoXSL:FO opisuje w postaci pliku XML graficzny rozkład elementów strony na pewnym nośniku (papier, WWW…) Procesory XSL:FO mogą produkować pliki PDF, PS i inne Apache FOP RenderX XEP XSL:FO jest dość skomplikowany, ale dzięki XSLT można osiągnąć separację treści od formatowania (format DocBook tak działa!)
30 Przykład pliku XSL:FO file
31 Dziękuję NA ZAJĘCIA PROSZĘ SIĘ PRZYGOTOWAĆ!ZADANIA DOMOWE MUSZĄ BYĆ ODROBIONE!