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



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

Rodzaje przetwarzania XSLT (1)

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

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

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT

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

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

Wprowadzenie do XSLT

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

XML Path Language (XPath)

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

Extensible Markup Language III

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

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

Rodzaje przetwarzania XSLT (1) XSLT część 2. Inne standardy związane z XML-em. Rodzaje przetwarzania XSLT (2) Zmienne. Zaawansowane możliwości XSLT

Prezentacja i transformacja

XML extensible Markup Language 3

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

XML extensible Markup Language. część 8

Prezentacja dokumentów XML

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

Wprowadzenie do standardu XSL

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

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

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

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

Prezentacja i transformacja

Prezentacja dokumentów XML

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

XML extensible Markup Language. część 6

Aplikacje internetowe laboratorium XML, DTD, XSL

XML extensible Markup Language. część 3

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

Prezentacja dokumentów XML

Technologie internetowe

Prezentacja dokumentów XML

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

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

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

XML & XSLT. Programowanie w Javie 2

Ogólna struktura dokumentu XSL-FO. Model formatowania. Ogólna struktura dokumentu XSL-FO C.d. Przykład Hello World Użycie szablonu strony

Dlaczego Python jest lepszy od XSLT?

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

XML extensible Markup Language. część 4

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

λ 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

XQuery. XQuery. Przykład. dokument XML. XQuery (XML Query Language) XQuery 1.0: An XML Query Language. W3C Recommendation

Prezentacja dokumentów XML

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

Plan dzisiejszego wykładu. Narzędzia informatyczne w językoznawstwie. XML - Definicja. Zalety XML

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

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

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

Model semistrukturalny

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

XML i nowoczesne technologie zarządzania treścią

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

Podstawowe konstrukcje Podstawowymi konstrukcjami są wzorce element oraz attribute:

Wprowadzenie do standardu XSL

Rok akademicki: 2013/2014 Kod: ZZIP IN-s Punkty ECTS: 2. Kierunek: Zarządzanie i Inżynieria Produkcji Specjalność: Informatyka w zarządzaniu

XML i nowoczesne technologie zarządzania treścią

XML w bazach danych i bezpieczeństwie

extensible Markup Language, cz. 1 Marcin Gryszkalis, mg@fork.pl

XML DTD XML Schema CSS

Literatura. Głównie informacje w sieci:

Interfejs użytkownika I

Aplikacje internetowe. Interfejs użytkownika

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

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

Przykładowy dokument XML

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

Informatyka (10) dr inż. Katarzyna Palikowska Katedra Transportu Szynowego i Mostów p. 4 Hydro

mgr inż. Jacek Staniec Język XML

Podstawy języka XML. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

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

XML i jego zastosowania

Zaawansowany kurs języka Python

Język XML w aplikacjach z bazami danych - po roku

METODY REPREZENTACJI INFORMACJI

Komunikacja i wymiana danych

XML w.net. Dominik Baś nr alb Wrocław, 29 maja 2007

Semistrukturalne bazy danych Wykład dla studentów matematyki


Podstawy (X)HTML i CSS

XSLT. Vademecum profesjonalisty

Ćwiczenia laboratoryjne nr 8 Podstawy języka XML.

Kurs języka Python Wykład 8. Przetwarzanie tekstu Wyrażenia regularne Biblioteka urllib Parsowanie html'a XML

XML extensible Markup Language 7

XML stan obecny i trendy rozwojowe

XML w bazach danych i bezpieczeństwie

Otwarte protokoły wymiany informacji w systemach ITS

UCHWAŁA NR II/17/2014 RADY GMINY PRZODKOWO. z dnia 30 grudnia 2014 r.

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze

UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

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.

Podstawy XML-a. Zaawansowane techniki programowania

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

Rola języka XML narzędziem

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Transkrypt:

Języki formatowania dokumentów strukturalnych XSL przekształcenia XML-a SGML: FOSI (Formatting Output Specification Instance): specyfikacja MIL-PRF-28001, zbyt małe możliwości dla ogólnych zastosowań. DSSSL (Document Style Semantics and Specification Language): ISO/IEC 10179:1996 oparty na podzbiorze języka Scheme bez efektów ubocznych. XML: CSS (Cascading Style Sheets), stosowane m. in. w HTML-u, XSL (Extensible Stylesheet Language): język wysokopoziomowy, deklaratywny, bez efektów ubocznych. 1 2 XSL części składowe XSL a XSLT XSLT (XSL Transformations): język opisu przekształceń dokumentów XML, składnia XML, oparty na dopasowywaniu wzorców, przestrzeń nazw: http://www.w3.org/1999/xsl/transform, rekomendacja W3C z 16 listopada 1999 r. XPath (XML Path Language): język opisu referencji do fragmentów dokumentu XML. XSL:FO (XSL Formatting Objects): słownik XML-owy pozwalający definiować formatowanie, przestrzeń nazw: http://www.w3.org/1999/xsl/format, opisany w rekomendacji XSL 1.0 z 15 października 2001 r. Źródło: Extensible Stylesheet Language (XSL) Version 1.0, W3C Recommendation 15 October 2001 (http://www.w3.org/tr/xsl/) 3 4 Arkusze stylów a przekształcenia Zasada działania przekształcenia XSLT Reguła XSLT: CSS arkusze stylów FOSI XSL faktura PDF DSSSL XSLT faktura HTML przekształcenia XSLT zamówienie faktura Omnimark ustawa (RTF) ustawa (XML) ścieżka XPath określająca węzły, dla których reguła obowiązuje, treść "wykonywana" w przypadku uruchomienia reguły: tekst i elementy wypisywane na wyjście, instrukcje XSLT. Sposób przetwarzania: wykonaj regułę dla węzła /, reguła może rekurencyjnie wywołać reguły dla innych węzłów. 5 6 1

Arkusz stylów/przekształcenie XSLT Podstawy składni przykład Element główny: xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:import href=""/> <xsl:output-method="html"/> <xsl:param name=""></xsl:param> Output methods: xml, html, text. Określanie arkusza stylów dla dokumentu: <?xml-stylesheet type="text/xsl" href=""?> <?xml version="1.0"?> xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:template match="wiersz"> <poemat> <tytul><xsl:value-of ="@tytul"/></tytul> </poemat> <xsl:template match="zwrotka"> <odstęp/> <xsl:template match="wers"> <p></p> 7 8 Przekształcenie przykład Wbudowane reguły <wiersz tytul="***"> <zwrotka> <wers>aaa</wers> <wers>bbb</wers> </zwrotka> <zwrotka> <wers>ccc</wers> <wers>ddd</wers> </zwrotka> </wiersz> <poemat><tytul>***</tytul> <p>aaa</p> <p>bbb</p> <odstęp/> <p>ccc</p> <p>ddd</p> <odstęp/> </poemat> <xsl:template match="* /"> <xsl:template match="text() @*"> <xsl:value-of ="."/> <xsl:template match="processing-instruction() comment()"/> 9 10 Wybór reguły spośród wielu pasujących Generowanie dokumentu wyjściowego Atrybut priority elementu xsl:template. Wybór pomiędzy regułami o najwyższym prorytecie wg rodzaju testu: węzeł określonego typu o określonej nazwie: 0, węzeł określonego typu należący do określonej przestrzeni nazw: -0.25, węzeł określonego typu: -0.5, inne (bardziej specyficzne): 0.5. Elementy i tekst literalnie podane w przekształceniu. Instrukcje generujące: <xsl:value-of =string-expression/> <xsl:element name=/> <xsl:attribute name=/> <xsl:text/> <xsl:processing-instruction name=/> <xsl:comment/> <xsl:copy/> 11 12 2

Rodzaje przetwarzania XSLT (1) Rodzaje przetwarzania XSLT (2) Przetwarzanie sterowane strukturą dokumentu źródłowego: przechodzimy po strukturze dokumentu źródłowego, generujemy fragmenty struktury dokumentu wyjściowego. <xsl:template match=""> Przetwarzanie sterowane strukturą dokumentu wyjściowego: jedna duża reguła dla węzła root, generujemy strukturę dokumentu docelowego, wyciągamy odpowiednie wartości z dokumentu źródłowego. xmlns:xsl="http://www.w3.org/1999/xsl/transform" xmlns="http://www.w3.org/tr/xhtml1/strict"> <xsl:template match="/"> <html><head><title>expense Report Summary</title></head> <body> <h1>company: <xsl:value-of ="company/name"/></h1> <p>total Amount: <xsl:value-of ="expense-report/total"/></p> </body> </html> 13 14 Przetwarzanie warunkowe: if Przetwarzanie warunkowe: choose <xsl:template match="item"> <tr> <xsl:if test="position() mod 2 = 0"> <xsl:attribute name="bgcolor">yellow</xsl:attribute> </xsl:if> </tr> <xsl:template match="orderedlist/item"> <xsl:variable name="level" ="count(ancestor::orderedlist) mod 3"/> <xsl:choose> <xsl:when test='$level=1'> <xsl:number format="i"/> </xsl:when> <xsl:when test='$level=2'> <xsl:number format="a"/> </xsl:when> <xsl:otherwise> <xsl:number format="1"/> </xsl:otherwise> </xsl:choose> <xsl:text>. </xsl:text> <xsl:apply-templates> 15 16 Pętle Sortowanie <xsl:template match="index"> <h1>index</h1> <xsl:for-each ="//keyword"> <p><xsl:value-of ="text()"/></p> </xsl:for-each> Instrukcja sortowania: <xsl:sort = data-type=["text" "number"] order=["ascending" "descending"]/> może występować wewnątrz apply-templates i for-each. <table> <row><cell>3000</cell><cell>xyz</cell></row> <row><cell>2500</cell><cell>abc</cell></row> </table> <xsl:template match="table"> <table> <xsl:apply-templates ="row"> <xsl:sort data-type="number" ="./cell[1]"/> </xsl:apply-templates> </table> 17 18 3

Zmienne Nazwane wzorce i parametry Jak w funkcyjnych językach programowania: brak instrukcji przypisania, brak efektów ubocznych. Deklaracja: <xsl:variable name=/> wartość: atrybut wyrażenie odpowiedniego typu, zawartość elementu fragment drzewa wynikowego, Użycie: w wyrażeniach: $name, <xsl:copy-of =expression/> <xsl:template name="tablerow"> <xsl:param name="color">#000000</xsl:param> <tr> <td> <xsl:attribute name="bgcolor"> <xsl:value-of ="$color"/> </xsl:attribute> </td> </tr> <xsl:call-template name="tablerow"> <xsl:with-param name="color">#ffffff"</xsl:with-param> </xsl:call-template> 19 20 Użycie zmiennych w wyrażeniach Użycie wyrażeń w atrybutach Element XSLT apply-templates value-of number for-each if when sort Atrybut value test test Szablony wartości atrybutów: mogą zawierać wyrażenia pomiędzy nawiasami {}. Element XSLT literalny element dokumentu wyjściowego element attribute number sort processing-instruction Atrybuty dowolny atrybut name, namespace name, namespace level, count, from, format, lang, grouping-separator, grouping-size order, lang, data-type, case-order name 21 22 Modes Wybrane funkcje Atrybut mode elementów: template (tylko z atrybutem match), apply-templates. Możliwość implementacji niezależnych trybów przetwarzania. Node-set reprezentujący inny dokument: document(uri) <xsl:variable name="bledy" ="document('slownik_bledow.xml')"/> Unikalny identyfikator węzła: generate-id(node-set) Bieżący węzeł: current() uwaga: różnica między węzłem bieżącym a węzłem kontekstowym: <xsl:apply-templates ="item[@name=current()/@ref]"/> <xsl:apply-templates ="item[@name=./@ref]"/> 23 24 4

Formatting Objects przykład drzewa wynikowego <?xml version="1.0" encoding="utf-8"?> <fo:root xmlns:fo="http://www.w3.org/1999/xsl/format"> <fo:page-sequence> <fo:flow> <fo:block font-size="18pt" font-weight="bold" text-align="centered">preface</fo:block> <fo:block font-size="12pt" space-before="1pc" text-align="justified"> This is a simple test document. It shows a <fo:inline font-style="italic">partial</fo:inline> fo-result tree (page layout missing).</fo:block> </fo:flow> </fo:page-sequence> </fo:root> Formatting Objects przykłady reguł <xsl:template match="chapter"> <fo:flow></fo:flow> <xsl:template match="chapter/title"> <fo:block font-size="18pt" font-weight="bold" text-align="centered"> </fo:block> <xsl:template match="para"> <fo:block font-size="12pt" space-before="1pc" text-align="justified"> </fo:block> <xsl:template match="emphasis"> <fo:inline font-style="italic"> </fo:inline> 25 26 Narzędzia Rozwój XSL-a Procesory XSLT: XT Jamesa Clark a, Oracle XML Parser for Java / C / PL-SQL LotusXSL (IBM alphaworks), Microsoft XML Core Services (MSXML 4.0), XML::XSLT (Perl), Procesor XSL:FO: FOP (open source; generuje dokumenty w formacie PDF). Edytory XSLT: IBM XSL Editor (IBM alphaworks), Inso XSL/CSS Editor, XSL Authoring Studio, Homesite XSL Authoring Toolbar. XSLT 2.0 Working Draft: wsparcie dla XML Schema, grupowanie węzłów (for-each-group), definiowanie i wywoływanie własnych funkcji, generowanie wielu dokumentów wyjściowych, 27 28 5