Slides:



Advertisements
Podobne prezentacje
Przekształcanie dokumentów XML - XSL
Advertisements

Implementacja procesora XSLT w języku Ocaml
Wprowadzenie do C++ Zajęcia 2.
Programowanie w Internecie (Internet Programming) Krystyna Dziubich p. 521 XSL Formatting Objects.
XHTML Podstawowe różnice.
Polsko-Japońska Wyższa Szkoła Technik Komputerowych
XPath XSLT – część XPath. XSLT – część 12 XPath – XML Path Language Problem: –jednoznaczne adresowanie fragmentów struktury dokumentu XML.
XSL – przekształcenia XML-a
XSLT – część XSLT – część 22 Rodzaje przetwarzania XSLT (1) Przetwarzanie sterowane strukturą dokumentu źródłowego (ang. push): –przechodzimy.
XPath. XSLT – część XPath. XSLT – część 12 XPath – XML Path Language Problem: –jednoznaczne adresowanie fragmentów struktury dokumentu XML.
Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema
11 XML a SGML. Standardy pokrewne.. 22 SGML a XML – różnice Deklaracja SGML: konfiguracja wyglądu znaczników, ich maksymalnej długości, itp., definicja.
XSL – część 2.
Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema.
XSL Extensible Stylesheet Language 6 listopada 2003.
Zaawansowana składnia XML XML Schema
XSLT – część XSLT – część 22 Rodzaje przetwarzania XSLT (1) Przetwarzanie sterowane strukturą dokumentu źródłowego: –przechodzimy po strukturze.
XPath. XSL – część 1..
XML Schema XML Schema2 Definiowanie języków XML, SGML – metajęzyki. Definiowanie języków (zastosowań, typów dokumentów, schematów): –określanie.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Dokumentowanie wymagań w języku XML
XPath, XSLT, (and XSL:FO)
XML. Pierwszy dokument XML Witaj świecie! Elementy i atrybuty niezwykle oryginalny Witaj świecie! Druga możliwość: Witaj świecie!
Tworzenie stron w języku WML jest zbliżone do tworzenia stron w HTML. W obydwu przypadkach używa się do tego celu znaczników (tagów). Zadaniem znaczników.
Arkusz kalkulacyjny Excel
Programowanie w Internecie 2 Ćwiczenie 4 – Transformacja danych Prowadzący: Rajmund Pączkowski.
HTML 4 Zebrał i opracował : dr inż. Jerzy Zgraja.
HTML 4 Zebrał i opracował : dr inż. Jerzy Zgraja.
Excel Wykład 3.. Importowanie plików tekstowych Kopiuj – wklej Małe pliki Kolumny oddzielone znakiem tabulacji Otwieranie/importowanie plików tekstowych.
XML – eXtensible Markup Language 4. XSL transformations (XSLT) XSLT (ang. eXtensible Stylesheet Language Transformations) jest opartym na XML językiem.
Generator analizatorów leksykalnych
Instrukcja USOSweb Wersja: Opracował: Sebastian Sieńko Moduł sprawdzianów.
Tworzenie stron internetowych
ANNA BANIEWSKA SYLWIA FILUŚ
Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Podyplomowe Studium Programowania i Zastosowań Komputerów Marcin Hankiewicz.
Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Podyplomowe Studium Programowania i Zastosowań Komputerów Paweł Abramczyk.
XML – eXtensible Markup Language
Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Podyplomowe Studium Programowania i Zastosowań Komputerów Katalog WWW.
Współpraca z innymi aplikacjami. Organizacja informacji 10 XII 2013.
Wprowadzenie do HTML Informatyka Cele lekcji: Wiadomości:
Wykaz nieuporządkowany - służy do sporządzenia wykazu nienumerowanego, w którym kolejne punkty są wyróżniane punktorami. ◦ Polecenie tworzy ramy wykazu,
Wprowadzenie do CSS Okiełznać style.
Aplikacje internetowe
Aplikacje internetowe
XML w przykładach mgr inż. Marek Malinowski Zespół Matematyki i Fizyki Wydz. BMiP PW Płock.
Projektowanie Aplikacji Internetowych
LISTY HTML. Listy s ą definiowane za pomoc ą znacznika podstawowego innego dla ka ż dego rodzaju list Specyfikacja XHTML, zawiera specjalne znaczniki.
PHP Formularze Damian Urbańczyk. Do czego służą? Formularze to bardzo ważne elementy stron internetowych, dzięki nim dochodzi do wymiany danych pomiędzy.
Aplikacje internetowe CSS - style fontów, tekstu Ciąg dalszy.
Informatyka – szkoła gimnazjalna – Scholaris - © DC Edukacja Wprowadzenie do kaskadowych arkuszy stylów Informatyka.
Temat 4: Klasy i identyfikatory
CSS - Selektory. Selektory Selektorem można nazwoć dowolny element języka HTML, dla którego chcemy zdefiniować parametry formatowania. Wyróżniamy następujące.
REGUŁY ZABEZPIECZEŃ W APLIKACJI OeBS Przedmiot i zakres szkolenia Przedmiot i zakres szkolenia Przedmiot i zakres szkolenia Przedmiot i zakres szkolenia.
C S S 1 Cascading Style Sheets HTML pozwala zarządzać strukturą dokumentu, STYLE mają nam służyć do jego upiększania Kaskadowe Arkusze Stylów.
Temat 1: CSS Dołączanie stylów do dokumentu
Temat 2: Składnia kaskadowych arkuszy stylów. Za zmianę wyglądu witryny w kaskadowych arkuszach stylów odpowiadają reguły stylów. Każda z reguł powiązana.
Formatowanie dokumentów
Adresowanie elementów struktury dokumentów - XPath.
Obiektowe metody projektowania systemów XML eXtensible Markup Language.
Waldemar Bartyna 1 Programowanie zaawansowane LINQ to XML.
I TY ZOSTAŃ WEBMASTEREM! CZĘŚĆ 2 – „STRUKTURA STRONY” STWORZYŁ GABRIEL ŚLAWSKI.
Podstawy programowania
Kaskadowe arkusze stylów CSS. Reguła CSS – definiuje sposób formatowania elementów na stronie WWW Części składowe reguły CSS selektor{ właściwość: wartość;
Formatowanie tekstu Sabina Charasim. Informacje podstawowe HTML posiada bardzo wiele znaczników służących do formatowania tekstu. Jedne używa się bardzo.
The Poznan University of Economics Department of Management Information Systems XML - wprowadzenie.
Aplikacje internetowe XML Paweł Lenkiewicz. Aplikacje internetowe – XML2 eXtensible Markup Language Uniwersalny język opisu danych Często używany we współpracy.
HTML + CSS = strony internetowe Krzysztof Geras. FAKTY I MITY Czym nie jest HTML: ● programem do tworzenia stron internetowych, ● interpreterem skryptów.
Język html Julia Cudak. Wykorzystanie Język html wykorzystuje się obecnie do tworzenia stron internetowych. Pozwala on opisać strukturę informacji zawartych.
Arkusz stylów CSS Cascading Style Sheet.
Style definiujące tekst
Zapis prezentacji:

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT Marek Wojciechowski marek@cs.put.poznan.pl http://www.cs.put.poznan.pl/~marek/

Formatowanie dokumentów XML Język XML opisuje strukturę i semantykę, nie opisuje formatowania Nie ma w XML znaczników opisujących formatowanie Ze znacznikami XML nie jest związany domyślny sposób prezentacji Sposób prezentacji dokumentu XML (formatowanie) dodaje się poprzez dołączenie arkuszu stylów CSS – Cascading Style Sheets (Level 1 i Level 2) Opracowany z myślą o HTML XSL – Extensible Stylesheet Language Opracowany dla dokumentów XML Bardziej złożony, oferujący więcej możliwości niż CSS

Formatowanie XML za pomocą CSS produkty.xml produkty.css <?xml version="1.0" encoding="windows-1250" ?> <?xml-stylesheet type="text/css" href="produkty.css"?> <cennik> <produkt kod="67653829370"> <nazwa>Antena dachowa</nazwa> <symbol>1709765</symbol> <cena>85</cena> </produkt> <produkt kod="56486294304"> <nazwa>Radioodtwarzacz CAR 2001</nazwa> <symbol>3209765</symbol> <cena>525</cena> <produkt kod="78488297102"> <nazwa>Zestaw głośnomówiący LOUD 2</nazwa> <symbol>4409724</symbol> <cena>330</cena> </cennik> produkt {display: block} nazwa {display: inline; font-weight: bold} symbol {display: none} cena {display: inline; font-style: italic} CSS umożliwia formatowanie elementów, ale nie pozwala na modyfikację struktury drzewa dokumentu

XSL – Extensible Stylesheet Language Język do definiowania arkuszy stylów Obejmuje 2 części: XSL Transformations (XSLT) – język przekształceń Wykorzystuje XPath XSL Formatting Objects (XSL-FO) – język opisu formatu W porównaniu z CSS: XSL oferuje bardziej rozbudowane mechanizmy formatowania Umożliwia transformację struktury drzewa dokumentu (!) Arkusze XSL są dokumentami XML (!) XSLT może być wykorzystywany w połączeniu z XSL-FO do formatowania dokumentów XML, ale może również być wykorzystywany niezależnie jako uniwersalny język transformacji dokumentów XML

XSLT – Język przekształceń Zawiera elementy służące do definiowania reguł opisujących sposób przekształcania jednego dokumentu XML na inny dokument Wykorzystuje język wyrażeń XPath do wyboru przetwarzanych elementów Przekształcony dokument może mieć znaczniki (i DTD) dokumentu oryginalnego lub używać innego zestawu znaczników Przykłady typów konwersji dokumentów XML: Konwersja do dokumentu XML zawierającego obiekty formatujące XSL Konwersja do dokumentu HTML (np. korzystającego z arkusza stylów CSS)

Arkusz stylistyczny XSL Transformacja XSLT Dokument XML Dokument XML (lub HTML, WML, itp.) XSLT Arkusz stylistyczny XSL Automatyczna konwersja dokumentu XML do formatu HTML, WML, itp. lub innego dokumentu XML

Przykład transformacji XSLT produkty.xml produkty.xsl <?xml version="1.0" encoding="windows-1250" ?> <?xml-stylesheet type="text/xsl" href="produkty.xsl"?> <cennik> <produkt kod="67653829370"> <nazwa>Antena dachowa</nazwa> <symbol>1709765</symbol> <cena>85</cena> </produkt> <produkt kod="56486294304"> <nazwa>Radioodtwarzacz CAR 2001</nazwa> <symbol>3209765</symbol> <cena>525</cena> <produkt kod="78488297102"> <nazwa>Zestaw głośnomówiący LOUD 2 </nazwa> <symbol>4409724</symbol> <cena>330</cena> </cennik> <?xml version="1.0" encoding="windows-1250"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="cennik"> <HTML><BODY><H1>Cennik akcesoriów</H1> <xsl:for-each select="produkt"> <B><xsl:value-of select="nazwa"/></B> - <I><xsl:value-of select="cena"/></I> PLN <BR/> </xsl:for-each> </BODY></HTML> </xsl:template> </xsl:stylesheet> Wyrażenia XPath wybierające przetwarzane elementy Efekt transformacji do HTML wykonanej po stronie przeglądarki

Metody transformacji XSLT Programista przygotowuje arkusz stylistyczny XSL, opisujący sposób transformacji oryginalnego dokumentu XML Transformacja może być opisana w sposób rekurencyjny, proceduralny lub mieszany Za transformację dokumentu XML odpowiada procesor XSLT Procesory XSLT mogą być dostępne w postaci: Samodzielnych produktów Modułów wchodzących w skład większych produktów Przeglądarek internetowych (np. Microsoft Internet Explorer) Serwerów WWW Modułów bibliotecznych np. bibliotek Java

Co widzi procesor XSLT? Procesor XSLT widzi drzewo dokumentu XML XSLT zakłada, że drzewo składa się z 7 rodzajów węzłów: Korzeń Elementy Tekst Atrybuty Przestrzenie nazw Instrukcje przetwarzania Komentarze DTD i deklaracja typu dokumentu nie są włączane do drzewa (ale mogą powodować dodanie do niektórych elementów atrybutów domyślnych i stałych)

Domyślne reguły transformacji XSL zawiera definicje kilku domyślnych reguł niejawnie dołączonych do wszystkich arkuszy stylów Domyślna reguła elementów Zapewnia, że wszystkie węzły będą przetworzone gdy nie ma jawnych reguł Domyślna reguła węzłów tekstowych i atrybutów Kopiuje tekst i atrybuty na wyjście Domyślna reguła instrukcji przetwarzania i komentarzy Pomija instrukcje przetwarzania i komentarze Domyślne reguły mają niższy priorytet niż wyspecyfikowane jawnie (tzn. obowiązują jeśli nie zostaną przesłonięte) Dzięki powyższym regułom "pusty" arkusz stylów spowoduje przekopiowanie danych tekstowych na wyjście <?xml version="1.0" encoding="windows-1250"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> </xsl:stylesheet>

Transformacja rekurencyjna (1/2) Przykład: Reguły transformacji 1) Każde wystąpienie znacznika <cennik>*</cennik> zamień na: <HTML><BODY><H1>Cennik akcesoriów</H1>*</BODY></HTML> a następnie spróbuj dopasować reguły do zawartości znacznika 2) Każde wystąpienie znacznika <produkt>*</produkt> zamień na: *<BR/> a następnie spróbuj dopasować reguły do zawartości znacznika 3) Każde wystąpienie znacznika <nazwa>*</nazwa> zamień na: <B>*</B> - 4) Każde wystąpienie znacznika <cena>*</cena> zamień na: <I>*</I> PLN 5) Pomiń znacznik <symbol>*</symbol>

Transformacja rekurencyjna (2/2) Przykład: Arkusz stylistyczny XSL <?xml version="1.0" encoding="windows-1250"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="cennik"> <HTML><BODY><H1>Cennik akcesoriów</H1><xsl:apply-templates/></BODY></HTML> </xsl:template> <xsl:template match="produkt"> <xsl:apply-templates/><BR/> <xsl:template match="nazwa"> <B><xsl:value-of select="text()"/></B> - <xsl:template match="symbol"> <xsl:template match="cena"> <I><xsl:value-of select="text()"/></I> PLN </xsl:stylesheet> Wybiera węzeł tekstowy

Transformacja proceduralna (1/2) Przykład: Pseudokod transformacji wyświetl "<HTML><BODY><H1>Cennik akcesoriów</H1>"; dla każdego znacznika <produkt> { wyświetl "<B>"; wyświetl zawartość znacznika <nazwa>; wyświetl "</B> -"; wyświetl "<I>"; wyświetl zawartość znacznika <cena>; wyświetl "</I> PLN<BR/>"; } wyświetl "</BODY></HTML>";

Transformacja proceduralna (2/2) Przykład: Arkusz stylistyczny XSL <?xml version="1.0" encoding="windows-1250"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="cennik"> <HTML><BODY><H1>Cennik akcesoriów</H1> <xsl:for-each select="produkt"> <B><xsl:value-of select="nazwa"/></B> - <I><xsl:value-of select="cena"/></I> PLN <BR/> </xsl:for-each> </BODY></HTML> </xsl:template> </xsl:stylesheet>

Dostęp do atrybutów, dodawanie atrybutów <?xml version="1.0" encoding="windows-1250" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/"> <HTML> <HEAD><TITLE>Cennik</TITLE></HEAD> <BODY> <H1>Cennik akcesoriów</H1> <TABLE> <xsl:attribute name="BORDER">4</xsl:attribute> <TR> <TH>Kod</TH><TH>Symbol</TH> <TH>Nazwa</TH><TH>Cena</TH> </TR> <xsl:for-each select="cennik/produkt"> <TR> <TH><xsl:value-of select="@kod"/></TH> <TD><xsl:value-of select="symbol"/></TD> <TD><xsl:value-of select="nazwa"/></TD> <TD><xsl:value-of select="cena"/></TD> </TR> </xsl:for-each> </TABLE> </BODY> </HTML> </xsl:template> </xsl:stylesheet> Dodanie atrybutu BORDER z wartością 4 do elementu<TABLE> (<TABLE BORDER="4"> też OK.) Dostęp do atrybutu KOD elementu cennik/produkt

Transformacja warunkowa w XSLT <xsl:for-each select="cennik/produkt"> <xsl:if test="symbol='1709765'"> <TR> <TD><xsl:value-of select="symbol"/></TD> <TD><xsl:value-of select="nazwa"/></TD> <TD><xsl:value-of select="cena"/></TD> </TR> </xsl:if> </xsl:for-each> <xsl:for-each select="cennik/produkt"> <TR> <xsl:attribute name="BGCOLOR"> <xsl:choose> <xsl:when test="symbol='1709765'">green</xsl:when> <xsl:when test="symbol='4409724'">yellow</xsl:when> <xsl:otherwise>red</xsl:otherwise> </xsl:choose> </xsl:attribute> <TD><xsl:value-of select="symbol"/></TD> <TD><xsl:value-of select="nazwa"/></TD> <TD><xsl:value-of select="cena"/></TD> </TR> </xsl:for-each>

Sortowanie w XSLT <xsl:for-each select="cennik/produkt"> <xsl:sort select="cena" data-type="number" order="descending"/> <TR> <TD><xsl:value-of select="symbol"/></TD> <TD><xsl:value-of select="nazwa"/></TD> <TD><xsl:value-of select="cena"/></TD> </TR> </xsl:for-each> <xsl:for-each select="cennik/produkt"> <xsl:sort select="nazwa" lang="pl" data-type="text" order="ascending"/> <xsl:sort select="symbol" data-type="number" order="ascending"/> <TR> <TD><xsl:value-of select="symbol"/></TD> <TD><xsl:value-of select="nazwa"/></TD> <TD><xsl:value-of select="cena"/></TD> </TR> </xsl:for-each>

Automatyczne numerowanie w XSLT <xsl:for-each select="cennik/produkt"> <TR> <TD><xsl:number/></TD> <TD><xsl:value-of select="symbol"/></TD> <TD><xsl:value-of select="nazwa"/></TD> <TD><xsl:value-of select="cena"/></TD> </TR> </xsl:for-each> Domyślnie xsl:number zlicza sąsiadujące węzły węzła źródłowego Możliwości zmiany domyślnego zachowania: <xsl:number value="4"/>: wartość wyrażenia <xsl:number level="any"/>: numeracja elementów danego typu w dokumencie <xsl:number ... format="I"/>: I-rzymskie, i-rzymskie małe, a/A - litery ...

Metody wyprowadzania wyniku Dostępne metody: xml, html, text Metodę określa element xsl:output np. <xsl:output method=”xml”> Domyślnie xml, chyba że element główny dokumentu wynikowego to <HTML></HTML> Przy generacji HTML metodą xml dokument musi być well-formed: Znaczniki muszą być zamykane; np. <P>...</P>; znaczniki puste w notacji XML; np. <BR/> Znaczniki nie mogą się nakładać; np. <B> raz <I> dwa </B> trzy </I> jest błędem Wielkość liter istotna; np. <B><i> raz </I></B> jest błędem Wartości atrybutów w cudzysłowach Cały dokument zawarty w <HTML>..</HTML> <?xml version="1.0" encoding="windows-1250"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html" encoding="windows-1250"/> <xsl:template match="cennik"> <HTML> ... </HTML> </xsl:template> </xsl:stylesheet>

Łączenie kilku arkuszy stylów Importowanie – xml:import Może wystąpić tylko w elemencie głównym – xsl:stylesheet – przed innymi elementami Reguły z importowanego arkusza mają niższy priorytet niż reguły zdefiniowane lokalnie Włączanie – xml:include Może wystąpić gdziekolwiek w elemencie głównym po ostatnim elemencie xsl:import Reguły z włączanego arkusza mają taki sam priorytet jak reguły zdefiniowane lokalnie – są traktowane tak jak gdyby były zdefiniowane w miejscu włączenia <?xml version="1.0" encoding="windows-1250"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:import href="importowany1.xsl"/> <xsl:import href="importowany2.xsl"/> ... <xsl:include href="wlaczany.xsl"/> </xsl:stylesheet>