XSLT Marko Harasic Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme

Slides:



Advertisements
Ähnliche Präsentationen
8. Termin Teil B: Wiederholung Begriffe Baum
Advertisements

Druck / Ausgaben unter LSF
Anmerkungen zu XML Im September 2000 Entwicklung/Anspruch von XML
Suche in Texten (Stringsuche )
1. Einführung. 1. Einführung Inhalt Einführung Vorlagen XPath Kontrollstrukturen Sortierung, Gruppierung und Nummerierung Parameter und Variablen Ein-
Seminar: XML für Fortgeschrittene Referent: Katrin Apel
XML - Aufbau und Struktur - mit Einsatz im B2B
Hands On – Einführung in XML
IMS Universität Stuttgart 1 Einführung in XML Hannah Kermes HS: Elektronische Wörterbücher Do,
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
DOM (Document Object Model)
Polymorphie (Vielgestaltigkeit)
XINDICE The Apache XML Project Name: Jacqueline Langhorst
© 2002 Prof. Dr. G. Hellberg 1 XML-Seminar XML-Technologie: XML in Theorie und Praxis Prof. Dr. G. Hellberg XML-Technologie: XML in Theorie und Praxis.
XHTML 1.1 C. Nimz Abstrakte Module XHTML 1.1 C. Nimz Was ist ein abstraktes Modul? Definition eines XHTML-Moduls in spezieller leichter.
Überblick XML: Extensible Markup Language Entwickelt, um Informationen bereitzustellen, zu speichern und zu übertragen Im Gegensatz zu HTML keine vordefinierten.
XSL eXtensible Stylesheet Language. © Prof. T. Kudraß, HTWK Leipzig Was ist XSL? Analogie zu CSS in HTML XSL ist eine Sprache, die ein wohlgeformtes XML-Dokument.
XML Standardisierungen und Abfragesprachen
Einführung XML XML Einführung Andreas Leicht.
DVG Klassen und Objekte
© data2type 2005, 1 Publishing mit XML Einsatz von XSL für das multimediale, automatisierte Publishing.
XML – Grundlagen und Anwendungen Teil 6: Verarbeitung von XML-Dokumenten: XSLT Prof. Dr. Michael Löwe, FHDW Hannover.
Tobias Högel & Dennis Böck,
Cascading Style Sheets CSS
1 Grundlagen und Anwendung der Extensible Markup Language (XML ) Peter Buxmann Institut für Wirtschaftsinformatik Johann Wolfgang Goethe-Universität Frankfurt.
FH-Hof 1 XML-Parser Richard Göbel. FH-Hof 2 XML-Parser- DOM Object Tree Parser Objekt der Klasse 'DocumentBuilderFactory' mit 'newInstance()' erzeugen.
XSLT.
Wir bauen uns eine Webapplikation!
Einsatzgebiete und Anwendungen
BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 11.Sitzung WS 02/03.
Wird ganz am Anfang der HTML-Datei geschrieben Doctype html public bedeutet, dass man sich auf die Öffentlichkeit der html-dtd bezieht Html ist die meist.
XSL und XSLT1 eXstensible Stylesheet Language und eXstensible Stylesheet Language Transformation.
Übersicht Was ist cocoon? Separation of Concerns Pipeline Modell
Wohlgeformtheit und Gültigkeit Grundlagen der Datenmodellierung Anke Jackschina.
Ausgabe vom Seite 1, XML Eine Einführung XML - Eine Einführung.
Oliver Spritzendorfer Thomas Fekete
XSLT Voraussetzungen, trivial
Gruppe 5. Einleitung ElzbietaChristofTommy SimonIngoMax.
XML (Extensible Markup Language)
ADAT©2004 Dipl. - Ing. Walter SabinSeite: 1 Version 1.0a XML EXTENSIBLE MARKUP LANGUAGE.
Algorithmen und Datenstrukturen Übungsmodul 8
XSL in der Praxis Anwendungsbeispiele für die eXtensible Stylesheet Language Andreas Kühne XML One 2000.
Drucken mit XSL-FO DaimlerChrysler  Drucken von Webseiten
© 2001 Sven Dammann1 Aufbau Integrierter Informationssysteme XML Bearbeitung und relationale Abbildung Sven Dammann Martin-Luther-Universität Halle-Wittenberg.
CSS Cascading Style Sheets
XQuery 1.0 – Arbeitsweise Mögl. Eingaben Das wird berücksichtigt: Typen von XPath und XML Schema Namensräume, Module Ergebnis: XML-Instanz.
Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema XML, DTDs und XML-Schema - Stefan Kurz, 25. April 2003.
Bern University of Applied Sciences Engineering and Information Technology Documentation generator for XML-based description standards Ausgangslage: Die.
IT-Zertifikat der Phil.Fak Kurs 4: Daten- und Metadatenstandards Patrick Sahle XML-BasicsWS 08/09.
Geoinformation3 Geoinformation III XML Grundlagen und Dokumentspezifikation Vorlesung 12b.
IT-Zertifikat_Seminar: Metadatenstandards XSLT Eine Transformationssprache.
1 Java und XML Stephan Baldes Warum XML? In welchem Format wurden die Daten gespeichert? Bernd;Thomas;3;5;1987;Freiburg;Karlsruhe Peter;Maier;7;9;1980;Karlsruhe;Freiburg.
Binärbäume.
XSLT I Re-usable Content in 3D und Simulationssystemen Dozent: Prof. Manfred Thaller Referentin: Elisabeth Chang.
XML Technologie für NOKIS Software Wassilios Kazakos, Andreas Schmidt, Alexei Valikov, Alexei Akhounov FZI Forschungszentrum Informatik Karlsruhe
5.Februar 2007 – 1Vorlesung Elektronisches Publizieren: Formatierung von XML-Dokumenten mit XSL Formatierung von XML-Dokumenten — XSL — Anne Brüggemann-Klein.
Einführung. Ziel der Veranstaltung  Vermittlung von Grundkenntnissen in C++  Solide Basis für anschließende Weiterentwicklung  Fähigkeit, kleine Programme.
Document Type Definitions (DTDs) Marko Harasic Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme
Datentransformation mit XSLT Seminarvortrag von Johannes Engels.
Funktionen (Zweck und Eigenschaften) Funktionen sind Unterprogramme, die einen bestimmten Zweck erfüllen Sie zerlegen Probleme in kleine, abgeschlossene.
MONITOR - Materialverfolgung...vom Lieferanten über den Wareneingang bis zum Kunden... weiter.
IS: Datenbanken, © Till Hänisch 2000 Relationenalgebra Die mathematische Grundlage von relationalen Datenbanken.
Datentypen: integer, char, string, boolean
Von Oracle Reports zum BI Publisher
1. Die rekursive Datenstruktur Liste 1
DB2 – SS 2019 von Baum allgemein bis B*-Baum
DB2 – SS 2019 von Baum allgemein bis B*-Baum
 Präsentation transkript:

XSLT Marko Harasic Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme

2 Sprachfamilie AG Netzbasierte Informationssysteme Quelle:

3 XSL eine Familie von Sprachen zur Erzeugung von Layouts für XML-Dokumente keine vordefinierten Tags besteht aus: XPath – Navigations-/Selektion für XML-Dokumente XSLT – Transformationssprache für XML-Dokumente XSL-FO – Formatierungssprache für XML-Dokumente AG Netzbasierte Informationssysteme XSL beschreibt, wie XML-Dokumente dargestellt werden sollen

4 Warum XML transformieren? Trennung Inhalt und Präsentation XML trennt Inhalt von Präsentation (Layout) Für eine entsprechende Darstellung müssen XML-Inhalte transformiert werden: XML-Inhalt  Layout Inhaltliche Transformationen Daten mit XML repräsentiert unterschiedliche Sichten (Views) auf XML-Inhalte erfordern Transformationen: XML-Inhalt  XML-Inhalt AG Netzbasierte Informationssysteme

5 XML-Inhalt  Layout Multi-Delivery: unterschiedliches Layout von Inhalten Beachte: XHTML, WML XML AG Netzbasierte Informationssysteme ASCII EXCEL XHTML Transformation (XSLT) WML Inhalt (XML)

6 AG Netzbasierte Informationssysteme XML-Inhalt  XML-Inhalt Zulieferer Großhandel interner Kundenauftrag  Name des Verkäufers  Datum  Produktbezeichnung aus Großhandelskatalog  Anzahl  Kunde externer Zulieferauftrag  Datum  Produktbezeichnung aus Zuliefererkatalog  Anzahl  Auftraggeber übernehmen anpassen

7 AG Netzbasierte Informationssysteme XML-Inhalt  XML-Inhalt John Doe Production-Class Widget Sally Finkelstein Company A 2000/1/13 E16-25A Production-Class Widget 16 Kundenauftrag Zulieferauftrag andere Sicht (view) auf XML-Inhalt

eXtensible Stylesheet Language Transformation (XSLT) - Einführung

9 Was ist XSLT? in XML beschriebene Sprache zur Transformation von XML-Dokumenten XSLT-Programme (stylesheets) haben XML-Syntax plattformunabhängig erlaubt XML-Dokumente in beliebige Textformate zu transformieren: XML  XML/HTML/XHTML/WML/RTF/ASCII … W3C-Standard seit 1999 AG Netzbasierte Informationssysteme

10 AG Netzbasierte Informationssysteme Allg. Schema der Transformation XML- Dokument XSLT- Stylesheet XSLT-Prozessor Ergebnis- Dokument Quelle: H. Vonhoegen „Einstig in XML: Grundlagen, Praxis, Referenzen“,ISBN , 2007 Verknüpfung zwischen Stylesheet & Dokument im Dokument …

11 XSLT Prozessoren Xalan Open Source XSLT-Prozessor default Xerces XML-Parser unterstützt W3C Recommendations: XSLT 1.0 & XPath 1.0 Xalan C (C++) & Xalan J (Java) SAXON Open Source XSLT-Prozessor Mittlerweile viele weitere AG Netzbasierte Informationssysteme

12 Programmierparadigma XSLT-Programm (stylesheet) = Menge von Transformationsregeln Transformationsregel (template) Für einen passenden Knoten X erzeuge aus X im Ursprungsdokument Y im Ergebnisdokument Beispiel: Identifizierung von Unterstrukturen mit XPath AG Netzbasierte Informationssysteme … Item … Item 

13 AG Netzbasierte Informationssysteme Schema der Transformation im Detail XML- Dokument XSLT- Stylesheet XSLT- Prozessor Ergebnis- dokument Quelle: H. Vonhoegen „Einstig in XML: Grundlagen, Praxis, Referenzen“,ISBN , 2007 Quelldokumentenbaum/ Ursprungsbaum Stylesheetbaum Ergebnisbaum

14 AG Netzbasierte Informationssysteme Weitere Programmierparadigmen XSLT-Transformationsregeln immer auf Ursprungsdokument(en) angewandt, niemals auf Zwischenergebnissen keine Seiteneffekte: Template angewandt auf X liefert immer das gleiche Ergebnis = Templates haben keine Zustände  keine Variablen, die überschrieben werden können  funktionales Programmierparadigma

15 AG Netzbasierte Informationssysteme Grundstruktur von Stylesheets <xsl:stylesheet xmlns:xsl=" version="1.0"> … XML-Dokument Dokument-Wurzel: stylesheet oder transform aus entsprechendem W3C- Namensraum stylesheet und transform gleichbedeutend obligatorisches Attribut: version

16 AG Netzbasierte Informationssysteme Grundstruktur von Stylesheets <xsl:stylesheet xmlns:xsl=" version="1.0"> … Template (Template-Regeln) Muster

17 Inhalte erzeugen „Nehme aktuellen Knoten und wende passendes Template an. Wenn keins vorhanden passen die Default Templates.“ Nicht ganz zutreffend: „Suche im Ursprungsdokument Unterstruktur X und erzeuge hieraus Ergebnisdokument Y!“ (ungefähr…) zwei Möglichkeiten, Y zu erzeugen: neue Inhalte erzeugen Inhalte von X nach Y übertragen. beide Möglichkeiten beliebig miteinander kombinierbar AG Netzbasierte Informationssysteme

18 1. Neue Inhalte erzeugen (I) Templates können alle XML-Inhalte erzeugen: PCDATA, Elemente und Attribute einfach normale XML-Syntax verwenden: Beachte: Stylesheets müssen wohlgeformte XML- Dokumente sein, daher z.B. nicht erlaubt: AG Netzbasierte Informationssysteme neuer Text neuer Text

19 1. Neue Inhalte erzeugen (II) statt üblicher XML-Syntax auch möglich: AG Netzbasierte Informationssysteme neuer Text color:red neuer Text

20 2. Inhalte übertragen Element Kopiert aktuellen Teilbaum aktueller Teilbaum: Baum, der vom aktuellen Knoten aufgespannt wird, einschließlich aller Attribute und PCDATA Element Kopiert aktuellen Knoten ohne Kind-Elemente, Attribute und PCDATA Kopiert nur Wurzel-Element des aktuellen Teilbaums Element Extrahiert PCDATA, das im aktuellen Teilbaum vorkommt AG Netzbasierte Informationssysteme

21 AG Netzbasierte Informationssysteme Beispiel Compare these constructs. Compare these constructs. Compare these constructs. Ergebnisdokument

22 AG Netzbasierte Informationssysteme XSLT-Prozessor im Transformationsprozess Quelle: H. Vonhoegen „Einstig in XML: Grundlagen, Praxis, Referenzen“,ISBN , 2007 Was genau passiert hier? XML- Dokument XSLT- Stylesheet XSLT- Prozessor Ergebnis- dokument Quelldokumentenbaum/ Ursprungsbaum Stylesheetbaum Ergebnisbaum

23 Funktionsweise des XSLT-Prozessors a) K := Dokument-Wurzel ("/") des Ursprungsdokumentes b) Identifiziere alle Templates, die auf K anwendbar sind. 1.Ist genau ein Template anwendbar wende es an Fertig. 2.Sind mehre Templates anwendbar, dann wende das speziellste an z.B. ist "/order" spezieller als "/*". Fertig. 3.Ist kein Template anwendbar wiederhole b) für alle Kinder K' von mit K := K'. AG Netzbasierte Informationssysteme

24 Template-Konflikte mehrere Templates auf den gleichen Knoten anwendbar Lösung  Prioritätsregeln: 1.Eine spezifische Information hat Vorrang vor einer Regel für allgemeinere Information Beispiel:match=“/buch/authors/autor“ match=“//autor“ 2.Suchmuster mit Wildcards (* sind allgemeiner als entsprechende Muster ohne Wildecards 3.Nur wenn 1. & 2. nicht zutreffen  Reihenfolge der Templates entscheidend 4.Priorität der Templates durch Attribut priority bestimmbar Standard = 0 niedrigere Priorität < 0 < höhere Priorität AG Netzbasierte Informationssysteme

25 AG Netzbasierte Informationssysteme Transformations-Beispiel a1 a2 Stylesheet kein Template anwendbar Template "A" wird angewandt Template "B" wäre anwendbar, es werden aber keine Templates aufgerufen! Template "A" wird angewandt Dokument Ausgabe

26 AG Netzbasierte Informationssysteme Templates mit Rekursion a1 b1 b2 a2 b3 b4 c1 d1 b5 c2 Stylesheet Dokument Ausgabe

27 Rekursive Anwendung aller Templates versucht Templates auf Kinder des aktuellen Knotens anzuwenden Kind bedeutet hier: Kind-Element, Text-Knoten oder Attribut-Knoten Mit auch rekursiver Aufruf an beliebiger Stelle möglich Vorsicht: Terminierung nicht automatisch sichergestellt! Beispiel: AG Netzbasierte Informationssysteme

28 AG Netzbasierte Informationssysteme Iteration statt Rekursion b1 b2 b3 b4 c1 b5  xsl:value-of wird auf alle select-Pfade der for-each- Schleife angewandt.  Beachte: select-Pfad von xsl:for-each relativ zum Kontext-Knoten des Templates, hier also "A/*"

XSLT – Templates: vordefinierte Templates

30 Vordefinierte Templates 1. vordefiniertes Template realisiert rekursive Anwendung, wenn kein Template auf den aktuellen Knoten passt 2. vordefiniertes Template kopiert PCDATA des aktuellen Knotens in das Ergebnisdokument Leeres Stylesheet traversiert gesamtes Ursprungsdokument und extrahiert dabei PCDATA und Attribut-Werte Überschreiben Vordefinierte Templates können durch speziellere Templates überschrieben werden AG Netzbasierte Informationssysteme

31 1. vordefiniertes Template 1. wird zuerst auf Dokument-Wurzel ("/") angewandt 2. versucht alle Templates anzuwenden 3. wird auf alle Kind-Elemente ("*") angewandt realisiert rekursive Anwendung des XSLT-Prozessors wird von jedem speziellerem Template überschrieben: z.B. sind "/" und "item" spezieller als "*|/" spezielleres Template anwendbar  keine automatische rekursive Anwendung AG Netzbasierte Informationssysteme

32 2. vordefiniertes Template Template wird auf PCDATA text() angewandt text(): XPath-Funktion, selektiert PCDATA Template überträgt PCDATA in das Ergebnisdokument AG Netzbasierte Informationssysteme

33 Ausgabe von Attributen Wählt nicht PCDATA und Attributwerte aus? Ja, aber! Attribut A des Element E Hat E als Elternknoten in der Datenstruktur Ist kein Kindknoten von E in XML Template muss für die Ausgabe von Attribut erweitert werden, z.B.: AG Netzbasierte Informationssysteme

34 Leeres Stylesheet Bei Stylesheet ohne Templates sind nur die beiden vordefinierten Templates aktiv: Gesamtes Ursprungsdokument wird traversiert, dabei werden PCDATA extrahiert AG Netzbasierte Informationssysteme

35 AG Netzbasierte Informationssysteme Beispiel John Fitzgerald Johansen Doe match="/"  apply-templates match="*"  apply-templates match="text()"  John match="*"  apply-templates match="text()"  Fitzgerald Johansen match="*"  apply-templates match="text()"  Doe

36 Identitäts-Stylesheet Stylesheet mit lediglich einem Template: wird auf jedes Element ("*") angewandt kopiert Wurzel des aktuellen Teilbaumes wendet rekursiv alle Templates an AG Netzbasierte Informationssysteme überschreibt 1. vordefinierte Template, da spezieller Zusammen mit 2. vordefinierten Template wird Ursprungsdokument (fast) kopiert

37 AG Netzbasierte Informationssysteme Position des rekursiven Aufrufes? aaa bbb ccc aaa bbb ccc aaa bbb ccc Ergebnis:

38 Defaulttemplate für Kommentare vordefiniertes Template Kommentare und Prozessanweisungen werden nicht übernommen Beispiel für Template, wenn Kommentare im Ergebnisdokument erscheinen sollen AG Netzbasierte Informationssysteme

XSLT – Templates: benannte Templates, Variablen & Parameter

40 Benannte Templates Templates können auch einen Namen haben: Benannte Templates können gezielt mit angewandt werden AG Netzbasierte Informationssysteme …

41 Template-Modi Attribute mode - um Templates, die dasselbe match- Kriterium verwenden, unterscheiden zu können AG Netzbasierte Informationssysteme … mode mode … mode … Definition der Templates mit mode-Attribute Verwendung der Templetes entsprechend des mode-Attributes

42 Variablen werden z.B. verwendet um Wiederholungen gleicher Ausdrucke zu vermeiden Initiale Zuweisung kann nicht überschrieben werden! Beispiel: deklariert Variable X mit X := aktueller Teilbaum Wert von X: $X Beispiel: AG Netzbasierte Informationssysteme

43 Gültigkeit von Variablen Variablen kommen innerhalb von vor und dann entweder außerhalb von (d.h. auf dem Top-Level) globale Variable - steht allen Templates zur Verfügung oder innerhalb von lokale Variable - gültig nur innerhalb des Templates, in dem sie notiert wurde AG Netzbasierte Informationssysteme

44 Parameter Templates können Parameter haben: AG Netzbasierte Informationssysteme … Festlegung/Überschreibung des Parameters Aufruf des Parameters

XSLT: und was gibt es noch?

46 AG Netzbasierte Informationssysteme Nummerierung zahlreiche Formate für Nummerierung über … … 1 XML-Technologien 2 Datenbanken Template Ausschnitt aus dem Quelldokument mit i XML-Technologien ii Datenbanken Ausgabe

47 Bedingte Ausführung das bedingte Template als Kindelement von Wenn es sich bei der Bedingung um einen XPath- Ausdruck handelt bei einem Knotenset "true", wenn das Knotenset mindestens einen Knoten enthält bei einem String "true", wenn der String nicht leer ist bei einer Nummer "true", wenn diese ungleich Null ist AG Netzbasierte Informationssysteme Referent: Template

48 AG Netzbasierte Informationssysteme Beispiel für Referent: Harasic Bodin XML-Technologien Harasic Template Ausschnitt aus dem Quelldokument Ausgabe

49 AG Netzbasierte Informationssysteme Wahlmöglichkeiten E16-25A E16-25B 00 Beispiel  Switch-Anweisung in Java ähnlich  Abarbeitung von oben nach unten Falls Inhalt von item = 'Production-Class Widget', dann erzeuge E16-25A

50 AG Netzbasierte Informationssysteme Schleifen Anweisungen als Kinderknoten von … … … 1 XML Technologien 2 Datenbanken Harasic Bodin Template Ausgabe

51 Sonstige Möglichkeiten Sortieren XPath-Funktionen Mehrere Ursprungsdokumente … und vieles mehr! AG Netzbasierte Informationssysteme … <xsl:apply-templates select="document('bib.xml)"

52 Mächtigkeit von XSLT Variablen machen Stylesheets zu einem mächtigen Termersetzungssystem mit unbeschränkten Registern definiert universelle Turingmaschine als XSLT-Stylesheet Eingabe: Programm p (XML), Input i (XML) Ausgabe: p(i) Browser = vollwertiger Computer! Stylesheets tatsächlich berechnungsvollständig und damit vollwertige Programmiersprache (Kepser 2002) Terminierung von Stylesheets kann prinzipiell nicht garantiert werden AG Netzbasierte Informationssysteme

53 Verarbeitung von Stylesheets Stylesheets können auf zwei Arten verarbeitet werden: auf dem Server Ursprungsdokument verdeckt alle Transformationen auf zentralen Server im Client Transformationen auf Clients verteilt: spart Server- Ressourcen Ursprungsdokument sichtbar AG Netzbasierte Informationssysteme

54 1. Verarbeitung auf dem Server Server wendet passendes Stylesheet auf Ursprungsdokument an z.B. mit MSXML: msxsl source stylesheet.xsl –o output Client bekommt nur Ergebnisdokument AG Netzbasierte Informationssysteme Server Client Ursprungsdokument  Ergebnisdokument Stylesheet

55 2. Verarbeitung im Client Client bekommt Ursprungsdokument & passendes Stylesheet im Ursprungsdokument: Web-Browser wendet Stylesheet automatisch an und stellt Ergebnisdokument dar AG Netzbasierte Informationssysteme Server Client Ursprungsdokument Stylesheet Ursprungsdokument Ergebnisdokument Stylesheet

56 AG Netzbasierte Informationssysteme Wo Stylesheets verarbeiten? Verarbeitung im Client + Transformationen auf Clients verteilt: spart Server- Ressourcen - Ursprungsdokument sichtbar XSLT: stellt sicher, dass Transformation im Web-Client ausgeführt werden kann. XSLT: nicht unbedingt nötig, da Transformation auf eigenem Server durchgeführt wird. Verarbeitung auf dem Server + Ursprungsdokument verdeckt - alle Transformationen auf zentralen Server

eXtensible Stylesheet Language Formatting Objects (XSL-FO)

58 XSL Formatting Objects (XSL-FO) XSLT erlaubt Transformation von XML  HTML ungeeignet für druckfähige Formatierungen (PDF, RTF) XSL-FO erlaubt XML-Dokumente mit druckfähigen Layout zu versehen Transformation XML  PDF oder RTF möglich basiert auf auf Cascading Style Sheets (CSS2) W3C-Standard von 2001 AG Netzbasierte Informationssysteme

59 AG Netzbasierte Informationssysteme Mehrstufiger XSL-Prozess XML- Dokument Ergebnis- Dokument Quelldokumentenbaum Ergebnisbaum Bereichebaum FO-Baum Formatierung Transformation Quelle: H. Vonhoegen „Einstig in XML: Grundlagen, Praxis, Referenzen“,ISBN , 2007 XSL FO ProzessorXSLT Prozessor

60 AG Netzbasierte Informationssysteme CSS vs. XSL-FO CSSXSL-FO Darstellung auf Bildschirm Darstellung auf seitenorientiertem Ausgabemedium Ausgabe durch Webbrowser Ausgabe durch Drucker und andere Seitenausgabegeräte Formatierungsinformation für vorhandenes Markup Komplette Ersetzung von Markup durch - Formatierungsmarkup

61 XSL-FO Anwendungsgebiete Massensatz, z.B. bei der technischen Dokumentation gleichzeitige Ausgabe derselben Inhalte in unterschiedlichen Formaten: verschiedene Medien gleiches Medium aber verschiedene Bedürfnisse der Nutzer Individualisierung bzw. Personalisierung von Dokumenten AG Netzbasierte Informationssysteme

62 AG Netzbasierte Informationssysteme Seitenstruktur Wie in Office-Programmen Vorlagen für Seitenstruktur: Hello, world! Quellenhinweis: XSL-FO Beispiele auf den folgenden Folien aus Nikolai Grigoriev. XSL Formatting Objects Tutorial.

63 AG Netzbasierte Informationssysteme Seitenstruktur [Extensible Stylesheet Language (XSL) Version 1.1 W3C Recommendation 05 December 2006]

64 AG Netzbasierte Informationssysteme Darstellung CSS artige Darstellungseigenschaften: H ello, world! Für Blöcke: <fo:block text-align="justify" text-indent="1in" text-align-last="end" last-line-end-indent="1in"> This is an example of double-justified text with an indented first line. The last line of the text is aligned to the right, and indented by 1 inch from the right.

65 AG Netzbasierte Informationssysteme Blockstruktur <fo:block border="thin solid navy" text-align="center" padding-before="18pt" padding-bottom="18pt"> The outer block has a 18 pt padding from top and bottom [Extensible Stylesheet Language (XSL) Version 1.1 W3C Recommendation 05 December 2006]

66 AG Netzbasierte Informationssysteme Beispiel Listen <fo:list-block provisional-distance-between-starts="18pt" provisional-label-separation="3pt"> • First item • Second item

67 AG Netzbasierte Informationssysteme Beispiel Tabellen 1 upper left upper right lower left lower right

68 AG Netzbasierte Informationssysteme Top-Level-Elemente (I) Kinder des Elements beliebige Reihenfolge, nur immer am Anfang & - importieren Stylesheets … - definiert eine Menge, die aus einer Sammlung von Attributen besteht, die mit Hilfe von festgelegt wird

69 AG Netzbasierte Informationssysteme Top-Level-Elemente (II) - legt eine Methode fest, die bei der Erzeugung des Ergebnisdokuments beachtet werden soll … - erzeugt wohlgeformtes XML - HTML-Elemente & - Attribute werden erkannt - ergibt die String-Werte aller Textknoten, die im Ausgabebaum enthalten sind