XSL – część 2.

Slides:



Advertisements
Podobne prezentacje
I część 1.
Advertisements

Przekształcanie dokumentów XML - XSL
Piotr Szwed Katedra Automatyki AGH
Rafał Hryniów Tomasz Pieciukiewicz
Łódź, 29 października 2012 roku
Implementacja procesora XSLT w języku Ocaml
Programowanie w Internecie (Internet Programming) Krystyna Dziubich p. 521 XSL Formatting Objects.
Bazy danych II Instrukcja SELECT Piotr Górczyński 25/08/2001.
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.
11 Poprawne modele zawartości. Zarządzanie zmianami struktury.
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.
XSLT – część 2. Inne standardy związane z XML-em
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.
XML w integracji aplikacji
Definiowanie typów dokumentów Część 2: XML Schema 16 października 2003.
XML w zarządzaniu formularzami ubezpieczeniowymi ZUS
Inne standardy związane z XML-em XSLT – część 22 XPath 2.0 / XSLT 2.0 / XQuery 1.0 XML Schema system typów XQuery 1.0 and XPath 2.0 Data Model.
Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema.
Visual Studio Codename „Orcas”, LINQ
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.
11 Dowiązania w XML-u. Formy architektoniczne.. 22 XLink – dowiązania w XML-u Linki jakie znamy (HTML): łączą dwa dokumenty: źródło i cel linku, źródłem.
Poprawne modele zawartości. Zarządzanie zmianami struktury.
11 Definiowanie typów dokumentów. 22 Jak wygląda XML? st. asp. Jan Łapówka Dołowice Górne Wypadek dnia r o godzinie 13:13 ( piątek ) miał miejsce.
XPath. XSL – część 1..
Silnia
11 Przypomnienie: zaliczenie ćwiczeń Kolokwium zaliczeniowe na ćwiczeniach 16 maja: zadania z technik omawianych na ćwiczeniach, można korzystać z notatek.
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.
Technologie XML Mgr inż. Michał Jaros Technologie XML wykład 3.
Maciej Zabielski 15 stycznia 2003
Dokumentowanie wymagań w języku XML
XPath, XSLT, (and XSL:FO)
XML, DTD, Schema Zaawansowane Aplikacje Internetowe Dawid Weiss.
Kaskadowe arkusze stylów – CSS
Standardy tworzenia dokumentów [Michał Kuciapski ]
Instrukcje 1 Definicje wstępne Formalny opis akcji wykonywanej przez komputer nazywamy instrukcją ( statement), Każda instrukcja kończona jest średnikiem.
Tablice jednowymiarowe 1
Komunikacja z arkuszem. Iteracje. Funkcje.

Projektowanie warstwy serwera Współpraca z XML. Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu.
Programowanie w Internecie 2 Ćwiczenie 4 – Transformacja danych Prowadzący: Rajmund Pączkowski.
Wprowadzenie do JSP Copyright © Politecnico di Milano September 2003 Translation: Kamil Żyła, Politechnika Lubelska.
Spring IDE Spring Framework + Eclipse 1. Code-House Mała firma Duzi klienci Jeszcze większe aspiracje Nasze cele Promowanie komercyjnego wykorzystania.
XML – eXtensible Markup Language 4. XSL transformations (XSLT) XSLT (ang. eXtensible Stylesheet Language Transformations) jest opartym na XML językiem.
Przegląd prac prowadzonych nad elektroniczną postacią aktów prawnych Jarosław Deminet Projekt jest współfinansowany ze środków Unii Europejskiej w ramach.
PHP: warunki, pętle, switch, break, continue
Programowanie obiektowe – zastosowanie języka Java SE
Autor: Joanna Barańska Promotor: dr inż. Paweł Figat Konsultant:
Zajęcia I Organizacja zajęć Rejestracja i uruchamianie makr
PL/SQL – dalsza wędrówka
Projektowanie stron WWW
XML Publisher Przedmiot i zakres szkolenia Przedmiot i zakres szkolenia Przeznaczenie XML Publisher Przeznaczenie XML Publisher Definiowanie Definiowanie.
Temat 8: Pętle.
Piotr Czapiewski Wydział Informatyki ZUT. Web Services Description Language.
Adresowanie elementów struktury dokumentów - XPath.
XML w bazach danych.
Obiektowe metody projektowania systemów XML eXtensible Markup Language.
I TY ZOSTAŃ WEBMASTEREM! CZĘŚĆ 2 – „STRUKTURA STRONY” STWORZYŁ GABRIEL ŚLAWSKI.
Podsumowanie wiedzy MPDI2 sem.3 INFORMATYKA. tworzenie nowego pliku i katalogu, nawigacja po katalogach, listowanie zawartości katalogu, zmiana nazw,
Seminarium Dyplomowe: Metodyka i Techniki Programowania Autor: Bartłomiej Fornal.
Instrukcje warunkowe w php. Pętla FOR Czasem zachodzi potrzeba wykonania jakiejś czynności określoną ilość razy. Z pomocą przychodzi jedna z najczęściej.
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
Aplikacje internetowe XML Paweł Lenkiewicz. Aplikacje internetowe – XML2 eXtensible Markup Language Uniwersalny język opisu danych Często używany we współpracy.
Planeta Actimedia: Planning
Podstawy tworzenia skryptów
Zapis prezentacji:

XSL – część 2

Generowanie dokumentu wyjściowego Elementy i tekst literalnie podane w przekształceniu. Instrukcje generujące: <xsl:value-of select=string-expression/> <xsl:element name=.../> <xsl:attribute name=.../> <xsl:text/> <xsl:processing-instruction name=.../> <xsl:comment/> <xsl:copy/>

Przetwarzanie warunkowe: if <xsl:template match="item"> <tr> <xsl:if test="position() mod 2 = 0"> <xsl:attribute name="bgcolor">yellow</xsl:attribute> </xsl:if> <xsl:apply-templates/> </tr> </xsl:template>

Przetwarzanie warunkowe: choose <xsl:template match="orderedlist/item"> <xsl:variable name="level" select="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> </xsl:template>

Pętle <xsl:template match="index"> <h1>Index</h1> <xsl:for-each select="//keyword"> <p><xsl:value-of select="text()"/></p> </xsl:for-each> </xsl:template>

Sortowanie Instrukcja sortowania: <xsl:sort select=... 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 select="row"> <xsl:sort data-type="number" select="./cell[1]"/> </xsl:apply-templates> </table> </xsl:template>

Zmienne Jak w funkcyjnych językach programowania: brak instrukcji przypisania, brak efektów ubocznych. Deklaracja: <xsl:variable name=.../> wartość: atrybut select  wyrażenie odpowiedniego typu, zawartość elementu  fragment drzewa wynikowego, Użycie: w wyrażeniach: $name, <xsl:copy-of select=expression/>

Użycie zmiennych w wyrażeniach Element XSLT Atrybut apply-templates select value-of number value for-each if test when sort

Użycie wyrażeń w atrybutach Szablony wartości atrybutów: mogą zawierać wyrażenia pomiędzy nawiasami {}. Element XSLT Atrybuty literalny element dokumentu wyjściowego dowolny atrybut element name, namespace attribute number level, count, from, format, lang, grouping-separator, grouping-size sort order, lang, data-type, case-order processing-instruction name

Nazwane wzorce i parametry <xsl:template name="tablerow"> <xsl:param name="color">#000000</xsl:param> <tr> <td> <xsl:attribute name="bgcolor"> <xsl:value-of select="$color"/> </xsl:attribute> <xsl:apply-templates/> </td> </tr> </xsl:template> ... <xsl:call-template name="tablerow"> <xsl:with-param name="color">#FFFFFF"</xsl:with-param> </xsl:call-template> ...

Wykorzystanie rekursji w XSLT (1) Sposób na brak "prawdziwych" zmiennych i pętli iteracyjnych. Przykład: <xsl:template name="Books"> <xsl:param name="cnt" select="1"/> <xsl:if test="$cnt > 0"> <book> <tr><xsl:apply-templates/></tr> </book> <xsl:call-template name="Books"> <xsl:with-param name="cnt" select="$cnt - 1"/> </xsl:call-template> </xsl:if> </xsl:template>

Wykorzystanie rekursji w XSLT (2) Przykład – c.d.: <xsl:template match="book"> <xsl:when test="@count"> <xsl:call-template name="Books"> <xsl:with-param name="cnt" select="@count"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="Books"/> </xsl:otherwise> </xsl:template>

Jak napisać własną funkcję w XSLT? <xsl:template name="sum"> <xsl:param name="nodes"/> <xsl:param name="result" select="0"/> <xsl:choose> <xsl:when test="$nodes"> <xsl:call-template name="sum"> <xsl:with-param name="nodes" select="$nodes[position!=1]"/> <xsl:with-param name="result" select="$result*nodes[1]"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$result"/> </xsl:otherwise> </xsl:choose> </xsl:template> ... <xsl:variable name="total"> <xsl:call-template name="sum"> <xsl:with-param name="nodes" select="//price"/> </xsl:call-template> </xsl:variable>

Modes Atrybut mode elementów: template (tylko z atrybutem match), apply-templates. Możliwość przełączania między niezależnymi trybami przetwarzania.

Wybrane funkcje Node-set reprezentujący inny dokument: document(URI) <xsl:variable name="bledy" select="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 select="item[@name=current()/@ref]"/> <xsl:apply-templates select="item[@name=./@ref]"/>

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><xsl:apply-templates/></fo:flow> </xsl:template> <xsl:template match="chapter/title"> <fo:block font-size="18pt" font-weight="bold" text-align="centered"> <xsl:apply-templates/> </fo:block> </xsl:template> <xsl:template match="para"> <fo:block font-size="12pt" space-before="1pc" text-align="justified"> <xsl:apply-templates/> </fo:block> </xsl:template> <xsl:template match="emphasis"> <fo:inline font-style="italic"><xsl:apply-templates/> </fo:inline> </xsl:template>

Narzędzia Procesory XSLT: XT Jamesa Clarka (Java), Oracle XML Parser for Java / C / PL-SQL, Xalan (Java, C++), 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, XML Spy 5.0, Homesite XSL Authoring Toolbar.

Rozwój XSL-a 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, ... XPath 2.0 Working Draft wyrażenia warunkowe (if i inne), kwantyfikatory, typ "sekwencja", pętle,

Case study XML w zarządzaniu formularzami ubezpieczeniowymi ZUS Część 2

Przypomnienie: przykład dokumentu KEDU Widzimy poskracaną wersję reprezentacji elektronicznej formularza z poprzedniego slajdu Główny element – KEDU2 Element RCB – odpowiada całemu dokumentowi ZUS RCB Bloki I, II i V są „zwinięte” Blok III jest rozwinięty w całości Pole RCB.III.B.08 składa się z dwóch segmentów Do pola RCB.III.B.12 została przypięta korekta systemowa Do całego bloku RCB.III przypięto błędy

Wizualizacja formularzy Problemy: duża złożoność wizualizowanej informacji duża objętość wizualizowanych dokumentów Rozwiązanie: podział dokumentu KEDU na poszczególne formularze arkusze stylów (transformacje) XSLT generator arkuszy stylów na podstawie informacji o budowie formularza

Schemat wizualizacji Arkusz stylów Szablon Generator arkuszy stylów KEDU RCB DRSB ZEUB RSB RCB Blok powtarzalny RCB wycięcie dokumentu wycięcie instancji Szablon Generator arkuszy stylów Arkusz stylów Wizualizacja HTML

Przykład wizualizacji Empolis Polska