Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

XSL eXtensible Stylesheet Language. © Prof. T. Kudraß, HTWK Leipzig Was ist XSL? Analogie zu CSS in HTML XSL ist eine Sprache, die ein wohlgeformtes XML-Dokument.

Ähnliche Präsentationen


Präsentation zum Thema: "XSL eXtensible Stylesheet Language. © Prof. T. Kudraß, HTWK Leipzig Was ist XSL? Analogie zu CSS in HTML XSL ist eine Sprache, die ein wohlgeformtes XML-Dokument."—  Präsentation transkript:

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) &#x0A (hexadezimal) oder &#10 (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


Herunterladen ppt "XSL eXtensible Stylesheet Language. © Prof. T. Kudraß, HTWK Leipzig Was ist XSL? Analogie zu CSS in HTML XSL ist eine Sprache, die ein wohlgeformtes XML-Dokument."

Ähnliche Präsentationen


Google-Anzeigen