Przekształcanie dokumentów XML - XSL

1 Przekształcanie dokumentów XML - XSL ...
Author: Teofil Ryński
0 downloads 3 Views

1 Przekształcanie dokumentów XML - XSL

2 Składowe XSL XSLT (XSL Transformations): XPath (XML Path Language)język opisu przekształceń dokumentów XML oparty na XML pozwala na dopasowywanie wzorców przestrzeń nazw: rekomendacja W3C z listopada 1999 r. XPath (XML Path Language) język przeszukiwania danych

3 Arkusze stylów w przekształceniachXSLT ustawa -> HTML XSL ustawa -> PDF FOSI DSSSL XSLT ustawa -> rozporządzenie Omnimark ustawa (RTF) -> ustawa (XML) CSS

4 Przekształcanie XSLT Zasady XSLT: Proces przetwarzaniawyrażenia XPath określają węzły obowiązywania reguły treść jest przekształcana w przypadku wykonania reguły: tekst i elementy wyświetlane na wyjściu instrukcje XSLT Proces przetwarzania wykonanie reguł dla węzła reguła może wywołać reguły innych węzłów

5 Struktura XSLT i implementacjaElement główny: ... Output-method: xml, html i text Określanie arkusza stylów dla dokumentu:

6 Przykład dokumentu XSL

7 Przekształcenie – przykład Monitor Drukarka 1/10/2007 Monitor Drukarka

8 Reguły wbudowane

9 Generowanie dokumentuElementy i tekst literalnie podane w przekształceniu Instrukcje generujące:

10 Instrukcja warunkowa if name="rabat">tak

11 Instrukcja warunkowa choose tak xsl:when temp='$nazwa=Pamięć flash 20 GB'> tak xsl:element name="tylkoNaZamowienie">nie !

12 Pętle

    §
  • 13 Przetwarzanie warunkowe: if yellow

    14 Przetwarzanie warunkowe: choose .

    15 Pętle

    Index

    16 Przetwarzanie XSLT - wejściowePrzetwarzanie według struktury dokumentu źródłowego przechodzimy po strukturze dokumentu źródłowego generujemy fragmenty struktury dokumentu wyjściowego

    17 Przetwarzanie XSLT - wyjściowePrzetwarzanie według struktury dokumentu wyjściowego jedna główna reguła dla węzła root generowanie struktury dokumentu docelowego wyciąganie odpowiednich wartości z dokumentu źródłowego Raport wydatków

    Firma:

    Kwota wydatków:

    18 Przetwarzanie XSLT - uproszczoneTylko jeden wzorzec dla węzła root Pomijanie elementu stylesheet Raport wydatków

    Firma:

    Kwota wydatków:

    19 Zaawansowane możliwości XSLTSortowanie węzłów Tryby przetwarzania przełączanie między trybami niezależnie definiowane wzorce dla każdego trybu Zmienne Wzorce nazwane wywoływane jak podprogramy przekazywanie parametrów rekursja

    20 Sortowanie Można stosować w:apply-templates for-each

    Klieci wg kwoty zamówienia

    21 Tryby przetwarzania

    Tematyka

    "#{generate-id().

    "#{generate-id().

    { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://slideplayer.pl/56677/1/images/21/Tryby+przetwarzania.jpg", "name": "Tryby przetwarzania", "description": " Tematyka #{generate-id(). #{generate-id(). ", "width": "800" } 22 Zmienne Podobne w koncepcji do języków programowania: Deklaracja:brak instrukcji przypisania brak efektów ubocznych Deklaracja: wartość: atrybut select - wyrażenie odpowiedniego typu zawartość elementu - element drzewa wynikowego Użycie: w wyrażeniach: $nazwa { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://slideplayer.pl/56677/1/images/22/Zmienne+Podobne+w+koncepcji+do+j%C4%99zyk%C3%B3w+programowania%3A+Deklaracja%3A.jpg", "name": "Zmienne Podobne w koncepcji do języków programowania: Deklaracja:", "description": "brak instrukcji przypisania. brak efektów ubocznych. Deklaracja: wartość: atrybut select - wyrażenie odpowiedniego typu. zawartość elementu - element drzewa wynikowego. Użycie: w wyrażeniach: $nazwa. ", "width": "800" } 23 Użyteczność zmiennych - ograniczeniaWartość można jedynie: skopiować do drzewa wynikowego lub innej zmiennej przekształcić do napisu nie można przekształcić na node set praktycznie niemożliwe obliczenia na zmiennych w kilku wywołaniach Zmienna typu node set ... Zmienna typu result tree fragment { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://slideplayer.pl/56677/1/images/23/U%C5%BCyteczno%C5%9B%C4%87+zmiennych+-+ograniczenia.jpg", "name": "Użyteczność zmiennych - ograniczenia", "description": "Wartość można jedynie: skopiować do drzewa wynikowego lub innej zmiennej. przekształcić do napisu. nie można przekształcić na node set. praktycznie niemożliwe obliczenia na zmiennych w kilku wywołaniach. Zmienna typu node set ... Zmienna typu result tree fragment ", "width": "800" } 24 Rekursja w XSLT Sposób na brak „prawdziwych” zmiennych i pętli iteracyjnych Przykład – suma wartości książek Pan Tadeusz 1210.99 Mistrz i Małgorzata 115.99 Imię Róży 26.99 { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://slideplayer.pl/56677/1/images/24/Rekursja+w+XSLT+Spos%C3%B3b+na+brak+%E2%80%9Eprawdziwych+zmiennych+i+p%C4%99tli+iteracyjnych.+Przyk%C5%82ad+%E2%80%93+suma+warto%C5%9Bci+ksi%C4%85%C5%BCek..jpg", "name": "Rekursja w XSLT Sposób na brak „prawdziwych zmiennych i pętli iteracyjnych. Przykład – suma wartości książek.", "description": " Pan Tadeusz 1210.99 Mistrz i Małgorzata 115.99 Imię Róży 26.99 ", "width": "800" } 25 Rekursja w XSLT Przykład – XSLT: 0 { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://slideplayer.pl/56677/1/images/25/Rekursja+w+XSLT+Przyk%C5%82ad+%E2%80%93+XSLT%3A.jpg", "name": "Rekursja w XSLT Przykład – XSLT:", "description": " 0 ", "width": "800" } 26 Funkcja node-set() Przekształca fragment drzewa wynikowego w zbiór węzłów (node set). Niedostępna w XSLT jeśli nie ma rozszerzeń: procesora: XT, Saxon, MSXML, biblioteki rozszerzeń EXSLT. { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://slideplayer.pl/56677/1/images/26/Funkcja+node-set%28%29+Przekszta%C5%82ca+fragment+drzewa+wynikowego+w+zbi%C3%B3r+w%C4%99z%C5%82%C3%B3w+%28node+set%29.+Niedost%C4%99pna+w+XSLT+je%C5%9Bli+nie+ma+rozszerze%C5%84%3A.jpg", "name": "Funkcja node-set() Przekształca fragment drzewa wynikowego w zbiór węzłów (node set). Niedostępna w XSLT jeśli nie ma rozszerzeń:", "description": "procesora: XT, Saxon, MSXML, biblioteki rozszerzeń EXSLT. ", "width": "800" } 27 Przekształcenia XSL - przykładDane Dokument Szymon Zioło wypoczynkowy 6 1 Jan Kowalski Źródło: Zioło, Sz., XSLT do kwadratu, Software 2.0, nr 6/2003 { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://slideplayer.pl/56677/1/images/27/Przekszta%C5%82cenia+XSL+-+przyk%C5%82ad.jpg", "name": "Przekształcenia XSL - przykład", "description": "Dane Dokument. Szymon Zioło wypoczynkowy 2003-06-20 2003-06-27 6 1 Jan Kowalski Źródło: Zioło, Sz., XSLT do kwadratu, Software 2.0, nr 6/2003.", "width": "800" } 28 Przekształcenia XSL - przykładzapisanie metainformacji w szablonie generowanie przekształcenia poprzez szablon { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://slideplayer.pl/56677/1/images/28/Przekszta%C5%82cenia+XSL+-+przyk%C5%82ad.jpg", "name": "Przekształcenia XSL - przykład", "description": "zapisanie metainformacji w szablonie. generowanie przekształcenia poprzez szablon. ", "width": "800" } 29 Przekształcenia XSL - przykład xmlns:res="http://www.w3.org/1999/XSL/TransformAlias">

    30 Przekształcenia XSL - przykład tak nie

    31 Narzędzia Procesory XSLT: Edytory XSLT:Oracle XML Parser for Java / C / PL-SQL Xalan, Apache (Java, C++) Sablotron (C++, open source) Microsoft XML Core Services (MSXML 4.0) Edytory XSLT: XMLSPY, Altova Xselerator XSL Editor/Debugger, MarrowSoft,

    32 Główne ograniczenia XSLT 1.0Brak konwersji fragmentów drzewa wynikowego na pełnoprawne zbiory węzłów Brak możliwości generowania wielu dokumentów wyjściowych Brak wsparcia dla grupowania węzłów Brak możliwości definiowania własnych funkcji