XSL - Dokumente mit Stil

Slides:



Advertisements
Ähnliche Präsentationen
Einführung in HTML (Hypertext Markup Language)
Advertisements

Verarbeiten und Präsentieren von
WML – Wireless Markup Language Vortrag von Eduard Jakel.
Druck / Ausgaben unter LSF
Anmerkungen zu XML Im September 2000 Entwicklung/Anspruch von XML
Zurück zur ersten Seite n Style Sheets sind im Prinzip Formatvorlagen für HTML-Dokumente n Über Style Sheets lassen sich zentrale Layout-Vorgaben für eine.
Seminar: XML für Fortgeschrittene Referent: Katrin Apel
XML - Aufbau und Struktur - mit Einsatz im B2B
IMS Universität Stuttgart 1 Einführung in XML Hannah Kermes HS: Elektronische Wörterbücher Do,
HTML - Einführung Richard Göbel.
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
DOM (Document Object Model)
Internetstruktur Das Internet besteht aus vielen Computern, die weltweit untereinander vernetzt sind.
XINDICE The Apache XML Project Name: Jacqueline Langhorst
XPATH XML Path Language. Xpath – XML Path Language IT Zertifikat - Daten und Metadatenstandards: XPath 2 Entwicklung des W3C Adressierungssprache für.
XML - Abfragesprache Xpath. Problemstellung Unsere XML-Datei steht und wir wollen alle 1. Titel aller vergangenen Sendungen automatisch aus den Playlists.
HTML - Eine erste Annäherung
Cascading Style Sheets
© 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.
XML Standardisierungen und Abfragesprachen
Einführung XML XML Einführung Andreas Leicht.
XPointer Die Xpointer beschreiben einen Ort oder Bereich innerhalb einer XML-Instanz. Die XPointer bauen auf der XML Path Language auf. Die XPointer ist.
Xlink / Xpointer - Framework
Cascading Style Sheets
© data2type 2005, 1 Publishing mit XML Einsatz von XSL für das multimediale, automatisierte Publishing.
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 HTML - Einführung Richard Göbel. FH-Hof Komponenten des World Wide Webs WWW Browser HyperText Transfer Protocol (HTTP) via Internet WWW Server.
1 Seminar 2004/2005 von Auszeichnungssprache XPath Ein Referat von Wei CAI
- XML-Path Language (xPath) ist eine Empfehlung des W3C - es wurde entwickelt, um durch ein XML- Dokument zu navigieren - und ist ein großer Teil von.
XSLT.
Vortrag HTML, XHTML, DHTML
XML - Konzepte XHTML XML Base XPath XInclude XLink XForms XPointer
Datenbanktechnologie Daniel Ebner SS Mai Ulrike Lohner.
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.
Java für Fortgeschrittene
Tutorium zur LV Online Research Ein Computerprogramm tut, was Du schreibst, nicht was Du willst.
XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.
XPath Was ist XPath XPath ist eine Syntax für das Definieren der Teile eines XML-Dokumentes. XPath benutzt Pfade, um XML-Elemente zu definieren. XPath.
XSL und XSLT1 eXstensible Stylesheet Language und eXstensible Stylesheet Language Transformation.
Übersicht Was ist cocoon? Separation of Concerns Pipeline Modell
Verarbeiten von XML-Daten
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
XML (Extensible Markup Language)
ADAT©2004 Dipl. - Ing. Walter SabinSeite: 1 Version 1.0a XML EXTENSIBLE MARKUP LANGUAGE.
Trust and context using the RDF- Source related Storage System (RDF‑S3) and easy RQL (eRQL) Karsten Tolle und Fabian Wleklinski.
HTML HyperText Markup Language Die Programmiersprache des WWW
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
Hypertext Markup Language
© 2001 Sven Dammann1 Aufbau Integrierter Informationssysteme XML Bearbeitung und relationale Abbildung Sven Dammann Martin-Luther-Universität Halle-Wittenberg.
CSS Cascading Style Sheets
Cascading Style Sheets
SOAP.
HTML Hypertext Markup Language
Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema XML, DTDs und XML-Schema - Stefan Kurz, 25. April 2003.
- Warum: Das HTML-Dilemma
IT-Zertifikat der Phil.Fak Kurs 4: Daten- und Metadatenstandards Patrick Sahle XML-BasicsWS 08/09.
Seminar zur Geoinformation Folie 1 Inhalt: –XML –XML- SCHEMA –XSL –Syntax –GML Seminar zur Geoinformation Datenaustausch mit XML / GML im InternetDatenaustausch.
IT-Zertifikat_Seminar: Metadatenstandards XSLT Eine Transformationssprache.
Was gibt’s neues im Bereich Anpassung Fabian Moritz Consultant, Developer SharePointCommunity.de.
XSLT I Re-usable Content in 3D und Simulationssystemen Dozent: Prof. Manfred Thaller Referentin: Elisabeth Chang.
5.Februar 2007 – 1Vorlesung Elektronisches Publizieren: Formatierung von XML-Dokumenten mit XSL Formatierung von XML-Dokumenten — XSL — Anne Brüggemann-Klein.
 Präsentation transkript:

XSL - Dokumente mit Stil Ein Vortrag im Rahmen des Seminars „ WWW und Datenbanken“ SS 2001 Referent: Fabian Wleklinski

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

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

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

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

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

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

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

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

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

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

XSL - Dokumente mit Stil 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

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

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

XSL - Dokumente mit Stil DSSSL XSL SGML XML XHTML CSS HTML 10. Mai 2001 XSL - Dokumente mit Stil

XSL - Dokumente mit Stil XML XSLT XPath XSL FO 10. Mai 2001 XSL - Dokumente mit Stil

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

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

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

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

XSL - Dokumente mit Stil XSLT XSLT=XSL Transformations XML Sprache, realisiert durch Namensraum „xsl“ xmlns:xsl=http://www.w3.org/1999/XSL/Transform 10. Mai 2001 XSL - Dokumente mit Stil

XSL - Dokumente mit Stil XSLT <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 ../table/@width Attribute „ WIDTH“ aller Tabellen, die Kinder des Eltern-Knotens sind 10. Mai 2001 XSL - Dokumente mit Stil

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

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%"] //table[@width = "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

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

XSL - Dokumente mit Stil 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

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

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

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

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

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

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

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

XSL - Dokumente mit Stil XSL FO cover leftPage rightPage 10. Mai 2001 XSL - Dokumente mit Stil

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

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

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

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

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 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

XSL - Dokumente mit Stil XSL FO areas regions block areas line areas inline areas charakter areas 10. Mai 2001 XSL - Dokumente mit Stil

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

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

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

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

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

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

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

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

XSL - Dokumente mit Stil <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> musterma@informatik.uni-frankfurt.de </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

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

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

XSL - Dokumente mit Stil XSL – Ein Beispiel 10. Mai 2001 XSL - Dokumente mit Stil

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

XSL - Dokumente mit Stil XSL – Ein Beispiel 10. Mai 2001 XSL - Dokumente mit Stil

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

XSL - Dokumente mit Stil XSL – Ein Beispiel 10. Mai 2001 XSL - Dokumente mit Stil

XSL - Dokumente mit Stil XSL – Ein Beispiel 10. Mai 2001 XSL - Dokumente mit Stil

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

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

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

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

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. www.microsoft.com 10. Mai 2001 XSL - Dokumente mit Stil

XSL - Dokumente mit Stil Software SAXON home page http://users.iclway.co.uk/mhkay/saxon/ Sablotron: XSL Transformations Processor http://www.gingerall.com/charlie-bin/get/webGA/act/sablotron.act FOP (Apache) http://xml.apache.org/fop/ 10. Mai 2001 XSL - Dokumente mit Stil

XSL - Dokumente mit Stil Software Unicorn XML Toolkit http://www.unicorn-enterprises.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

XSL - Dokumente mit Stil 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

XSL - Dokumente mit Stil 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

XSL - Dokumente mit Stil 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

XSL - Dokumente mit Stil 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.fh-wedel.de/~si/seminare/ws00/Ausarbeitung/3.xlink/xlink0.htm 10. Mai 2001 XSL - Dokumente mit Stil

XSL - Dokumente mit Stil 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/index.html ZVON.org http://www.zvon.org 10. Mai 2001 XSL - Dokumente mit Stil

XSL - Dokumente mit Stil 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

XSL - Dokumente mit Stil Literatur Jens Wilke: Abfragesprachen für XML-Dokumente http://www3.informatik.tu-muenchen.de/public/lehre/lehre.WS00/HS00-Ausarbeitungen/HS00-Ausarbeitung8.pdf Heiko Faasch: XSLT- Die XSL Transformationssprache http://www.fh-wedel.de/~si/seminare/ws00/Ausarbeitung/5.xslt/xslt0.htm 10. Mai 2001 XSL - Dokumente mit Stil

XSL - Dokumente mit Stil Literatur Eugen Dück: Proseminar Datenmodellierung - Vortrag über XML http://www3.informatik.tu-muenchen.de/public/lehre/lehre.WS00/PS00-Ausarbeitungen/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

XSL - Dokumente mit Stil 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

XSL - Dokumente mit Stil Kontakt & Downloads Fabian Wleklinski: fabian@wleklinski.de Quellcodes und Folien im PPT-, PDF-, PS- und HTML-Format verfügbar unter: http://www.stormzone.de/uni/Hauptstudium/seminare/wwwdb/list.php3 10. Mai 2001 XSL - Dokumente mit Stil

XSL - Dokumente mit Stil Ende Das war‘s! 10. Mai 2001 XSL - Dokumente mit Stil