Plan prezentacji. Krótko o XML Arkusze stylów XSLT XSL XSL Path Przegląd konstrukcji języka i przykłady Narzędzia Podsumowanie Literatura



Podobne dokumenty
Języki formatowania dokumentów strukturalnych. XSL przekształcenia XML-a. XSL a XSLT. XSL części składowe. Zasada działania przekształcenia XSLT

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT

METAJĘZYKI. Politechnika Koszalińska Wydział Elektroniki i Informatyki Katedra Inżynierii Komputerowej

Język XSLT. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

XML Path Language (XPath)

XPath XML Path Language. XPath. XSLT część 1. XPath data model. Wyrażenia XPath. Osie (axes) Location paths

Wprowadzenie do XSLT

LABORATORIUM 5 WSTĘP DO SIECI TELEINFORMATYCZNYCH WPROWADZENIE DO XML I XSLT

Kurs WWW Język XML, część II

XPath XML Path Language. XPath. XSLT część 1. XPath data model. Wyrażenia XPath. Location paths. Osie (axes)

Extensible Markup Language III

XML extensible Markup Language 3

Prezentacja i transformacja

Rodzaje przetwarzania XSLT (1)

Służy do wybierania/wyszukiwania fragmentów dokumentu XML. Przypomina trochę ścieżki w systemie operacyjnym. Niech będzie dany dokument XML:

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0

XML materiały dydaktyczne - Kurs Podstawowy XSL - wprowadzenie. XSL warstwa przekształcania (XSLT) oraz prezentacji informacji (XSL FO).

Prezentacja i transformacja

Przetwarzanie dokumentów XML i zaawansowane techniki WWW Wykład 04

XML extensible Markup Language. część 3

Przetwarzanie dokumentów XML i zaawansowane techniki WWW Przetwarzanie dokumentów XML za pomocą procesora XSLT (Zajęcia r.

Wprowadzenie do standardu XSL

Przykładowy dokument XML

Przetwarzanie dokumentów XML za pomocą XSLT ( r.)

XPath XML Path Language. XSL Extensible Stylesheet Language. Wyrażenia XPath. XPath data model. Location paths. Osie (axes)

Aplikacje internetowe laboratorium XML, DTD, XSL

XSLT. Patryk Czarnik. Instytut Informatyki UW. XML i nowoczesne technologie zarzadzania treścia 2007/08

XSLT. Patryk Czarnik. XML i nowoczesne technologie zarzadzania treścia 2007/08

XSL, tj. XSLT i XSL-FO czyli jak przekształcać i ładnie wyświetlać XML-e. Kuba Pochrybniak

Prezentacja dokumentów XML

Języki i Techniki Programowania II. Wykład 13. TRaX, Applety, Java Security

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

29. Poprawność składniowa i strukturalna dokumentu XML

Model semistrukturalny

Egzamin z przedmiotu Projektowanie języków XML imię i nazwisko. Zadanie Suma Punkty Max Punkty

Technologie internetowe

5.14 JSP - Przykład z obiektami sesji Podsumowanie Słownik Zadanie... 86

WYKŁAD 1 METAJĘZYK SGML CZĘŚĆ 1

Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9

XSLT. Patryk Czarnik. XML i nowoczesne technologie zarządzania treścią 2011/12

XML extensible Markup Language. część 8

XSLT. Patryk Czarnik. XML i nowoczesne technologie zarządzania treścią 2008/09. Instytut Informatyki UW

DTD - encje ogólne i parametryczne, przestrzenie nazw

Aplikacje internetowe

XQuery. sobota, 17 grudnia 11

XML & XSLT. Programowanie w Javie 2

UKŁAD INFORMACJI I POWIĄZAŃ MIĘDZY NIMI W INFORMACJI W SPRAWIE PODATKU LEŚNEGO (IL-1) W FORMACIE DANYCH XML

Tworzenie raportów XML Publisher przy użyciu Data Templates

Zaawansowany kurs języka Python

Rola języka XML narzędziem

E.14.1 Tworzenie stron internetowych / Krzysztof T. Czarkowski, Ilona Nowosad. Warszawa, Spis treści

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej.

XSLT. Patryk Czarnik. XML i nowoczesne technologie zarzadzania treścia 2008/09. Instytut Informatyki UW. Patryk Czarnik 08 XSLT XML 2008/09 1 / 1

Słowem wstępu. Standard: W3C XPath razem XSLT 1.0. XPath razem z XQuery 1.0 i XSLT 2.0. XPath trwają prace nad XPath 3.

XML i nowoczesne technologie zarządzania treścią

Literatura. Głównie informacje w sieci:

Przykładowy dokument XML

Przykładowy dokument XML

XML extensible Markup Language. część 6

XML i nowoczesne technologie zarządzania treścią

XML i nowoczesne technologie zarządzania treścią 2007/08

Plan prezentacji XSLT. XSLT Ogólna charakterystyka. Drzewo XML. Wstęp. Przedmiot: XML i jego zastosowania. Zagadnienia podstawowe

Programowanie obiektowe

METAJĘZYKI. Politechnika Koszalińska Wydział Elektroniki i Informatyki Katedra Inżynierii Komputerowej

Podstawy (X)HTML i CSS

ABC języka HTML i XHTML / Maria Sokół. wyd. 2. Gliwice, cop Spis treści

XSLT. Patryk Czarnik. XML i nowoczesne technologie zarzadzania treścia 2011/12. Instytut Informatyki UW. Patryk Czarnik 08 XSLT XML 2011/12 1 / 54

XML extensible Markup Language. Paweł Chodkiewicz

λ parametry. wartość funkcji suma = λ x y. x + y kwadrat = λ x. x * x K.M. Ocetkiewicz, 2008 WETI, PG 2 K.M. Ocetkiewicz, 2008 WETI, PG 3

Format HTML. Wybrane działy Informatyki Stosowanej. Definicja i przeznaczenie Struktura dokumentu Znaczniki Formularze i komponenty

<meta:wartosc> </meta:identyfikator> <meta:rodzajrelacji>maczesc</meta:rodzajrelacji>

Zaawansowane aplikacje WWW - laboratorium

Po zakończeniu rozważań na temat World Wide Web, poznaniu zasad organizacji witryn WWW, przeczytaniu kilkudziesięciu stron i poznaniu wielu nowych

GML w praktyce geodezyjnej

SPECYFIKACJA FUNKCJONALNA OPROGRAMOWANIA 11 marca 2014 XLZEBRAPRINTER

Kazienko P.: Rodzina języków XML. Software nr 6 (90) czerwiec 2002, s Rodzina języków XML. Przemysław Kazienko

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Intro. I.Wojnicki, ZTB:XML ZTB: XML. Igor Wojnicki. Katedra Informatyki Stosowanej, Akademia Górniczo-Hutnicza w Krakowie.

XML i nowoczesne metody zarządzania treścią

mgr inż. Jacek Staniec Język XML

Dlaczego Python jest lepszy od XSLT?

Wymagania edukacyjne z informatyki w klasie VIII

Bazy danych i strony WWW

Informatyka kl. 1. Semestr I

Extensible Markup Language (XML) Wrocław, Java - technologie zaawansowane

DOM (Document Object Model)

EXCEL ANALIZA DANYCH. Konspekt szczegółowy

Tomasz Boiński: 1. Pozycjonowanie stron i zastosowanie mod_rewrite

Dokument poprawnie sformułowany jest zgodny z ogólnymi zasadami składniowymi:

Wprowadzenie do standardu XSL

XML DTD XML Schema CSS

Wykorzystywanie parsera DOM w programach Java i PL/SQL

Program Szkolenia. Excel Podstawowy. COGNITY praktyczne, skuteczne szkolenia i konsultacje

Kurs rozszerzony języka Python

I. Dlaczego standardy kodowania mailingów są istotne?

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

EXCEL ZAAWANSOWANY. Konspekt szczegółowy

PROGRAM SZKOLENIA. Excel w Analizach danych.

XML i jego zastosowania

Transkrypt:

XSLT Dariusz Dudek

Plan prezentacji Krótko o XML Arkusze stylów XSLT XSL XSL Path Przegląd konstrukcji języka i przykłady Narzędzia Podsumowanie Literatura

Cechy XML a Rozszerzalny język znaczników Stworzony do przechowywania danych Opisuje strukturę i semantykę danych Nie definiuje sposobu prezentacji danych - oddziela logikę od prezentacji Prezentacja wymaga dodatkowych mechanizmów

Arkusze stylów Określają sposób prezentowanie dokumentów XML owych Najpopularniejsze arkusze stylów Kaskadowe arkusz stylów CSS Arkusze XSL

Arkusze CSS Stworzone z myślą o HTML u Pozwalają na formatowanie HTML Umożliwiają transformacje XML a w HTML Stosunkowo proste w tworzeniu

Arkusze XSL Opracowane dla XML a Umożliwiają transformację w HTML TXT i XML Pozwalają na zmianę struktury dokumentu, filtrowanie elementów, sortowanie Skomplikowane w tworzeniu

Przykład XML <ksiazki> <ksiazka> <autor> <imie> Adam </imie> <nazwisko> Mickiewicz </nazwisko> </autor> <tytul> Pan Tadeusz </tytul> <rok-wydania> 1980 </rok-wydania> </ksiazka> <ksiazki>

Przykład CSS autor{display:block; font-size:14pt; color:red} tytul{display:block; font-size:14pt; color:green} rok-wydania{display:block; font-size:12pt; color:blue}

Przykład CSS

Proste XSLT <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/tra nsform" version="1.0"> </xsl:stylesheet>

Proste XSLT

XSLT Język określający sposób transformacji dokumentów XML Jest językiem deklaratywnym opisuje co a nie jak ma być zrobione Dokument XML ma strukturę drzewa transformacja tworzy nowe drzewo XSLT stosuje szablony do elementów drzewa pasujących do zadanych wzorców

XSLT To także dokument XML Musi być well-formed Najczęstsze błędy wynikają właśnie ze złego formatowania

XSL XSLT jest częścią szerszej specyfikacji XSL, stanowiącej zbiór zaleceń związanych z prezentacją i formatowaniem dokumentów XML. Na XSL składa się: XLST język transformacji XML Path język umożliwiający nawigację w drzewie XML XML FO język określający formatowanie dokumentu

Schemat działania procesorów XSL Procesor odczytuje plik XML i stosuje do niego transformatę XSLT generując nowy dokument

Procesory XSL Xalan Saxon MSXML wykorzystywany w IE TransforMiix wykorzystywany w Mozilla/Firefox Netscape Comunicator Uruchamiane zazwyczaj z linii poleceń

XML Path Umożliwia poruszanie się po drzewie XML Pozwala na wybranie elementów, które mają zostać przetworzone a także warunków jakie muszą spełniać Wyszukiwanie następuje poprzez dopasowanie wzorca

XML Path Ścieżka wyrażenie pozwalające odwołać się do poszczególnych węzłów drzewa Syntaktyka analogiczna do systemu plików Unix/Linux /ksiazki/ksiazka/autor/

XML Path Wyrażenia ciąg znaków przetwarzany przez procesor XSLT w celu uzyskania wyniku Wynikiem może być node-set boolean number string

Rodzaje węzłów Węzeł główny / - reprezentuje cały dokument Węzły elementów /książki elementy ograniczone znacznikami Węzły atrybutów Węzły przetwarzania poleceń Węzły komentarza Węzły tekstowe Węzły przestrzeni nazw

Adresowanie Bezwzględne zaczyna się od / Względne w odniesieniu do przetwarzanego elementu self -. - bieżący węzeł parent.. węzeł nadrzędny child węzęł podrzędny descendant-or-self - // wszystkie węzły podrzędne

Adresowanie Adresować można: elementy atrybuty zawartość znaczników komentarze

Dostępne funkcje Procesor XSLT zawiera implementację standardowych funkcji (core functions) string name(node-set?) boolean contains(string, string) number count(node-set) number string-length(string string?) i wiele innych

XSLT Podstawowe konstrukcje języka xsl:stylesheet xsl:template xsl:aply-templates xsl:for-each xsl:if xsl:chose xsl:sort xsl:element xsl:output xsl:number xsl:element

xsl:stylesheet Deklaruje wersję i przestrzeń nazw <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform " version="1.0"> </xsl:stylesheet> <xsl:transform xmlns:xsl="http://www.w3.org/1999/xsl/transform " version="1.0"> </xsl:transform>

xsl:template Definiuje reguły które będą zastosowane w momencie znalezienia węzła <xsl:template match="/ksiazki"> <html> <head> <title></title> </head> <p><xsl:value-of select="ksiazka/autor/imie"/></p> </html> </xsl:template>

xsl:template

xsl:aply-templates Powoduje rekursywne przetwarzanie potomków danego węzła <xsl:template match="/ksiazki"> <html> <head> <title></title> </head> <p><xsl:apply-templates select="ksiazka/autor/imie"/></p> </html> </xsl:template>

xsl:aply-templates

xsl:for-each <xsl:for-each select = wyrażenie którego wynik to zbiór węzłów /> Stosuje szablon do każdego węzła ze zbioru

xsl:for-each <xsl:template match="/ksiazki"> <html> <head><title></title></head> <table> <xsl:for-each select="ksiazka/autor"> <tr ><td bgcolor="yellow"><xsl:value-of select="imie"/></td> <td><xsl:value-of select="nazwisko"/></td></tr> </xsl:for-each> </table> </html> </xsl:template>

xsl:for-each

xsl:if <xsl:if test = wyrażenie /> Realizuje instrukcje warunkową szablon jest aplikowany tylko gdy spełniony zostanie warunek Nie istnieje else

xsl:if <xsl:template match="ksiazka"> <xsl:if test="rok-wydania > 1989"> <xsl:apply-templates select="rok- wydania"/> <br></br> </xsl:if> </xsl:template>

xsl:if

xsl:choose <xsl:choose> <xsl:when test = wyrażenie logiczne > </xsl:when>... <xsl:otherwise /> </xsl:choose> Funkcjonalność switcha Nakładany jest szablon dla którego spełniony jest warunek Jeśli żaden warunek nie jest spełniony to implikowany jest szablon z otherwise

xsl:choose <xsl:template match="ksiazka"> <table> <xsl:choose> <xsl:when test="rok-wydania > 1989"> <tr bgcolor="yellow"><xsl:apply-templates select="rok- wydania"/></tr> </xsl:when> <xsl:otherwise> <tr bgcolor="brown"><xsl:apply-templates select="rok- wydania"/></tr> </xsl:otherwise> </xsl:choose> </table> </xsl:template>

xsl:choose

xsl:sort <xsl:sort select = string-expression lang = { nmtoken } data-type = { "text" "number" } order = { "ascending" "descending" } case-order = { "upper-first" "lower-first" } /> Umożliwia sortowanie listy według zadancych kryteriów

xsl:sort <xsl:template match="ksiazki"> <table> <xsl:apply-templates select="ksiazka"> <xsl:sort select="autor/nazwisko"/> <xsl:sort select="autor/imie"/> </xsl:apply-templates> </table> </xsl:template> <xsl:template match="ksiazka"> <tr><td><xsl:value-of select="autor/nazwisko"/></td> <td><xsl:value-of select="autor/imie"/></td></tr> </xsl:template>

xsl:sort

xml:output <xsl:output method = "xml" "html" "text" version = nmtoken encoding = string omit-xml-declaration = "yes" "no" standalone = "yes" "no" doctype-public = string doctype-system = string cdata-section-elements = qnames indent = "yes" "no" media-type = string /> Określa docelowy format dokumentu XML

xsl:number <xsl:number level = "single" "multiple" "any" count = pattern from = pattern value = number-expression format = { string } lang = { nmtoken } letter-value = { "alphabetic" "traditional" } grouping-separator = { char } grouping-size = { number } />

xsl:number format implikuje numerowanie 1 1, 2, 3 01 01, 02, 03 A A, B, C a a, b, c i i, ii, iii, iv I I, II, III

xsl:number <xsl:template match="ksiazka"> <table> <tr> <td><xsl:number level="any"/> <xsl:apply-templates select="autor/nazwisko"/></td> <td><xsl:apply-templates select="autor/imie"/></td> </tr> </table> </xsl:template>

xsl:number

xsl:import xsl:include Umożliwiają włączenie innych arkuszy <xsl:include href = uri-reference /> Może wystąpić tylko w głównym elemencie <xsl:import href = uri-reference /> Może wystąpić w dowolnym miejscu po ostatnim xsl:include

xsl:element <xsl:element name = { qname } namespace = { uri-reference } use-attribute-sets = qnames> </xsl:element> Pozwala na dodanie nowego elementu

xsl:element <xsl:template match="ksiazka"> <table> <tr><xsl:apply-templates select="autor/imie"/></tr> <tr><xsl:apply-templates select="autor/nazwisko"/></tr> <tr><xsl:element name="rok- urodzenia">1900</xsl:element></tr> </table> </xsl:template>

xsl:element

Narzędzia Altova XMLSPY Oxygen Funkcjonują jako samobieżki oraz pluginy do Eclipse a

Podsumowanie XSLT pozwala na transformacje w HTML XML i TEXT XML Path określa które elementy będą transformowane, szablon definiuje sposób transformacji Transformacja XML->XML to wygodne rozwiązanie dla biznesu Możliwe reorganizację dokumentu Filtrowanie zawartości Łączenie kilku dokumentów

Podsumowanie Wada - w przypadku gdy chcemy odfiltrować tylko kilka znaczników musimy się napisać

Literatura www.w3.org/style/xsl www.w3.org/tr/xslt www.w3.org/tr/xpath Poznaj XSLT Michael Floyd www.google.pl