06 XSLT wydruk


Hipertekst i hipermedia
Język XSLT
dr inż.Wioleta Szwoch
Wioleta Szwoch, KISI ETI PG
1
XPath (XML Path Language)
" Standard do identyfikacji części
dokumentu XML-owego
" Wykorzystanie wyrażeń do nawigacji w
dokumencie XML
 Składnia podobna do ścieżek systemu plików w Unix
 Możliwość wydobycia potrzebnych nam węzłów
" Zawiera bibliotekÄ™ funkcji standardowych
" Znajduje zastosowanie w innych standardach
2
Wioleta Szwoch, KISI ETI PG
ancestor
1
3
2
4
Węzeł
8
7
5 6
odniesienia
sibling
sibling
preceding
following
9 10
11 12
descendant
Wioleta Szwoch, KISI ETI PG
3
XPath
" składnia
 wybór węzła
nazwa węzła
/ korzeń
. bieżący węzeł (self::node())
.. rodzic (parent::node())
@nazwa atrybutu
 predykaty
" pozwalają na sprawdzenie własności,
których nie da się wyrazić w samych
testach węzłów
" dowolne wyrażenie XPath
5
Wioleta Szwoch, KISI ETI PG
XPath
" składnia
 wybór nieznanych węzłów
* dowolny węzeł
@* dowolny atrybut
node() dowolny węzeł
 wybór wielu ścieżek
|
6
Wioleta Szwoch, KISI ETI PG
XPath
" funkcje
 możliwość operacji na:
" liczbach,
 round(), sum(), ...
" łańcuchach tekstów,
 concat(), substring(), string(),...
" wartościach logicznych
 true(), false(), not(),...
" pozostałe
 count(), position(), last()...
7
Wioleta Szwoch, KISI ETI PG
XPath
" Operatory
 porównania i logiczne
!= , <= , = , > , >=
and, or, not
 liczbowe
+, -, *, div, mod
 (towar[1]/wartość + towar[2]/wartość ) div 100
8
Wioleta Szwoch, KISI ETI PG
XSL (eXtensible Stylesheet Language)
" SGML(1986) (®ð XML)
" DSSSL (®ðXSL)
 Document Style and Semantics Specification Language
 język arkuszy stylów
 język do przetwarzania i przekształcania dokumentów
SGML do postaci, która można wyświetlić lub
wydrukować
 zbyt skomplikowana struktura definiowania formatów
dokumentów
 A HUGE MONSTER OF A LANGUAGE
9
Wioleta Szwoch, KISI ETI PG
XSL (eXtensible Stylesheet Language)
XSLT (XSL Transformation) XSL FO (XSL Formating Objects)
" Język pozwalający przekształcać i wyświetlać
dane z dokumentów XML
" Co by było, gdyby nie było XSL?
10
Wioleta Szwoch, KISI ETI PG
XSLT
" Extensible StyleSheet Language Transformations
 Rozszerzalny Język Arkuszy Stylów  Przekształcenia
" CSS  Kaskadowe Arkusze Stylów
 arkusz stylów określa styl, czyli wygląd pewnych znaczników (HTML lub
XML)
 możemy zdefiniować rodzaj czcionki, rozmiar i kolor tekstu, rodzaj
obramowania, kolor tła, &
" Arkusz stylów XSLT
 dokument generujÄ…cy dane wynikowe na podstawie dokumentu XML, przy
czym dokument wynikowy może zawierać lub nie informacje formatujące
 kompletny wysokopoziomowy język do manipulowania dokumentami XML
 nie zastępuje on istniejących języków programowania, ale je uzupełnia
11
Wioleta Szwoch, KISI ETI PG
XSLT
" Extensible StyleSheet Language Transformations
" Język przekształceń drzew XML
" Istotą XSLT jest dopasowywanie pewnych wzorców
do elementów dokumentu XML
" Język deklaratywny
 arkusz stylu określa budowę dokumentu wynikowego, a
nie sposób w jaki ma on powstać
" Język sterowany danymi
 kod wykonywany w odpowiedzi na napotkanie pewnych
niedeterministycznie
danych; kod wykonywany
12
Wioleta Szwoch, KISI ETI PG
XSLT - transformacje dokumentów
" znaczenie XSLT
 umożliwia pracę z dokumentami XML
" nie musimy pisać programów do przetworzenia XML
 otrzymujemy z XML różne typy dokumentów
(strony HTML, & )
 ta sama transformacja stosowana do wielu
dokumentów XML
 różne XSLT do tego samego XML Þð różna postać tej
samej informacji
13
Wioleta Szwoch, KISI ETI PG
XSLT - transformacje dokumentów
XML
XML
procesor
HTML
HTML
dokument
XSLT
RTF
RTF
XML
PDF
PDF
Dokument
inne
inne
XSLT
Dokument
wynikowy
Wioleta Szwoch, KISI ETI PG
14
XSLT - transformacje dokumentów
" Procesory XSLT
 XT (James Clark)
" Jeden z pierwszych
" stworzony w Javie
 Xalan (Apache)
" Aatwe wykorzystanie w środowisku Java i C++
 Msxml (Microsoft)
" Rozpowszechniany z IE
 SAXON
" Procesor XSLT z pełną obsługą XSLT 1.0 i XPath 1.0
 LotusXSL, Koala XSL Engine, iXSLT, XT, &
15
Wioleta Szwoch, KISI ETI PG
XSLT
" Jak pokazać, że plik XML ma być przetworzony
wg pliku XSLT?
" PowiÄ…zanie w linii komend (np. Xalan)
 java org.apache.xalan.xslt.Process -IN plik.xml -XSL plik.xsl -OUT plik.html
" PowiÄ…zanie transformacji z plikiem XML

16
Wioleta Szwoch, KISI ETI PG
Przebieg transformacji
" w samodzielnym programie  procesorze XSLT
" po stronie klienta
 transformacje wykonuje program klienta odczytujÄ…c
arkusz stylów
" po stronie serwera
 program serwera wykorzystuje arkusz stylów do
automatycznej transformacji dokumentu i wysyła go do
klienta
17
Wioleta Szwoch, KISI ETI PG
Struktura dokumentu XSLT
" Deklaracja XML
" Znacznik xsl:stylesheet
 atrybut xmlns:xsl daje URI dla przestrzeni nazw XSLT
" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 atrybut version podaje numer wersji

xmlns:xsl= http://www.w3.org/1999/XSL/Transform
version="1.0">
........

18
Wioleta Szwoch, KISI ETI PG
Struktura dokumentu XSLT
" Deklaracja XML
" Znacznik xsl:stylesheet
 atrybut xmlns:xsl daje URI dla przestrzeni nazw XSLT
" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 atrybut version podaje numer wersji
" Elementy pierwszego poziomu (top-level)
" Szablony
 podstawowa zawartość arkusza transformacji XSLT
19
Wioleta Szwoch, KISI ETI PG
Struktura dokumentu XSLT
" xsl:attribute-set " określa zbiór atrybutów
" xsl:decimal-format " definiuje sposób wyświetlania liczb
" xsl:import " importuje arkusze stylów
" xsl:include " włącza arkusze stylów
" xsl:key " określa klucz
" xsl:namespace-alias " wskazuje na przestrzeń nazw w dokumencie wynikowym
" xsl:output " określa rodzaj dokumentu wynikowego
" xsl:param " pozwala utworzyć parametry
" xsl:preserve-space " zachowuje białe znaki w określonym elemencie
" xsl:strip-space " usuwa białe znaki z określonego elementu
" xsl:template " określa szablon
" xsl:variable " definiuje zmienne
Wioleta Szwoch, KISI ETI PG
20
Struktura dokumentu XSLT
" xsl:apply-imports " xsl:message
" xsl: apply-templates " xsl: number
" xsl: attribute " xsl: otherwise
" xsl:call-template " xsl:processing-instruction
" xsl:choose " xsl:sort
" xsl:comment " xsl:text
" xsl:copy " xsl:transform
" xsl:copy-of " xsl:value-of
" xsl:element " xsl:when
" xsl:fallback " xsl:with-param
" xsl:for-each
" xsl:if
Wioleta Szwoch, KISI ETI PG
21
Struktura dokumentu XSLT
hello.xsl hello.xml

Hello XSLT!
xmlns:xsl= http://www.w3.o
rg/1999/XSL/Transform

version="1.0">


Hello XSLT!
select="hi"/>



Wioleta Szwoch, KISI ETI PG
22
Format dokumentu wyjściowego
" xsl:output
" różnorodne atrybuty
 method określa format dokumentu wyjściowego
" html, xml, text
 encoding, version, ...
" metoda domyślna: xml
23
Wioleta Szwoch, KISI ETI PG
XSLT  wydobycie informacji
" xsl:value-of
 select
" określa węzeł z którego należy pobrać informacje
" wartością select wyrażenie XPath lub jakaś z funkcji XSLT
" xsl:value-of wyświetla jedynie pierwszą
informację, określoną w atrybucie select
24
Wioleta Szwoch, KISI ETI PG
XSLT - szablony
" xsl:template
" Umożliwiają określenie tego, jak transformacja ma
działać
" Zawierają zbiór instrukcji wykonywanych po jego
wywołaniu
" Regułę (wzorzec) można wywołać przez dopasowanie
węzła drzewa dokumentu XML do atrybutu match
" Węzły dopasowuje się a nie wybiera, są one przetwarzane
tak jak napotyka je procesor XML
25
Wioleta Szwoch, KISI ETI PG

1
XSLT - szablony
2
3

" xsl:template

&
 match

" oznacza zakres stosowania wzorca

 mode
&

" tryb
 name
&
" nazwa

ogólny format szablonu
26
Wioleta Szwoch, KISI ETI PG
Testy węzłów


/ : korzeń
1
* : element
2
3
@* : atrybut

. : aktualny węzeł
 text() ,  comment() ,  processing-instruction
 node() : dowolny węzeł
27
Wioleta Szwoch, KISI ETI PG
XSLT - szablony
" xsl:template
 match
 mode
 name
" wywołania szablonów
 xsl:apply-templates
 xsl:call-templates
" szablonów nie można w sobie zagnieżdżać
28
Wioleta Szwoch, KISI ETI PG
XSLT - szablony
" element template musi mieć jeden z atrybutów:
 match
" definiuje transformacjÄ™ dla elementu opisanego przez ten
atrybut
...
 name
" wynik na wyjście za każdym razem gdy szablon jest
wykonywany
...
29
Wioleta Szwoch, KISI ETI PG
XSLT - szablony
" Wykonanie szablonu ze wzorcem
 Definicja szablonu:
...
 Wywołanie szablonu:
" do wszystkich dzieci bieżącego węzła:

" wybranie węzłów do których szablon jest stosowany

30
Wioleta Szwoch, KISI ETI PG
XSLT - szablony
" Wykonanie szablonu z nazwÄ…
 Definicja szablonu:
...
 Wywołanie szablonu:

" Przypomina bardziej klasyczne programowanie
" Umożliwiają przejęcie pełnej kontroli nad
sterowaniem
31
Wioleta Szwoch, KISI ETI PG
XSLT - transformacje dokumentów
" dopasowywanie wzorców
...
...


Władca hiperdokumentów
Władca hiperdokumentów
Xawery M. Lingwista
Xawery M. Lingwista


Księga pierwsza
Księga pierwsza
Nowela ta w ...
Nowela ta w ...


...
...
...
...






...
...
32
Wioleta Szwoch, KISI ETI PG
XSLT - szablony
...



...



&
...



33
...
Wioleta Szwoch, KISI ETI PG
XSLT - szablony
" szablony z trybem
 możliwość przetwarzania tego samego zbioru węzłów

wiele razy




tryb1:



tryb2:

34

Wioleta Szwoch, KISI ETI PG
XSLT
" Język XSLT umożliwia
 przetwarzanie warunkowe,
 tworzenie pętli
 parametryzacjÄ™
" dane spoza pliku xml i xslt mogą wpływać na wynik
35
Wioleta Szwoch, KISI ETI PG
XSLT - Instrukcja warunkowa
" xsl:if
 test
" nie umożliwia tworzenia rozgałęzień

Zona


Maz

36
Wioleta Szwoch, KISI ETI PG
XSLT - wielokrotny wybór
" xsl:choose
 xsl:when : określa warunki
" test
 xsl:otherwise : ostateczne instrukcje
 sprawdzanie wyrażeń do pierwszego spełnionego
warunku
37
Wioleta Szwoch, KISI ETI PG
XSLT - wielokrotny wybór


Kobieta


Mezczyzna


38
Wioleta Szwoch, KISI ETI PG
XSLT - pętle
" xsl:for-each
 select
" procesor XSLT przetwarza wszystkie węzły
odpowiadajÄ…ce wzorcowi podanemu w atrybucie
select
" możliwość sortowania - xsl:sort
39
Wioleta Szwoch, KISI ETI PG

















40
Wioleta Szwoch, KISI ETI PG
XSLT - wykorzystanie CSS
dokument procesor
Dokument
XML XSLT
HTML
Dokument
Style CSS
wydobywa dane
XSLT
określa szczegóły prezentacji
Dokument
dokument procesor
CSS
HTML
XML XSLT
Dokument
XSLT CSS
41
Wioleta Szwoch, KISI ETI PG
Sortowanie
" xsl:sort
" atrybuty
 select
" sortowanie odbywa siÄ™ wg elementu lub atrybutu tu opisanego
 order
" kierunek sortowania ascending rosnÄ…ce, descending-malejÄ…ce
 case-order
" określa priorytet wielkości liter, (upper-first , lower-first )
 lang
 data-type
" sortowanie liter lub liczb (text, number)
" możliwość wielu kryteriów sortowania
42
Wioleta Szwoch, KISI ETI PG
Sortowanie
" xsl:sort używamy w połączeniu z
 xsl:for-each
 xsl:apply-templates
" xsl:sort w for-each muszą pojawić się przed
wszystkimi innymi elementami
" sortowanie w xsl:apply-templates może być
ryzykowne






43
Wioleta Szwoch, KISI ETI PG
Numerowanie
" xsl:number
" może znajdować się w dowolnym miejscu w
szablone lub elemencie xsl:for-each
" definiowanie postaci numeru - atrybut format
 1 1,2,3...
 01 01,02,03,...
 a a,b,c,...z,aa...
 B A,B,C...
 i i,ii,iii,iv,...
 ....
44
Wioleta Szwoch, KISI ETI PG
Numerowanie
" atrybut level
 =  any
" ciągła numeracja elementów niezależnie od ich elementu
rodzica
 =  multiple
" numerowanie wielopoziomowe (np. 1.2; 3.2.4, & )
" możliwość grupowania numerowania
45
Wioleta Szwoch, KISI ETI PG
Zmienne
" xsl:variable
" definicja zmiennej
 Wartość Zmiennej

" odwołanie do zmiennej

46
Wioleta Szwoch, KISI ETI PG
Zmienne
" lokalne

...

" globalne

...
...

47
Wioleta Szwoch, KISI ETI PG
Zmienne
" stałe
" ich wartości nie można modyfikować (read only)
" zalety zmiennych
 ułatwiają czytanie kodu
" złożone wyrażenie zapisane jako zmienna
" możliwość rozbijania złożonych wyrażeń na części
 wielokrotne wykorzystanie
" zwiększenie wydajności szczególnie w przypadku
skomplikowanych wyrażeń dających w wyniku fragment
drzewa
 zapisanie wartości węzłów w danej chwili niedostępnych
48
Wioleta Szwoch, KISI ETI PG
Zmienne
" proste
 zawierają pojedyncze wartości
 używane zwykle do wstawiania tych samych wartości
w wielu miejscach dokumentu
" złożone
 zawierają zbiory węzłów i fragmenty drzewa
49
Wioleta Szwoch, KISI ETI PG
Formatowanie liczb
" Konwersja wartości liczbowych na łańcuchy
format-number(number, format_pattern, dec_format)
wartość do nazwa formatu
sformatowania zdefiniowanego przez
name="formatname"
użytkownika
decimal-separator=""
{prefix}number{.fraction}{suffix}
grouping-separator=""
infinity=""
minus-sign=""
NaN=""
percent=""
per-mille=""
zero-digit=""
digit=""
pattern-separator=""/>
50
Wioleta Szwoch, KISI ETI PG
Zmiana struktury dokumentu
wyjściowego
" Tworzenie nowych elementów, atrybutów


" Kopiowanie elementów z dokumentu zródłowego

" kopia bieżącego węzła bez atrybutów i węzłów dzieci

" kopia bieżącego węzła z węzłami dzieci i atrybutami
51
Wioleta Szwoch, KISI ETI PG

...to a physical condition of a document some portions of the

text may also be blurred with stains, punch holes, torn out


edges, corners and other noise-like effects.
-------


In order to tackle these problems in ... may exhibit different
degrees of fatigue.


A set of selected documents may be satisfactory for some of
these aspects, and at the same time ... defined quality
metrics to measure the indicated document aspects.


A methodology for measuring quality of documents across

DDLC phases is...was used with relative wide band pass.

-------
Other issues...can be worked out with the QED tool.



Quality improvement that can be really obtained there
requires adding to the DDLC...

Wioleta Szwoch, KISI ETI PG
52
Tworzenie nowych elementów
" tworzenie elementów, znanych dopiero podczas
wykonywania arkusza


-------


53
Wioleta Szwoch, KISI ETI PG
Wypisywanie tekstu
" piszemy tekst
"




54
Wioleta Szwoch, KISI ETI PG
Podsumowanie XSLT
" Język deklaratywny sterowany danymi
" Możliwość przetwarzania warunkowego, pętli,
parametryzacji, sortowania, numerowania, &
" Szablony pokazują jak ma działać transformacja
" Struktura
 Poprawny plik XML
 Elementy pierwszego poziomu i pozostałe
" Różnorodne typy dokumentów wyjściowych
55
Wioleta Szwoch, KISI ETI PG


Wyszukiwarka

Podobne podstrony:
Tech tech chem11[31] Z5 06 u
srodki ochrony 06[1]
06 (184)
06
06 (35)
Plakat WEGLINIEC Odjazdy wazny od 14 04 27 do 14 06 14
Mechanika Techniczna I Opracowanie 06
wydruk
06 11 09 (28)

więcej podobnych podstron