Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Ortwin Winter Geändert vor über 10 Jahren
1
XSL eXtensible Stylesheet Language
2
© Prof. T. Kudraß, HTWK Leipzig Was ist XSL? Analogie zu CSS in HTML XSL ist eine Sprache, die ein wohlgeformtes XML-Dokument in ein neues Dokument transformiert Wunsch: Trennung von Daten und Präsentation XSL ist für optische Gestaltung eines Dokuments zuständig
3
© Prof. T. Kudraß, HTWK Leipzig Entwurfsziele für XSL XSL in bekannter XML-Syntax XSL als Auszeichnungssprache mit allen wichtigen und gebräuchlichen Formatierungsbefehlen möglichst geringe Anzahl optionaler Features XSL Stylesheets sollen leicht verständlich und gut lesbar sein schnelle und unkomplizierte Umsetzung
4
© Prof. T. Kudraß, HTWK Leipzig XSL Spezifikation 1. Benutzung sogenannter Formatting Objects (FO) auf das Erzeugen von Präsentationsdaten ausgerichtet nicht sehr verbreitet werden kaum von den gängigen XSL Prozessoren und Tools unterstützt 2. Erstellen von XSLT Stylesheets XSLT Empfehlung des W3C (21.Nov.2000) XSL Transformations (=XSLT)
5
© Prof. T. Kudraß, HTWK Leipzig Die Komponenten von XSL XPath: Sprache zum Herausgreifen von bestimmten Teilen aus einem Dokument (Traversieren in Dokumentbäumen) XSLT: Sprache, die beschreibt, wie man ein XML- Dokument in ein anderes Dokument umwandeln kann XSL: XSLT + Sammlung von Formatting Objects (FOP) und Formatting Properties
6
© Prof. T. Kudraß, HTWK Leipzig Vorteile von XSL XSL ist wesentlich leistungsfähiger als CSS. Es ist möglich, unterschiedliche Layouts für ein Dokument zu erzeugen. Dazu benötigt man nur ein anderes Stylesheet, die XML-Datei bleibt unverändert. Das Layout von vielen Dateien mit gleichem Stylesheet läßt sich einfacher und schneller ändern als bei HTML-Dateien.
7
© Prof. T. Kudraß, HTWK Leipzig XSLT Stylesheet Processing XML-Daten (strukturell + semantisch) XSLT Stylesheet (Präsentation, optische Form) Ausgabe XML HTML PDF RTF ASCII... XML Prozessor
8
© Prof. T. Kudraß, HTWK Leipzig Apache XML Projekt Quelle: http://xml.apache.org Ziel: Entwicklung von W3C-Standard- konformen XML-Lösungen auf kommerziellem Niveau in offener Zusammenarbeit – XercesXML Parser, in Java/C++ – XalanXSL Stylesheet-Prozessor, in Java/C++ – CocoonXML-based Web Publishing, in Java – FOPXSL Formatting Objects, in Java
9
© Prof. T. Kudraß, HTWK Leipzig Xalan Quelle: http://xml.apache.org/xalan/index.html XSLT Prozessor für die Transformation von XML-Dokumenten in HTML, oder anderen XML-Dokumenttypen Xalan-Java (Version2) ist eine komplette und stabile Implementation der W3-Empfehlung von XSLT und XPath Benutzung z.B. über Kommandozeile, in einem Applet, oder als Modul in einem anderen Programm
10
© Prof. T. Kudraß, HTWK Leipzig FOP (Formatting Object Processor) Quelle: http://xml.apache.org/fop Ziele: – Entwicklung eines XSL FO=>PDF Formatierer – Konform zur W3C-Empfehlung (21.11.2000) – Berücksichtigung der PDF-Spezifikation (11.03.1999) XSL Formatting Objects: Programm zum Erzeugen von PDF / AWT / TXT / PRINT... aus XML und XSL Beispiel: fop -xsl foo.xsl -xml foo.xml -pdf foo.pdf
11
© Prof. T. Kudraß, HTWK Leipzig XSL Formatting Model.......... fo:block fo:inline XML Source Area Structure FO Result Tree XSLT
12
© Prof. T. Kudraß, HTWK Leipzig FO Result Tree 1. 2. 3.... 4. 5. 6. <fo:block font-size=18 pt font-weight=bold text-align=centered 7. Vorwort 8. 9. 10. Dieses kleine Dokument zeigt einen FO Result Tree 11. 12. 13. 14.... 15.
13
© Prof. T. Kudraß, HTWK Leipzig Verarbeitung von XML mit XSLT Zugriff auf alle Bestandteile des XML- Baumes – Wurzel – Elemente – Text – Attribute – Namespaces – Processing Instructions – Kommentare Wandeln des Dokumentenbaums mit Hilfe der Vorgaben im Stylesheet in einen Zielbaum
14
© Prof. T. Kudraß, HTWK Leipzig Baumdiagramm XML => HTML sample.xml => sample.html usw. usw.
15
© Prof. T. Kudraß, HTWK Leipzig XSLT Beispiele (1) XSLT Befehle in W3-Spezifikation viele Möglichkeiten zur Transformation: – Einfügen von Text – Sortieren – Numerieren – Bedingungsschleifen u.a. Hinzufügen von Attributen – Hinzufügen eines Attributs zu einem Element im Ergebnisbaum, z.B. Homepage Führt in HTML zu: Homepage
16
© Prof. T. Kudraß, HTWK Leipzig XSLT Beispiele (2) Auswahl: eine Möglichkeit... Auswahl: mehrere Möglichkeiten Text1 Text2 Text3 Auswahl einer beliebigen Anzahl gleicher Elemente... – Bestimmt eine Liste von SourceTree-Knoten zur Verarbeitung – Macht diese Liste von ausgewählten Knoten zur aktuellen Knotenliste – Beginnt Verarbeitung der Knoten in der Reihenfolge der aktuellen Knotenliste
17
© Prof. T. Kudraß, HTWK Leipzig XSLT Beispiele (3) Konstante Automatische Numerierung der Elemente Sortierung der Elemente
18
© Prof. T. Kudraß, HTWK Leipzig Beispiel: ROWSET-Dokumentbaum 7839 KING NEW YORK 7788 SCOTT 7839 KING NEW YORK 7788 SCOTT
19
© Prof. T. Kudraß, HTWK Leipzig Templates Templates = Regeln im Stylesheet beinhalten Bauplan für Konstruktion eines Teils des Ergebnisbaums – wählt ein bestimmtes Element aus, das über das Attribut match (XPath Pattern) näher spezifiziert wird – Regeln wird auf die Wurzel (Root Node) angewandt Nutzung mehrerer Templates – Anweisung an den XSLT-Prozessor, mit den Kind-Knoten fortzusetzen, so daß der Baum rekursiv verarbeitet werden kann
20
© Prof. T. Kudraß, HTWK Leipzig Match Source - Construct Result 1.Einfügen von Literalen in den Result Tree, z.B. id 2.Bestimmung der Attributwerte der Form {XPathExpr} und Einsetzen in Result Tree 3.Verarbeitung aller Elemente aus XSLT Namespace in Dokumentenreihenfolge mittels
21
© Prof. T. Kudraß, HTWK Leipzig Single-Template Stylesheet <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
22
© Prof. T. Kudraß, HTWK Leipzig Verarbeitung
23
© Prof. T. Kudraß, HTWK Leipzig Ergebnis der Verarbeitung 7839 KING 7788 SCOTT 7839 KING 7788 SCOTT
24
© Prof. T. Kudraß, HTWK Leipzig Vereinfachtes Stylesheet <html xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
25
© Prof. T. Kudraß, HTWK Leipzig Input- und Output-Optionen Serialization – Ausschreiben des Ergebnisbaums als Zeichenstrom – Default Serialization Rules (in XSLT1.0 Spezifik.): UTF-8 Character Set steuert Serialisierungsprozeß Ausgabe-Methoden – Default, Ausgabe als well-formed XML – Serialisiert Elemente und Attribute in HTML4.0-gemäßer Form für entsprechende Browser, kein well-formed XML! – Ausgabe der Textknoten entspr. Reihenfolge im Dokument, für Transformation in Quellcode-Dateien, E-Mail etc.
26
© Prof. T. Kudraß, HTWK Leipzig XSLT Output Methoden
27
© Prof. T. Kudraß, HTWK Leipzig Beispiel im Detail: Text-Output Behandlung von Steuerzeichen – XSLT Stylesheets sind wohlgeformte XML-Dokumente – einige Zeichen benötigen Escape-Zeichen & = & oder & (im Unicode) – Zeilenumschaltung (Carriage Return) 
 (hexadezimal) oder 
 (dezimal) Hello & Family,
Your id is Hello King & Family, Your id is 7839
28
© Prof. T. Kudraß, HTWK Leipzig Nutzung mehrerer Templates
29
© Prof. T. Kudraß, HTWK Leipzig Transformation mit mehreren Templates höhere Flexibilität bessere Wiederverwen- dung Analogie zu Java-Klassen
30
© Prof. T. Kudraß, HTWK Leipzig Built-In Templates Teil jedes Stylesheets MatchConstruct Wurzelelement / oder irgendein Element * Nichts, weiter mit Verarbeitung der Kind- Knoten des aktuellen Knotens Textknoten text() oder Attribut @*Textknoten mit dem Wert des aktuellen Knotens, Kopiere Text oder Attributwert in den Ergebnisbaum Processing Instruction oder KommentarNichts
31
© Prof. T. Kudraß, HTWK Leipzig Anwendung von Wildcards <!-- | EmpUsingRowStar.xsl: | Transform Emp.xml Into using ROW/* to handle any column +--> Beispiel-Stylesheet mit mehreren Templates für ROWSET/ROW
32
© Prof. T. Kudraß, HTWK Leipzig Behandlung von Whitespaces oraxsl Emp.xml EmpUsingRowStar.xsl erzeugt Ausgabe: 7839 KING 7788 SCOTT 7839 KING 7788 SCOTT Ergänze Stylesheet: Ignoriere alle Elemente, die nur aus Leerzeichen bestehen
33
© Prof. T. Kudraß, HTWK Leipzig Datenbankzugriff (XSQL + XSL) SELECT empno, ename, sal, deptno FROM emp ORDER BY ename DESC Kombination von Emp.xsql mit EmpUsingRowStar.xsl ROW/* Template funktioniert für alle Spalten Anwendung verschiedener Stylesheets möglich
34
© Prof. T. Kudraß, HTWK Leipzig Arbeit in verschiedenen Modi Problemstellung: Anzeige des Tabellenkopfes in generischer Weise 2 Modi benötigt: Modus Column Headers vs. Regulärer Modus
35
© Prof. T. Kudraß, HTWK Leipzig Transformation ROWSET HTML Tabelle <!-- | TableBaseWithCSS: | Basic stylesheet to format any ROWSET of ROWS into a table | with column headings in a generic way. Leverages Table.css | CSS stylesheet to control font/color information for the page. +-->
36
© Prof. T. Kudraß, HTWK Leipzig Anpassen und Verfeinern von Stylesheets Importieren eines Base Stylesheet und Hinzufügen eines neuen Templates Neues Stylesheet EmpOver2000.xsl: 2000 --> 2000 ]"> Erweitere Table.css, z.B..Highlight {background-color: e7e7e7e } Verwende Emp.sql und transformiere entsprechend EmpOver2000.xsl
37
© Prof. T. Kudraß, HTWK Leipzig Anpassen und Verfeinern von Stylesheets (Forts.) Ergebnis von EmpOver2000.xsl: Hervorhebung aller Angestellten in Tabelle mit Gehalt > 2000 Weitere Beispiele: Formatiere gerade Zeilen in einer Farbe Formatiere ungerade Zeilen in einer anderen Farbe Formatiere Zeilen aus Dept 20 durch Ausgabe von Classified Mehr Informationen: Siehe S. Muench Building Oracle XML Applications, Verlag OReilly, 2000 (Kapitel 7). http://www.oreilly.com/catalog/orxmlapp/chapter
38
© Prof. T. Kudraß, HTWK Leipzig Prioritäten zur Konfliktvermeidung Basis-Schema für Auswahl von Templates * SOMETHING oder xyz:SOMETHING SOMETHING[predicate] oder SOMETHING/SOMETHINGELSE Problem bei mehrfachen Pattern auf derselben Stufe – Einführung eines priority=realnumber Attributes im Template – Auswahl des Templates mit höchster Priorität durch Prozessor Beispiel-Anwendung: Abwechselndes Hervorheben von Tabellenzeilen vs. Ausblenden von Zeilen aus DEPT = 20 Template für DEPT=20 hat höhere Priorität
39
© Prof. T. Kudraß, HTWK Leipzig Reusable Named Templates Idee: Alternative zu Pattern-Matching-Templates Beispiel: Formatieren von Tabellenzellen mit numerischen Werten, z.B. Anzeige mit Dollar und Cent Aufruf: – muß explizit erfolgen mittels – Literale und xsl Actions genauso instanziiert als ob sie im aufrufenden Template eingefügt wären aufgerufenes Template sieht gleichen aktuellen Knoten wie rufendes
40
© Prof. T. Kudraß, HTWK Leipzig Library Stylesheets Einfügen von Named Templates in Library Stylesheet: CommonLibrary.xsl Importieren von CommonLibrary.xsl
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.