XSL - Dokumente mit Stil

Download Report

Transcript XSL - Dokumente mit Stil

XSL - Dokumente mit Stil
Ein Vortrag im Rahmen des
Seminars
„ WWW und Datenbanken“
SS 2001
Referent: Fabian Wleklinski
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
2
Einleitung
 Tagesordnung:










Informationswirrwarr
XSL
XSLT
XPath
XSL FO
XSL – Ein Beispiel
XSL – Zusammenfassung
Ausblick
Software
Literatur
10. Mai 2001
XSL - Dokumente mit Stil
3
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
4
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 QuasiStandards

HTML, PowerPoint, Excel, ...
10. Mai 2001
XSL - Dokumente mit Stil
5
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
6
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


10. Mai 2001
physische Auszeichnungen sind: Schriftfarbe, -größe,
kursiv, ...
logische Auszeichnungen
sind:
XSL - Dokumente
mit StilÜberschrift, Absatz,
7
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
8
XSL
 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
9
XSL
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
10
XSL
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
11
XSL
Einfaches Beispiel:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:template xmlns:xsl="http://www.w3.org/
1999/XSL/Transform">
<html><body>
<xsl:value-of select="mail/autor/name"/>
</body></html>
</xsl:template>
10. Mai 2001
XSL - Dokumente mit Stil
12
XSL
 3 Bestandteile:



XSLT
XPath
XSL FO
(XSL Transformations)
(XML Path Language)
(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
13
XSL
Status:






XSL 1.0
XSLT 1.0
XSLT 1.1
XSLT 2.0 req.
XPATH 1.0
XPATH 2.0 req.
10. Mai 2001
Candidate Recommendation
Recommendation
Working Draft
Working Draft
Recommendation
Working Draft
XSL - Dokumente mit Stil
14
XSL
SGML
DSSSL
XSL
XML
XHTML
CSS
HTML
10. Mai 2001
XSL - Dokumente mit Stil
15
XSL
XML
XSL
XSLT
XSL FO
10. Mai 2001
XSL - Dokumente mit Stil
XPath
16
XSL
 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
17
XSL
 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
18
XSL
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
19
XSL
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
20
XSLT
XSLT=XSL Transformations
XML Sprache, realisiert durch Namensraum
„xsl“

xmlns:xsl=http://www.w3.org/1999/XSL/Transf
orm
10. Mai 2001
XSL - Dokumente mit Stil
21
XSLT
 <xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Tr
ansform"/>




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
22
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 XMLProzessors
 Aber wie sehen die XSLT-Anweisungen aus... ???
10. Mai 2001
XSL - Dokumente mit Stil
23
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
24
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
25
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
26
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
27
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
28
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
29
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
30
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
31
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
32
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
33
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
34
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
35
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
36
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
37
XPath
 Knoten eines XML Baumes/Dokumentes







Wurzelknoten (root)
Elemente
Attribute
Texte
Namespace-Attribute
Processing instructions
Kommentare
 für XSL werden im Wesentlichen die fettmarkierten Knotenarten benötigt
10. Mai 2001
XSL - Dokumente mit Stil
38
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
39
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
40
XPath
 Formale Definition des
location path

[/]location_step(/ location_step)*
 location step


10. Mai 2001
entspricht Verzeichnis/Datei im
Dateisysten
wirkt wie ein Filter: bekommt
eine Knotenmenge als Eingabe,
und liefert eine Teilmenge zurück
XSL - Dokumente mit Stil
41
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
42
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
43
XPath
 Richtungen (1)








10. Mai 2001
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
...
XSL - Dokumente mit Stil
44
XPath
 Richtungen (2)







10. Mai 2001
...
attribute: nicht-NamespaceAttribute
namespace: Namespace-Attribute
preceding-sibling: Vorgänger
following-sibling: Nachfolger
preceding: Alle Vorgänger
following: Alle Nachfolger
XSL - Dokumente mit Stil
45
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
46
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
47
XPath
 Typen (2)
comment()
Alle Kommentarknoten
processinginstruction()
Alle Processing-Instruction-Knoten
processingAlle Processing-Instruction-Knoten mit Expandedinstruction(name) Name name
node()
10. Mai 2001
Alle Knoten
XSL - Dokumente mit Stil
48
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
49
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
50
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//table
self::node()/child::
table
Elemente „table“ überall im Dokument
/parent::node()/chi ../table/@wi Attribute „ WIDTH“ aller Tabellen, die
ld::table/attribute:: dth
Kinder des Eltern-Knotens sind
width
10. Mai 2001
XSL - Dokumente mit Stil
51
XPath
einige, beispielhafte Funktionen in XPath:

last(), position(), count(), id(), name(),
substring(), concat(), true(), round(), translate()
10. Mai 2001
XSL - Dokumente mit Stil
52
XPath
 Beispiele für location paths (2):
location path
Abkürzung Beschreibung
/child::html/child::
body/child::html[2]
/html/body/t Die zweite Tabelle im HTML-Body
able[2]
/descendant-or//table[@wi Alle Tabellen, die "50%" Breite haben
self::table[attribute:: dth =
width = "50%"]
"50%"]
//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
53
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
54
XSL FO
 XSL FO=XSL Formatting Objects
 XML Sprache, realisiert durch Namensraum „fo“

xmlns:fo=„http://www.w3.org/1999/XSL/Format“
 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
55
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
56
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
57
XSL FO
für verschiedene Ausgabemedien können
dank XSL verschiedene FO definiert werden


z.B. seitenorientiert für Druck, nichtseitenorientiert für HTML
z.B. komplex für HTML, simpel für WAP/WML
10. Mai 2001
XSL - Dokumente mit Stil
58
XSL FO
 Bessere
Internationalisierung als
bei CSS


10. Mai 2001
XSL - Dokumente mit Stil
Unterstützung für alle
Kombinationen von
vertikaler und horizontaler
Schreibrichtung
bei logischen
Richtungsangaben „start“,
„end“, ... statt „left“,
„bottom“, ...
59
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
60
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
61
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
62
XSL FO
cover
10. Mai 2001
leftPage
XSL - Dokumente mit Stil
rightPage
63
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
64
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
65
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
66
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
67
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
http://www.ibiblio.org/xml/books/bible/updates/15.html
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
68
XSL FO
areas
regions
block areas
line areas
inline areas
charakter areas
10. Mai 2001
XSL - Dokumente mit Stil
69
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 XSLTAnwendung
10. Mai 2001
XSL - Dokumente mit Stil
70
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
71
XSL – Ein Beispiel
 telemallCOMMUNITY
benutzt XML/XSL


10. Mai 2001
warum?
5 Gründe für den Einsatz von
XML!
XSL - Dokumente mit Stil
72
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 WorkFlow-Prozesse, z.B. können Implementierung und
Webdesign „zeitgleich“ beginnen
10. Mai 2001
XSL - Dokumente mit Stil
73
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 CEund Palm-Geräte, Print-Medien etc.
10. Mai 2001
XSL - Dokumente mit Stil
74
XSL – Ein Beispiel
 Grund 4: Strenge Modularisierung durch offene
Protokolle

Einzelne Bestandteile des Systems sind autarke
Applikationen, und bieten ihre Dienste durch eine XMLSchnittstelle (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
75
GIF, JPG, NSK-TIFF etc.
AVI, AU, WAV,
WMA, MP3 etc.
Veröffentlicher
DOC, HTML,
PDF, etc.
MPG, WMV,
RM, etc.
JPEG, GIF etc.
10. Mai 2001
XSL - Dokumente mit Stil
76
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
77
<record ikey="1000" parentid="100">
<v_1 ikey="1000">
<date>2001-03-09 17:36:49</date>
<authorid>12364</authorid>
<authorname>Manfred Mustermann</authorname>
<authoremail>
[email protected]
</authoremail>
<authorinitials>MM</authorinitials>
<nodeicon src="http:.."/>
<subject src="http:..">
Datenschützer warnen vor gläsernem
Internet-Nutzer
</subject>
<newlink src="http:..">neu</newlink>
<dellink src="http:..">loeschen</dellink>
</v_1>
</record>
10. Mai 2001
XSL - Dokumente mit Stil
78
XSL – Ein Beispiel
Schauen wir uns nun das Ergebnis der
Umwandlung mittels drei verschiedener
XSL-Stylesheets an:
10. Mai 2001
XSL - Dokumente mit Stil
79
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
80
XSL – Ein Beispiel
10. Mai 2001
XSL - Dokumente mit Stil
81
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
82
XSL – Ein Beispiel
10. Mai 2001
XSL - Dokumente mit Stil
83
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
84
XSL – Ein Beispiel
10. Mai 2001
XSL - Dokumente mit Stil
85
XSL – Ein Beispiel
10. Mai 2001
XSL - Dokumente mit Stil
86
XSL – Ein Beispiel
Informationen werden
umgewandelt und
mehrfach
verwendet
XML
ermöglicht
heterogene
Lieferkanäle!
10. Mai 2001
XSL - Dokumente mit Stil
87
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
88
XSL - Zusammenfassung
Vorteile gegenüber CSS



ein erweitertes Formatierungsmodell
bessere Internationalisierung und mehr SchreibModi
Unterstützung von Linking
10. Mai 2001
XSL - Dokumente mit Stil
89
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
90
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. www.microsoft.com
10. Mai 2001
XSL - Dokumente mit Stil
91
Software
SAXON home page

http://users.iclway.co.uk/mhkay/saxon/
Sablotron: XSL Transformations
Processor

http://www.gingerall.com/charliebin/get/webGA/act/sablotron.act
FOP (Apache)

http://xml.apache.org/fop/
10. Mai 2001
XSL - Dokumente mit Stil
92
Software
 Unicorn XML Toolkit

http://www.unicornenterprises.com/products_xmlkit.html
 Antenna House XSL Formatter

http://www.antennahouse.com/xslformatter.html
 Übersicht von Free XML Tools

http://www.garshol.priv.no/download/xmltools/name
_ix.html
10. Mai 2001
XSL - Dokumente mit Stil
93
Software
 Übersicht von Free XML Tools

http://www.garshol.priv.no/download/xmltools/name
_ix.html
 XML Software Guide: Specialized XML
Software

http://wdvl.com/Software/XML/special.html
 XML Software Guide: Additional XML Software
Resource Lists

http://wdvl.com/Software/XML/resources.html
10. Mai 2001
XSL - Dokumente mit Stil
94
Software
 XMLSOFTWARE XML Editors

http://xmlsoftware.com/editors/
 XMLSOFTWARE XML Browsers

http://www.xmlsoftware.com/browsers/
 XML Software Guide: XML and XSL Editors

http://wdvl.com/Software/XML/editors.html
 XML.com Editors

http://www.xml.com/pub/pt/3
10. Mai 2001
XSL - Dokumente mit Stil
95
Literatur
 Extensible Markup Language (XML)

http://www.w3.org/TR/REC-xml
 Extensible Stylesheet Language (XSL)

http://www.w3.org/Style/XSL/
 XSLT.com - Resource site for tools , events , books
, tutorials and other resources related to xslt , xsl ,
xml

http://www.xslt.com/
10. Mai 2001
XSL - Dokumente mit Stil
96
Literatur
XSL Transformations (XSLT)

http://www.w3.org/TR/xslt
XML Path Language (XPath)

http://www.w3.org/TR/xpath
Robert Wruck: XLink, XPath & XPointer

http://www.fhwedel.de/~si/seminare/ws00/Ausarbeitung/3.xlin
k/xlink0.htm
10. Mai 2001
XSL - Dokumente mit Stil
97
Literatur
ix 1/2001: „XSLT-Tutorial“

http://www.heise.de/ix/artikel/2001/01/167/
XML.com: What is XSLT?

http://www.xml.com/pub/a/2000/08/holman/inde
x.html
ZVON.org

http://www.zvon.org
10. Mai 2001
XSL - Dokumente mit Stil
98
Literatur
XMLNews.org: XML and the news industry

http://www.xmlnews.org/
XSLINFO

http://www.xslinfo.com/
xml.org

http://xml.org/
10. Mai 2001
XSL - Dokumente mit Stil
99
Literatur
 Jens Wilke: Abfragesprachen für XML-Dokumente

http://www3.informatik.tumuenchen.de/public/lehre/lehre.WS00/HS00Ausarbeitungen/HS00-Ausarbeitung8.pdf
 Heiko Faasch: XSLT- Die XSL
Transformationssprache

http://www.fhwedel.de/~si/seminare/ws00/Ausarbeitung/5.xslt/xslt0.ht
m
10. Mai 2001
XSL - Dokumente mit Stil
100
Literatur
 Eugen Dück: Proseminar Datenmodellierung Vortrag über XML

http://www3.informatik.tumuenchen.de/public/lehre/lehre.WS00/PS00Ausarbeitungen/dueck-xmlproseminar.html
 Andreas Kempf, Mario Ganter, Jörg Knaust,
Markus Kurczek: Extensible Style Language

http://stio1.sari.fh-wuerzburg.de/student/i199/xsl/
10. Mai 2001
XSL - Dokumente mit Stil
101
Literatur
XML in der Praxis - von Henning Behme
und Stefan Mintert

http://www.mintert.com/xml/buch/
XT

http://www.jclark.com/xml/xt.html
Mario Jeckle: XML

http://www.jeckle.de/xml
10. Mai 2001
XSL - Dokumente mit Stil
102
Kontakt & Downloads
Fabian Wleklinski:

[email protected]
Quellcodes und Folien im PPT-, PDF-, PSund HTML-Format verfügbar unter:

http://www.stormzone.de/uni/Hauptstudium/
seminare/wwwdb/list.php3
10. Mai 2001
XSL - Dokumente mit Stil
103
Ende
 Das war‘s!
10. Mai 2001
XSL - Dokumente mit Stil
104