XML – Grundlagen und Anwendungen Teil 6: Verarbeitung von XML-Dokumenten: XSLT Prof. Dr. Michael...

Preview:

Citation preview

XML – Grundlagen und Anwendungen

Teil 6: Verarbeitung von XML-Dokumenten: XSLT

Prof. Dr. Michael Löwe, FHDW Hannover

XML Grundlagen und Anwendungen

2

InhaltMotivation

Verarbeitungsmodell: Visitor auf Composite

Muster

Kontrolle der Abarbeitung

XSLT-Programmierung

Zusammenfassung

XML Grundlagen und Anwendungen

3

MotivationXML-Sprachen sind Kommunikationsprotokolle

Sender/Empfänger müssen Informationen verarbeiten

Verarbeitung ist – Selektion

– Rekombination

– Anwenden spezifischer Interpretationsfunktionen

Die ersten beiden Punkte sind Sprachtransformationen

XSLT: Standard zur Formulierung von Übersetzungen

XML Grundlagen und Anwendungen

4

Beispiel 1: VisualisierungBrowser können HTML und sonst nichts

Standarddarstellung von XML-Dialekt: Baum

Unübersichtliche Aufbereitung für den menschl. Betrachter

Gewünscht: Angemessene Anordnung und Hervorhebung

Gewünscht: Ganz normale WWW-Seite

Zielsprache:HTML/XHTML (Instanz von XML)

Aufgabe: Übersetzung von XML-Dialekt nach HTML

Und zwar so, dass jeder Browser das versteht!

XSLT als Style Sheet

XML Grundlagen und Anwendungen

5

Beispiel 2: PublikationWie Beispiel 1 nur mit

– PDF– RTF– Tex/DVI

XSLT als Drucker

XML Grundlagen und Anwendungen

6

Beispiel 3: Firmenverbund

Versicherung

Werkstatt

Gutachter

Mietwagen

MedizinischeDienste

Assisteur

„Schadenakte“(XML-Dokument)

XSLT als Adapter

XML Grundlagen und Anwendungen

7

Beispiel 4: VersionierungNichts ist konstanter als der stetige Wandel.

XML-Modelle (Schemata) werden verändert.

Was geschieht mit den vorhandenen Instanzen?– Nichts tun und mit mehreren Modellen leben (?)– An die neuen Modelle anpassen (!)

Migration: Übersetzung von XML-Sprachen

XSLT als Versionskonverter (abgeleitet ?)

XML Grundlagen und Anwendungen

8

Verarbeitungsmodell

Textordnung

XML Grundlagen und Anwendungen

9

Übung 9Wenden Sie ein „leeres“ Style Sheet auf eines

unserer Buchdokumente an!

Was erhalten Sie?

XML Grundlagen und Anwendungen

10

Einfache KnotenmusterFür jeden Knoten wird ein Stil festgelegt:

1. Ausgabe vor der Behandlung der Kindknoten

2. Ausgabe nach der Behandlung der Kindknoten

Beispiele: Titel <h2 align=„center“> kinder </h2>

Absatz <p align=„left“> kinder </p>

IN XSLT:<template match=„Absatz“>

<p align=„left“> <apply-templates/> </p>

</template>

XML Grundlagen und Anwendungen

11

Übung 9 FortsetzungSchreiben Sie einfache Knotenmuster für Bücher

mit <template match=„...“>...</...> ,<apply-templates/> und <value-of select = „XPath“/>!

• Titel • Vorname• Nachname• Paragraph• Bemerkung

XML Grundlagen und Anwendungen

12

Textordnung durch DefaultsWurzel und Elemente:

<template match=„* | /“><apply-templates/>

</template>

Text und Attribute:<template match=„text() | @*“>

<value-of select=„.“/></template>

Kommentare:<template match=„comment() | ... “ />

XML Grundlagen und Anwendungen

13

Kontrolle der AbarbeitungSpezielle Selektion der Knoten, auf die Muster

angewendet werden sollen:<apply-templates select =„XPath“/>Beispiel:

<template match=„autor“><apply-templates select =„name“/>,<apply-templates select =„vorname“/>

</template>

XML Grundlagen und Anwendungen

14

Übung 9 FortsetzungSchreiben Sie die Muster für Bücher so, dass

Endnoten an das Ende verlagert werden!

<apply-templates select =„XPath“/>

XML Grundlagen und Anwendungen

15

Muster programmierenModus:

Für dasselbe Element lassen sich mehrer Muster mit verschiedenen Modi angeben:

<template match = „...“ mode = „...“/>

Beim „Aufruf“ von

<apply-templates select = „...“ mode =„...“/>

kann man den Modus setzen

Fallunterscheidung:

<if test = „...“> inhalt </if>

XML Grundlagen und Anwendungen

16

Übung 9 FortsetzungNutzen Sie Modi und Fallunterscheidung, um

Endnoten nur noch am Ende der Ausgabe sichtbar zu machen!<template match = „...“ mode = „...“/>

<apply-templates select = „...“ mode =„...“/>

<if test = „...“> inhalt </if>

XML Grundlagen und Anwendungen

17

Weitere MöglichkeitenWertermittlung für Zielattribute zur Laufzeit „{...}“

Schleifen

Kopieren von Knoten

Expliziter Aufruf benannter Muster

Übergabe von Parametern

Globale Variablen

Explizite Erzeugung von Elementen und Attributen

Schlüsselisten

XML Grundlagen und Anwendungen

18

Übung 10Vervollständigen sie das Style Sheet zu

Ausgabe von DTD‘s in XML in HTML!

XML Grundlagen und Anwendungen

19

ZusammenfassungXSLT trennt Inhalt von der Form

XSLT erlaubt die Transformation von XML in– andere XML-Dialekte (HTML, XHTML, ...)

– Text (RTF, PDF, TEX, etc.)

Impliziter Kontrollfluss für deklarative Muster führt zu – schnellen Ergebnissen bei einfachen Transformationen

– komplizierten Strukturen bei komplexen Transformationen

XSLT sind Programme in XML für XML

XML Grundlagen und Anwendungen

20

DiskussionXSLT für XML wie

Macros für Word / Excel

Stored-Procedures für DBMS

Java für Objektstrukturen

Pearl- oder Ruby-Skripte für Texte

....

Vorteile ??? Nachteile ???

Recommended