Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
1
XSL - Dokumente mit Stil
Ein Vortrag im Rahmen des Seminars „ WWW und Datenbanken“ SS 2001 Referent: Fabian Wleklinski
2
XSL - Dokumente mit Stil
Einleitung Ziele des Vortrags: Warum XSL? XSLT? XSL FO? XPath? Grundverständnis wichtigste Elemente nicht Ziel des Vortrags: Syntax pauken XSL lernt sich wie HTML am Besten „in der Praxis“ 10. Mai 2001 XSL - Dokumente mit Stil
3
XSL - Dokumente mit Stil
Einleitung Tagesordnung: Informationswirrwarr XSL XSLT XPath XSL FO XSL – Ein Beispiel XSL – Zusammenfassung Ausblick Software Literatur 10. Mai 2001 XSL - Dokumente mit Stil
4
Informationswirrwarr
unzählige Formate für Informationen teils standardisiert, teils proprietär .html, .ps, .pdf, .doc, .rm, .mp3, .wma, .jpg, .png, .ppt, .lyx, .bmp, .lwp, .vcf, .... 10. Mai 2001 XSL - Dokumente mit Stil
5
Informationswirrwarr
Informationsaustausch im Alltag? erschwert durch inkompatible Formate oft ist Datenkonvertierung nötig je nach Format spezifisches Vorgehen „unlösbares“ Problem für exotische Formate Für Teilbereiche existieren Quasi-Standards HTML, PowerPoint, Excel, ... 10. Mai 2001 XSL - Dokumente mit Stil
6
Informationswirrwarr
60er Jahre: Entwicklung der GML bei IBM Generalized Markup Language 80er Jahre: Entwicklung der SGML Standard Generalized Markup Language 1986 zum ISO-Standard setzt sich nur in wenigen Bereichen durch, da komplex und Software schwer zu programmieren populärste Anwendung: HTML 10. Mai 2001 XSL - Dokumente mit Stil
7
Informationswirrwarr
1996: DSSSL wird ISO-Standard Stilsprache für SGML erlaubt Umwandlung von SGML Dokumenten, z.B. SGML HTML genauso kompliziert wie SGML selber 1996: W3C verabschiedet CSS Zuweisen von physischen zu logischen Auszeichnungen physische Auszeichnungen sind: Schriftfarbe, -größe, kursiv, ... logische Auszeichnungen sind: Überschrift, Absatz, Fußzeile, ... 10. Mai 2001 XSL - Dokumente mit Stil
8
Informationswirrwarr
1997: W3C verabschiedet XML Teilmenge von SGML Notbehelf: Formatierung mittels CSS 1997: XSL- Vorschlag bei W3C eingereicht Microsoft, ArborText, Inso, Henry Thompson, James Clark (DSSSL-Engine „Jade“) Aber was ist XSL... ??? 10. Mai 2001 XSL - Dokumente mit Stil
9
XSL - Dokumente mit Stil
Stilsprache von XML in XML-Syntax ähnlich zu DSSSL „XSL is based on DSSSL, which is based on Lisp. It is amazing what people will do to avoid Lisp“ 10. Mai 2001 XSL - Dokumente mit Stil
10
XSL - Dokumente mit Stil
Forderungen: einfache Nutzung über das Internet XML-Syntax deklarative Sprache für Textformatierungen wie bei CSS oder DSSSL vorhanden „als letzte Möglichkeit“eine Skriptsprache, um komplexe Formatierungen und Erweiterbarkeit zu garantieren 10. Mai 2001 XSL - Dokumente mit Stil
11
XSL - Dokumente mit Stil
Forderungen: schnelle Entwicklung von XSL-Anwendungen XSL-Dokumente sollen intuitiv lesbar sein Im Allgemeinen in .xsl-Dateien enthalten 10. Mai 2001 XSL - Dokumente mit Stil
12
XSL - Dokumente mit Stil
Einfaches Beispiel: <?xml version="1.0" encoding="UTF-8"?> <xsl:template xmlns:xsl=" 1999/XSL/Transform"> <html><body> <xsl:value-of select="mail/autor/name"/> </body></html> </xsl:template> 10. Mai 2001 XSL - Dokumente mit Stil
13
XSL - Dokumente mit Stil
3 Bestandteile: XSLT (XSL Transformations) XPath (XML Path Language) XSL FO (XSL Formatting Objects) XSLT ist die „revolutionärste Neuerung“ XSLT ist nur 1 der 3 Komponenten von XSL XSL FO gehören nicht zu XSLT, sondern zu XSL! XPath gehört nicht zu XSLT, auch nicht zu XSL, sondern ist eigenständig! (vgl. XLink) 10. Mai 2001 XSL - Dokumente mit Stil
14
XSL - Dokumente mit Stil
Status: XSL 1.0 Candidate Recommendation XSLT 1.0 Recommendation XSLT 1.1 Working Draft XSLT 2.0 req. Working Draft XPATH 1.0 Recommendation XPATH 2.0 req. Working Draft 10. Mai 2001 XSL - Dokumente mit Stil
15
XSL - Dokumente mit Stil
DSSSL XSL SGML XML XHTML CSS HTML 10. Mai 2001 XSL - Dokumente mit Stil
16
XSL - Dokumente mit Stil
XML XSLT XPath XSL FO 10. Mai 2001 XSL - Dokumente mit Stil
17
XSL - Dokumente mit Stil
Streng genommen muss man einen XSL- und einen XSLT-Prozessor unterscheiden „XSLT-Prozessor“ ist der übliche Ausdruck Ein „XSL Prozessor“ ist eine Software die ein XML Quelldokument und ein XSL Dokument liest die XSL-Befehle auf das XML Quelldokument anwendet ein XML Zieldokument erzeugt 10. Mai 2001 XSL - Dokumente mit Stil
18
XSL - Dokumente mit Stil
Wie arbeitet ein XSL Prozessor? aus dem XML Quelldokument eine Baumstruktur erzeugen, den „Quellbaum“ XSL-Befehle anwenden, dabei „Zielbaum“ aufbauen aus erzeugtem Zielbaum die XML Zieldatei schreiben Schritt 3: Zielbaum interpretieren, um Formatierung zu ermöglichen Die meisten XSL Anwendungen unterstützen keine XSL FO! 10. Mai 2001 XSL - Dokumente mit Stil
19
XSL - Dokumente mit Stil
Zielbaum kann völlig andere Struktur besitzen als original-XML-Baum! Hinzufügen weiterer Strukturen z.B. Erzeugung von Inhaltsverzeichnis eines Dokumentes „on the fly“ XSL-Datei enthält „Baumkonstruktionsregeln“ 10. Mai 2001 XSL - Dokumente mit Stil
20
XSL - Dokumente mit Stil
Baumkonstruktionsregeln bestehen aus zwei Teilen: 1. ein Muster zum Vergleich mit den Elementen des Quellbaumes 2. Anweisungen zum Erzeugen von Elementen für den Zielbaum 10. Mai 2001 XSL - Dokumente mit Stil
21
XSL - Dokumente mit Stil
XSLT XSLT=XSL Transformations XML Sprache, realisiert durch Namensraum „xsl“ xmlns:xsl= 10. Mai 2001 XSL - Dokumente mit Stil
22
XSL - Dokumente mit Stil
XSLT <xsl:stylesheet xmlns:xsl=" muß das XML-Wurzelelement sein darf nur ein einziges Mal im XML Dokument stehen Alle XSLT-Anweisungen müssen unterhalb stehen xsl:transform gilt als Synonym 10. Mai 2001 XSL - Dokumente mit Stil
23
XSL - Dokumente mit Stil
XSLT Mögliche Attribute: default-space: Sollen Leerzeichen im Originaldokument erhalten bleiben? Vorgabewert: „preserve“ indent-result: Sollen in der Ausgabe die Leerzeichen erhalten werden? Vorgabewert: „yes“ language: im Stylesheet benutzte Skriptsprache. Vorgabewert: „JScript“ result-ns: Namensraum der Ausgabe des XML-Prozessors Aber wie sehen die XSLT-Anweisungen aus... ??? 10. Mai 2001 XSL - Dokumente mit Stil
24
XSL - Dokumente mit Stil
XSLT XSLT besteht aus „Template Rules“ Template Rules sind XML-Elemente Eine Template-Rule besteht aus Regeln/Muster, die eine bestimmte Menge von XML Elementen beschreiben, ähnlich wie ein regulärer Ausdruck eine bestimmte Menge von Texten beschreibt Einem „Template“ 10. Mai 2001 XSL - Dokumente mit Stil
25
XSL - Dokumente mit Stil
XSLT Was macht eine Template Rule? Die Regeln/Muster filtern bestimmte XML Elemente aus dem XML Quelldokument heraus Das in der Template Rule enthaltene Template wird auf die herausgefilterten XML Elemente angewendet Was macht ein Template? Template ist gewissermaßen die Vorlage für das Zieldokument Ein Template kann den Prozeß rekursiv fortführen Ergebnis der Verarbeitung bildet den Zielbaum 10. Mai 2001 XSL - Dokumente mit Stil
26
XSL - Dokumente mit Stil
XSLT <xsl:template match="/"/> Abfrage des Elementes im Quellbaum ist zwingend! <xsl:template match="muster"/> Alle Knoten vom Typ „muster“, wobei „muster“ ein XPath Ausdruck ist was XPath genau bedeutet, dazu kommen wir später! 10. Mai 2001 XSL - Dokumente mit Stil
27
XSL - Dokumente mit Stil
XSLT Template != Template Rule Template Rule: Regeln für den Transformationsprozess, enthält ein Template Template: ein Stück Stylesheet, wird im Zieldokument instanziiert 10. Mai 2001 XSL - Dokumente mit Stil
28
XSL - Dokumente mit Stil
XSLT <xsl:apply-templates/> Verarbeitung der Nachfahren des aktuellen Knotens <xsl:apply-templates select="muster"/> Verarbeitung der Nachfahren des aktuellen Knotens, die vom Typ „muster“ sind Vorgabewert für „select“ ist „node()“, d.h. alle Knoten außer Attributen <xsl:apply-templates order-by=„-krit1;+krit2"/> Sortierung der Knoten zuerst nach „krit1“ aufsteigend, dann nach „krit2“ absteigend 10. Mai 2001 XSL - Dokumente mit Stil
29
XSL - Dokumente mit Stil
XSLT <xsl:value-of/> Einfügen des Wertes des aktuellen Knotens als Text (+Unterknoten) <xsl:value-of select="muster"/> Einfügen des Wertes der ausgewählten Knoten „muster“ als Text. Vorgabewert ist „.“ (Inhalt des aktuellen Knotens) 10. Mai 2001 XSL - Dokumente mit Stil
30
XSL - Dokumente mit Stil
XSLT <xsl:for-each> Anwendung des Template auf eine Menge von Knoten </xsl:for-each> <xsl:for-each select="muster" order-by="elem"/> Anwendung eines Template auf alle Knoten vom Typ „muster“, sowie Sortierung nach dem Wert von „elem1“ 10. Mai 2001 XSL - Dokumente mit Stil
31
XSL - Dokumente mit Stil
XSLT Bedingte Anweisungen mit Attribut „test“ <xsl:if/> nur für einfache Vergleiche <xsl:if test="name[."'abc']"> <h1>abc</h1> <xsl:apply-templates/> </xsl:if> Attribute: expr=script-expression muss TRUE zurückgeben language=lang-name Vorgabewert: JScript test 10. Mai 2001 XSL - Dokumente mit Stil
32
XSL - Dokumente mit Stil
XSLT <xsl:choose/> Äquivalent zu „select case“, „switch case“, ... aus C,JAVA,... <xsl:choose> <xsl:when test="name[.='a']"> </xsl:when> <xsl:when test="name[.='b']"> </xsl:when> <xsl:otherwise> </xsl:otherwise> </xsl:choose> 10. Mai 2001 XSL - Dokumente mit Stil
33
XSL - Dokumente mit Stil
XSLT Benutzung innerhalb von Templates, die Ausgaben produzieren, xsl:copy Hinzufügen von Elementen <xsl:element name="xsl.template"/> Hinzufügen von Attributen <xsl:attribute name="match">cost</xsl:attribute> kann auch ohne xsl:element benutzt werden bevor Kinderknoten zum Element gefügt werden, müssen alle Attribute erzeugt worden sein 10. Mai 2001 XSL - Dokumente mit Stil
34
XSL - Dokumente mit Stil
XSLT <img> <xsl:attribute name="src"> <xsl:value-of select="img/imgname"/> </xsl:attribute> </img> Im Beispiel wird das entsprechende Muster aus dem XML-Quellbaum geholt, und eine Ausgabe generiert: <img src="img/imgname"/> 10. Mai 2001 XSL - Dokumente mit Stil
35
XSL - Dokumente mit Stil
XSLT <xsl:template match="MeinElement"> <xsl:copy> <xsl:attribute name="kopiert"> true </xsl:attribute> </xsl:copy> </xsl:template> Im Beispiel wird das Element „MeinElement“ kopiert und ein Attribut „kopiert“ mit dem Wert „true“ hinzugefügt 10. Mai 2001 XSL - Dokumente mit Stil
36
XSL - Dokumente mit Stil
XPath seit November 1999 Empfehlung vom W3C operiert auf der XML Baumstruktur lokalisiert Knoten z.B. „erster Absatz des dritten Abschnittes“ 10. Mai 2001 XSL - Dokumente mit Stil
37
XSL - Dokumente mit Stil
XPath XPath-Abfrage liefert node-set zurück (Menge von Knoten) Besitzt keine XML-Syntax Syntax eher vergleichbar mit Dateisystem („location paths“) („/usr/local/...“) Dient auch für XPointer 10. Mai 2001 XSL - Dokumente mit Stil
38
XSL - Dokumente mit Stil
XPath Knoten eines XML Baumes/Dokumentes Wurzelknoten (root) Elemente Attribute Texte Namespace-Attribute Processing instructions Kommentare für XSL werden im Wesentlichen die fett-markierten Knotenarten benötigt 10. Mai 2001 XSL - Dokumente mit Stil
39
XSL - Dokumente mit Stil
XPath location paths (1) location path entspricht einer Dateisystem-Pfadangabe man nennt die Komponenten aber nicht „Dateien“ oder „Verzeichnisse“, sondern location steps location steps sind die Namen der XML Elemente der Pfadtrenner ist "/" ein Pfad wird von links nach rechts abgearbeitet 10. Mai 2001 XSL - Dokumente mit Stil
40
XSL - Dokumente mit Stil
XPath location paths (2) Pfade beginnend mit "/" sind absolute Pfade, d.h. der Kontextknoten ist der Wurzelknoten. Andere Pfade sind relative Pfade, d.h. Kontextknoten bleibt unverändert Pfade enthalten Platzhalter genau wie im Dateisystem, aber wesentlich flexibler 10. Mai 2001 XSL - Dokumente mit Stil
41
XSL - Dokumente mit Stil
XPath Formale Definition des location path [/]location_step(/ location_step)* location step entspricht Verzeichnis/Datei im Dateisysten wirkt wie ein Filter: bekommt eine Knotenmenge als Eingabe, und liefert eine Teilmenge zurück 10. Mai 2001 XSL - Dokumente mit Stil
42
XSL - Dokumente mit Stil
XPath Es gibt genau einen „Kontext-Knoten“ entspricht dem Arbeitsverzeichnis des Dateisystems genau wie im Dateisystem navigiert man von der aktuellen Position aus „vor“ und „zurück“ („cd xyz“, „cd ..“) aber: XPath kennt mehr als 2 Richtungen der Navigation! 10. Mai 2001 XSL - Dokumente mit Stil
43
XSL - Dokumente mit Stil
XPath Ein location step wählt aber nicht wie im Dateisystem einen bestimmten Unterknoten aus, sondern ist wie folgt aufgebaut: richtung::typ([prädikat])* Das Prädikat ist eine boolesche Bedingung Die Richtung der Navigation, der Typ der Knoten und das Prädikat verfeinern jeweils die Abfrage, d.h. verkleinern die Teilmenge der Knoten 10. Mai 2001 XSL - Dokumente mit Stil
44
XSL - Dokumente mit Stil
XPath Richtungen (1) self: aktueller Knoten child: direkte Kinderknoten descendant: Kinderknoten, aber keine Attribute! descendant-or-self: Kinderknoten oder aktueller Knoten, aber keine Attribute! parent: direkte Elternknoten ancestor: Elternknoten ancestor-or-self: Elternknoten oder aktueller Knoten ... 10. Mai 2001 XSL - Dokumente mit Stil
45
XSL - Dokumente mit Stil
XPath Richtungen (2) ... attribute: nicht-Namespace-Attribute namespace: Namespace-Attribute preceding-sibling: Vorgänger following-sibling: Nachfolger preceding: Alle Vorgänger following: Alle Nachfolger 10. Mai 2001 XSL - Dokumente mit Stil
46
XSL - Dokumente mit Stil
XPath Vorgabewert für die Richtung: child abgekürzte Ausdrücke für Richtungen: Abkürzung Beschreibung Keine Achse child:: @ attribute:: . Der aktuelle Knoten, anstatt self::node() .. Der Mutter (Vater? Elter?) Knoten, anstatt parent::node() [2] anstatt [position()=2] 10. Mai 2001 XSL - Dokumente mit Stil
47
XSL - Dokumente mit Stil
XPath Typen (1) * Alle Knoten vom Typ der Achse. Achsentyp ist immer Element außer bei attribute und namespace. namespace Alle Knoten im Namespace namespace namespace:typ Alle Knoten mit Namen namespace:typ typ Alle Knoten mit Namen typ und NULL-Namespace text() Alle Textknoten 10. Mai 2001 XSL - Dokumente mit Stil
48
XSL - Dokumente mit Stil
XPath Typen (2) comment() Alle Kommentarknoten processing-instruction() Alle Processing-Instruction-Knoten processing-instruction(name) Alle Processing-Instruction-Knoten mit Expanded-Name name node() Alle Knoten 10. Mai 2001 XSL - Dokumente mit Stil
49
XSL - Dokumente mit Stil
XPath abgekürzte Ausdrücke für Tests: Test Beschreibung 'Name' Testet, ob Knoten diesen Namen hat * Knoten mit beliebigem Namen text() Ein Text Knoten ..[..] Zusätzliches Prädikat (z.B. boolescher Ausdruck), das erfüllt sein muss 10. Mai 2001 XSL - Dokumente mit Stil
50
XSL - Dokumente mit Stil
XPath abgekürzte Ausdrücke für location steps: abgekürzter location step location step child:: attribute:: @ self::node() . parent::node() .. descendant-or-self::node()/ // 10. Mai 2001 XSL - Dokumente mit Stil
51
XSL - Dokumente mit Stil
XPath Beispiele für location paths (1): location path Abkürzung Beschreibung child:text() text() Kinder-Textelemente /child:html /html Elemente „html“ unterhalb vom Wurzelknoten /descendant-or-self::node()/child::table //table Elemente „table“ überall im Dokument /parent::node()/child::table/attribute::width Attribute „ WIDTH“ aller Tabellen, die Kinder des Eltern-Knotens sind 10. Mai 2001 XSL - Dokumente mit Stil
52
XSL - Dokumente mit Stil
XPath einige, beispielhafte Funktionen in XPath: last(), position(), count(), id(), name(), substring(), concat(), true(), round(), translate() 10. Mai 2001 XSL - Dokumente mit Stil
53
XSL - Dokumente mit Stil
XPath Beispiele für location paths (2): location path Abkürzung Beschreibung /child::html/child:: body/child::html[2] /html/body/table[2] Die zweite Tabelle im HTML-Body /descendant-or-self::table[attribute::width = "50%"] = "50%"] Alle Tabellen, die "50%" Breite haben //td[position() != last()] Alle „TD“-Elemente im Dokument mit Ausnahme des letzten //ex:head Alle HEAD-Elemente, die im Namespace ex deklariert sind 10. Mai 2001 XSL - Dokumente mit Stil
54
XSL - Dokumente mit Stil
XSL FO formatierender Bestandteil von XSL ermöglicht Zuweisung von Schriftformatierungen fett, kursiv, Überschrift, ... in XML-Syntax Anlehnungen an CSS 10. Mai 2001 XSL - Dokumente mit Stil
55
XSL - Dokumente mit Stil
XSL FO XSL FO=XSL Formatting Objects XML Sprache, realisiert durch Namensraum „fo“ xmlns:fo=„ Alle XSL FO Elemente stehen unter </fo:root> Unter </fo:root> dürfen stehen: </fo:layout-master-set> </fo:page-sequence> 10. Mai 2001 XSL - Dokumente mit Stil
56
XSL - Dokumente mit Stil
XSL FO Ist eine von vielen, denkbaren Formatierungssemantiken! CSS eine andere z.B. können Verlagshäuser eine eigene definieren bzw. XSL FO erweitern Wird von den meisten XSL Anwendungen (noch) nicht unterstützt! 10. Mai 2001 XSL - Dokumente mit Stil
57
XSL - Dokumente mit Stil
XSL FO Viel mehr Auszeichnungen gegenüber HTML+CSS Horizontal und vertikal gespiegelter Text Fußnoten Seitenzahlen in Querverweisen Silbentrennung „Aurale Auszeichnungen“ für Sprachausgabe ... Breitere Verwendung vorgesehen als bei CSS CSS primär für WWW XSL FO für WWW, WAP, Printmedien, ... 10. Mai 2001 XSL - Dokumente mit Stil
58
XSL - Dokumente mit Stil
XSL FO für verschiedene Ausgabemedien können dank XSL verschiedene FO definiert werden z.B. seitenorientiert für Druck, nicht-seitenorientiert für HTML z.B. komplex für HTML, simpel für WAP/WML 10. Mai 2001 XSL - Dokumente mit Stil
59
XSL - Dokumente mit Stil
XSL FO Bessere Internationalisierung als bei CSS Unterstützung für alle Kombinationen von vertikaler und horizontaler Schreibrichtung bei logischen Richtungsangaben „start“, „end“, ... statt „left“, „bottom“, ... 10. Mai 2001 XSL - Dokumente mit Stil
60
XSL - Dokumente mit Stil
XSL FO XSL FO ist viel „Schreibarbeit“ wird in der Praxis i.A. nur von XSL-Prozessoren erzeugt Bei CSS: em {font-weight:bold} Bei XSL FO: <style-rule> <target-element type="emph"/> <apply font-weight="bold"/> </style-rule> 10. Mai 2001 XSL - Dokumente mit Stil
61
XSL - Dokumente mit Stil
XSL FO XSL FO unterstützt die Definition von „Seitenklassen“ Definition von Seitenklassen im „master layout set“ dort können auch die möglichen Reihenfolgen festgelegt werden Dazu ein Beispiel: Die Seiten eines Buches Eine Coverseite, anschließend alternierend beliebig viele links- und rechtsliegende Seiten Außer Coverseite werden alle Seiten auf Papier mit Kopfzeile gedruckt 10. Mai 2001 XSL - Dokumente mit Stil
62
XSL FO XSL Formatting Object „layout master set“ Definition der
Seitenklassen Die möglichen Abfolgen von Seitenklassen Die Seiten und ihre Inhalte 10. Mai 2001 XSL - Dokumente mit Stil
63
XSL - Dokumente mit Stil
XSL FO cover leftPage rightPage 10. Mai 2001 XSL - Dokumente mit Stil
64
XSL - Dokumente mit Stil
XSL FO Definition der Seitenklassen: <fo:layout-master-set> <fo:simple-page-master master-name="cover" margin-top="0.5cm" margin-bottom="0.5cm" margin-right="0.5cm" margin-left="1cm"/> <fo:simple-page-master master-name="leftPage" margin-top="2cm" margin-bottom="0.5cm" margin-right="1cm" margin-left="0.5cm"/> <fo:simple-page-master master-name="rightPage" margin-top="2cm" margin-bottom="0.5cm" margin-right="0.5cm" margin-left="1cm"/> </fo:layout-master-set> 10. Mai 2001 XSL - Dokumente mit Stil
65
XSL - Dokumente mit Stil
XSL FO Festlegung der Seitenreihenfolge: <fo:page-sequence-master master-name="contents"> <fo:repeatable-page-master-alternatives> <fo:conditional-page-master-reference master-name="leftPage" odd-or-even="even"/> <fo:conditional-page-master-reference master-name="rightPage" odd-or-even="odd"/> </fo:repeatable-page-master-alternatives> </fo:page-sequence-master> 10. Mai 2001 XSL - Dokumente mit Stil
66
XSL - Dokumente mit Stil
XSL FO Seiteninhalte und Zuweisung zu Seitenklassen: <fo:page-sequence master-name="contents" initial-page-number="2"> <fo:static-content flow-name="xsl-region-before"> <fo:block font-size="14pt">Kopfzeile</fo:block> </fo:static-content> <fo:flow flow-name="xsl-region-body"> <fo:block font-align="left">Fließtext</fo:block> </fo:flow> </fo:page-sequence> 10. Mai 2001 XSL - Dokumente mit Stil
67
XSL - Dokumente mit Stil
XSL FO </fo:block> enthält Formatierungsinformationen, die an eine Textstruktur geknüpft sind (z.B. Absatz- und Zeilenabstände, Textausrichtung, Numerierungs- und Gliederungsanweisungen,...) entspricht in etwa einem „Absatz“ Der Name sagt es: Blockcharakter </fo:inline> enthält Formatierungsinformationen, die keinen Zusammenhang zur Textstruktur haben (z.B. fett, kursiv, ...) 10. Mai 2001 XSL - Dokumente mit Stil
68
XSL - Dokumente mit Stil
XSL FO XSL FO erlaubt noch viel, viel mehr... Definition von Einzügen, Schriftarten, -farben, -größen, Textauszeichnungen, Abständen, ... Eine unvollständige Auflistung unter enthält 246 Attribute! Hier die Auswahl einiger „c...“-Attribute caption-side, case-name, case-title, character, clear, clip, color, color-profile-name, column-count, column-gap, column-number, column-width, content-height, content-type, content-width, country, cue, cue-after, cue-before 10. Mai 2001 XSL - Dokumente mit Stil
69
XSL - Dokumente mit Stil
XSL FO areas regions block areas line areas inline areas charakter areas 10. Mai 2001 XSL - Dokumente mit Stil
70
XSL - Dokumente mit Stil
XSL FO Erstellung von XSL FO-Strukturen nur per XSL-Prozessor sinnvoll (zu viel Schreibarbeit sonst) Instanzen der Formatierungsobjekte (xsl:fo) sind die Knoten des Zielbaumes der XSLT-Anwendung 10. Mai 2001 XSL - Dokumente mit Stil
71
XSL - Dokumente mit Stil
XSL – Ein Beispiel Software telemallCOMMUNITY der Firma telemall AG (Frankfurt) Standardsoftware für Internet-Communities basierend auf XML/XSLT entwickelt im Frühjahr 2001 von Kai Klüber, Martin Klossek und Fabian Wleklinski 10. Mai 2001 XSL - Dokumente mit Stil
72
XSL - Dokumente mit Stil
XSL – Ein Beispiel telemallCOMMUNITY benutzt XML/XSL warum? 5 Gründe für den Einsatz von XML! 10. Mai 2001 XSL - Dokumente mit Stil
73
XSL - Dokumente mit Stil
XSL – Ein Beispiel Grund 1: Trennung Implementierung und Design XML/XSLT erhöht die Wiederverwendbarkeit der Software XML/XSLT macht unabhängig(er) von den Entwicklern XML/XSLT beschleunigt unternehmensinterne Work-Flow-Prozesse, z.B. können Implementierung und Webdesign „zeitgleich“ beginnen 10. Mai 2001 XSL - Dokumente mit Stil
74
XSL - Dokumente mit Stil
XSL – Ein Beispiel Grund 2: Personalisierung Jeder Benutzer des Systems kann sich sein „Lieblings-Stylesheet“ auswählen Grund 3: Erweiterbarkeit XML/XSLT als ausgegebenes Datenformat garantiert die Erweiterbarkeit auf alternative Ausgabemedien wie WAP/WML, Windows CE- und Palm-Geräte, Print-Medien etc. 10. Mai 2001 XSL - Dokumente mit Stil
75
XSL - Dokumente mit Stil
XSL – Ein Beispiel Grund 4: Strenge Modularisierung durch offene Protokolle Einzelne Bestandteile des Systems sind autarke Applikationen, und bieten ihre Dienste durch eine XML-Schnittstelle (via http-Protokoll) an Grund 5: Offene Schnittstellen Schaffung universeller Schnittstellen für SOAP, NewsML, RDF etc. Austausch von Content zwischen Nachrichtenagenturen und Community-Betreibern Das folgende Diagramm soll die Idee verdeutlichen... 10. Mai 2001 XSL - Dokumente mit Stil
76
XSL - Dokumente mit Stil
AVI, AU, WAV, WMA, MP3 etc. GIF, JPG, NSK-TIFF etc. Veröffentlicher DOC, HTML, PDF, etc. MPG, WMV, RM, etc. JPEG, GIF etc. 10. Mai 2001 XSL - Dokumente mit Stil
77
XSL - Dokumente mit Stil
XSL – Ein Beispiel Eine Internet-Community beinhaltet viele, viele Datensätze Nachrichtenbeiträge Diskussionsbeiträge Einträge im Kleinanzeiger, schwarzen Brett, etc... Veröffentlichungen im Presseboard ... Schauen wir uns nun exemplarisch einen Datensatz dieses Systems an, zum Beispiel eine Nachrichtenmeldung: 10. Mai 2001 XSL - Dokumente mit Stil
78
XSL - Dokumente mit Stil
<record ikey="1000" parentid="100"> <v_1 ikey="1000"> <date> :36:49</date> <authorid>12364</authorid> <authorname>Manfred Mustermann</authorname> <author > </author > <authorinitials>MM</authorinitials> <nodeicon src=" <subject src=" Datenschützer warnen vor gläsernem Internet-Nutzer </subject> <newlink src=" <dellink src=" </v_1> </record> 10. Mai 2001 XSL - Dokumente mit Stil
79
XSL - Dokumente mit Stil
XSL – Ein Beispiel Schauen wir uns nun das Ergebnis der Umwandlung mittels drei verschiedener XSL-Stylesheets an: 10. Mai 2001 XSL - Dokumente mit Stil
80
XSL - Dokumente mit Stil
XSL – Ein Beispiel Da das ganze System auf XML/XSL aufbaut, werden natürlich viel mehr XML Anweisungen erzeugt, als nur die, die wir gesehen haben Der gesamte XML Output sieht ungefähr so aus... 10. Mai 2001 XSL - Dokumente mit Stil
81
XSL - Dokumente mit Stil
XSL – Ein Beispiel 10. Mai 2001 XSL - Dokumente mit Stil
82
XSL - Dokumente mit Stil
XSL – Ein Beispiel Erstellen der XSL-Stylesheets ist eine Designaufgabe, die nicht von dem Entwicklerteam übernommen werden muß bzw. sollte ;-) Während der Entwicklung wurde daher „ohne Layout“ gearbeitet, nur mit minimaler Darstellung Die Konvertierung von XML in HTML funktionierte zwar, aber das Ergebnis sah entsprechend übel aus, in etwa so... 10. Mai 2001 XSL - Dokumente mit Stil
83
XSL - Dokumente mit Stil
XSL – Ein Beispiel 10. Mai 2001 XSL - Dokumente mit Stil
84
XSL - Dokumente mit Stil
XSL – Ein Beispiel Nachdem die Design-Abteilung ihre Arbeit beendet hatte, standen entsprechende Stylesheets zur Verfügung Keine weitere Entwicklung, nur noch auswählen des neuen Stylesheet! Das Layout sieht dann besser aus, zum Beispiel so... 10. Mai 2001 XSL - Dokumente mit Stil
85
XSL - Dokumente mit Stil
XSL – Ein Beispiel 10. Mai 2001 XSL - Dokumente mit Stil
86
XSL - Dokumente mit Stil
XSL – Ein Beispiel 10. Mai 2001 XSL - Dokumente mit Stil
87
XSL - Dokumente mit Stil
XSL – Ein Beispiel Informationen werden umgewandelt und mehrfach verwendet XML ermöglicht heterogene Lieferkanäle! 10. Mai 2001 XSL - Dokumente mit Stil
88
XSL - Dokumente mit Stil
XSL - Zusammenfassung Vorteile gegenüber CSS 90% der Formatierungseigenschaften aus XSL Formatting Objects sind in CSS in ähnlicher Form enthalten, aber: XSL bietet weitreichendere und mächtigere Selektoren als CSS, es sind efektivere Baumkonstruktionen möglich ein Seitenlayout-Modell 10. Mai 2001 XSL - Dokumente mit Stil
89
XSL - Dokumente mit Stil
XSL - Zusammenfassung Vorteile gegenüber CSS ein erweitertes Formatierungsmodell bessere Internationalisierung und mehr Schreib-Modi Unterstützung von Linking 10. Mai 2001 XSL - Dokumente mit Stil
90
XSL - Dokumente mit Stil
XSL - Zusammenfassung Vorteile gegenüber CSS XSL ist XML Sprache Die Möglichkeiten von CSS werden durch XSL FO bereitgestellt, sogar übertroffen. Eine Umstrukturierung des XML Quellbaumes wie durch XSLT fehlt bei CSS. Kombination von XSL und XSS? Denkbar ist eine hybride Lösung: XSL auf dem Server, CSS auf dem Client 10. Mai 2001 XSL - Dokumente mit Stil
91
XSL - Dokumente mit Stil
Ausblick Bedeutung alternativer Plattformen steigt Handheld-PCs, Mobiltelefone, Kabel-TV, ... Rendering auf dem Client Betrachter hat „Lieblings-Stylesheet“ XML/XSL hat auf dem Server bereits unbemerkt Bedeutung erlangt große Websites benutzen teilweise XML/XSL, z.B. 10. Mai 2001 XSL - Dokumente mit Stil
92
XSL - Dokumente mit Stil
Software SAXON home page Sablotron: XSL Transformations Processor FOP (Apache) 10. Mai 2001 XSL - Dokumente mit Stil
93
XSL - Dokumente mit Stil
Software Unicorn XML Toolkit Antenna House XSL Formatter Übersicht von Free XML Tools 10. Mai 2001 XSL - Dokumente mit Stil
94
XSL - Dokumente mit Stil
Software Übersicht von Free XML Tools XML Software Guide: Specialized XML Software XML Software Guide: Additional XML Software Resource Lists 10. Mai 2001 XSL - Dokumente mit Stil
95
XSL - Dokumente mit Stil
Software XMLSOFTWARE XML Editors XMLSOFTWARE XML Browsers XML Software Guide: XML and XSL Editors XML.com Editors 10. Mai 2001 XSL - Dokumente mit Stil
96
XSL - Dokumente mit Stil
Literatur Extensible Markup Language (XML) Extensible Stylesheet Language (XSL) XSLT.com - Resource site for tools , events , books , tutorials and other resources related to xslt , xsl , xml 10. Mai 2001 XSL - Dokumente mit Stil
97
XSL - Dokumente mit Stil
Literatur XSL Transformations (XSLT) XML Path Language (XPath) Robert Wruck: XLink, XPath & XPointer 10. Mai 2001 XSL - Dokumente mit Stil
98
XSL - Dokumente mit Stil
Literatur ix 1/2001: „XSLT-Tutorial“ XML.com: What is XSLT? ZVON.org 10. Mai 2001 XSL - Dokumente mit Stil
99
XSL - Dokumente mit Stil
Literatur XMLNews.org: XML and the news industry XSLINFO xml.org 10. Mai 2001 XSL - Dokumente mit Stil
100
XSL - Dokumente mit Stil
Literatur Jens Wilke: Abfragesprachen für XML-Dokumente Heiko Faasch: XSLT- Die XSL Transformationssprache 10. Mai 2001 XSL - Dokumente mit Stil
101
XSL - Dokumente mit Stil
Literatur Eugen Dück: Proseminar Datenmodellierung - Vortrag über XML Andreas Kempf, Mario Ganter, Jörg Knaust, Markus Kurczek: Extensible Style Language 10. Mai 2001 XSL - Dokumente mit Stil
102
XSL - Dokumente mit Stil
Literatur XML in der Praxis - von Henning Behme und Stefan Mintert XT Mario Jeckle: XML 10. Mai 2001 XSL - Dokumente mit Stil
103
XSL - Dokumente mit Stil
Kontakt & Downloads Fabian Wleklinski: Quellcodes und Folien im PPT-, PDF-, PS- und HTML-Format verfügbar unter: 10. Mai 2001 XSL - Dokumente mit Stil
104
XSL - Dokumente mit Stil
Ende Das war‘s! 10. Mai 2001 XSL - Dokumente mit Stil
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.