XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der...

42
XSLT Verarbeiten von XML-Daten Peter Langmann

Transcript of XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der...

Page 1: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.

XSLT

Verarbeiten von XML-Daten

Peter Langmann

Page 2: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.

19.10.2006 2

Parsing

• Parsing nennt man den Prozess der Prüfung eines Eingabetextes

hinsichtlich seiner Wohlgeformtheit und Gültigkeit in Bezug auf ein Regelsystem.

• Dabei wird der Text in "Tokens" zerlegt (lat. Pars) und in der Regel in einen Syntaxbaum überführt, welcher die Hierarchie der Elemente ausdrückt.

Eingabetext

Lexikalischer Scanner

Parser

Tokens / "Wörter"

Parse-Baum

Weitere Anwendung

Page 3: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.

19.10.2006 3

Parser und XSLT-ProzessorProgramme, die versuchen, den Inhalt von XML-Dokumenten zu „verstehen“, benutzen dazu Parser. Diese prüfen das Dokument auf Wohlgeformtheit und Gültigkeit gemäß den Regeln in der DTD oder im XML-Schema (Validierung).

XSLT-Prozessoren transformieren die geparsten Information des XML-Files und geben die aufbereiteten Daten („result tree“) an die aufrufende Anwendung weiter.

Parser Validierung

Anwendung zb. Browser

xml

dtd

The software responsible for transforming source trees into result trees using an XSLT stylesheet is referred to as the processor. This is sometimes expanded to XSLT processor to avoid any confusion with other processors,

for example an XML processor. W3C

XSLT-Prozessor

Page 4: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.

19.10.2006 4

Wohlgeformtheit / Gültigkeit

Wohlgeformt (well formed) ist ein Dokument, wenn es den allgemeinen Regeln von XML entspricht. Es muss keine DTD (kein Schema) vorliegen, um die Wohlgeformtheit zu prüfen. Ist ein Dokument nicht wohlgeformt, wird es vom Parser sofort zurückgewiesen.

Gültig (valid) ist ein Dokument, wenn es wohlgeformt ist und den Regeln der DTD / des Schemas entspricht.

Parser, die auf Gültigkeit überprüfen, nennt man „validierende Parser“.

Parser können am Client laufen (z.B. integriert in Webbrowser) oder am Server (z.B. XSLT-Parser).

Page 5: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.

19.10.2006 5

Darstellungsmöglichkeiten von XML-Daten in Webbrowsern

A. Darstellung eines XML-Files als Text im Browser

B. Auslieferung eines XML-Files und eines CSS-Files: Parsing und grafische Darstellung erfolgt im Browser.

CSS Browser Grafische

Ausgabe

Client

Server

DTD

XML

Transformationen

XSLT

Liefert Document Object Model

XSLT

CSS(optional)

Parser

Page 6: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.

19.10.2006 6

Schematische Darstellung von Transformationen am Server

C. Transformation(en) am Server (Serialisierung). Auslieferung in verschiedensten Formaten.

BrowserRendering

Transformationen HTML

Server

PDFBrowser

PlugIn

Client

XML Datenbank

XSLT

CSS

Parser

(optional)

DTD

XML

Liefert Document

Object Model

SerialisierungsprozessSerialisierungsprozess

Page 7: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.

Result Tree

XLST

XSLT„Extensible Stylesheet Language

Transformations"XSLT = "XSLT ist eine funktionale Programmiersprache. Ihr Zweck ist die Transformation eines XML-Dokumentes in ein anderes Textdokument." Dieses kann verschiedene Formate haben, z.B. Text, HTML oder XML sein.

A transformation expressed in XSLT describes rules for transforming zero or more source trees into one or more result trees. The transformation is achieved by a set of template rules. (W3C)

XSLT – „rules for transforming”

XSLT-Prozessor

Source Tree

Page 8: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.

XSLT

XSLT: Versionen

XLST 1.0 (1999) ursprünglich von James Clark entwickelt.XSLURL: http://www.w3.org/TR/xslt

XSLT 2.0 (2007) Für die derzeitige Weiterentwicklung ist Michael Kay verantwortlich.

URL: http://www.w3.org/TR/xslt20/

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

Page 9: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.

XSLT

XSLT: „Transformation“

XML-Dokumente werden als logischer Baum betrachtet: Die Quell-Bäume („source tree“) der zu transformierenden Dokumente und durch die Transformation die entstehenden Ziel-Bäume („result tree“) der zu erzeugenden Dokumente.

Eine Transformation (ausgedrückt in einem „stylesheet“) besteht aus einer Reihe von einzelnen Transformationsregeln, die Templates (deutsch "Schablonen") genannt werden. Ein Template besitzt ein auf XPath basierendes Pattern (deutsch "Muster"), das beschreibt, für welche Knoten es gilt, und einen Inhalt, der bestimmt, wie das Template seinen Teil des Zielbaums erzeugt.

Page 10: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.

XSLT

XSLT: „Transformation“

Page 11: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.

XSLT

XSLT Voraussetzungen, trivial

XSLT-Prozessor: wir verwenden dazu die Prozessoren, der in Oxygen installiert sind.

XML-Datei, die bearbeitet werden soll (*.xml), wohlgeformt, valide.XSLT-Stylesheet, das die Transformationsanweisungen enthält.

(*.xsl)Ein Stylesheet mit Formatierungsklassen für unsere wichtigsten

Elemente und Standard-Text (*.css) [optional]Eine DTD, optional

XMLXML

XSLT - Anweisungen

XSLT-Prozessor

HTMLHTML

XMLXML

TEXTTEXTDTDDTD

Source Tree

+ CSS+ CSS

Result Tree

Page 12: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.

XLST

Grundlegender Aufbau eines Stylesheets

Ein Stylesheet ist selbst ein gültiges XML-Dokument. Es besitzt folgenden Grundaufbau:

<xsl:template match = "/">

<xsl:apply-templates />

</xsl:template>

Die Tags in Stylesheets werden mit Namensraum-Angaben geschrieben. Dieser wurde im Wurzelelement deklariert.

<?xml version = "1.0" ?>

<xsl:stylesheet version = "1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<!-- TEMPLATES, Verarbeitungsanweisungen -->

</xsl:stylesheet>

Page 13: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.

XSLT

Über Ausgabe-Möglichkeiten

(X)HTML(X)HTML

XMLXML

TEXTTEXT

<xsl:output method = "html" doctype-public -//W3C//DTD XHTML 1.0 Transitional//EN" />

<xsl:output method = "xml"indent = "yes" />

xsl:output method = "text" />

PDFPDF

SVGSVG

ProgrammcodeProgrammcode

VRML-CodeVRML-Code

Page 14: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.

XSLT

Bausteine des Stylesheets

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:output method="html"/>

<xsl:template match="gruss">

<h1>

<xsl:value-of select="."/>

</h1>

</xsl:template>

HauptelementHauptelement

Es gibt 37 XSLT-Elemente, davon 2 Hauptelemente, 12 Elemente der obersten Ebene sowie 23 Anweisungselemente. Bestimmte Elemente verwenden als Attribut Xpath-Ausdrücke.

Element oberste Ebene

Element oberste Ebene

AnweisungselementAnweisungselement

Text, der in den Ausgabestrom

geschrieben wird

Text, der in den Ausgabestrom

geschrieben wird

Xpath-AusdruckXpath-Ausdruck

Page 15: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.

XSLT

XSLT-Beispiel XSLT-Stylesheet:<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

version="1.0"> <xsl:output doctype-public="-//W3C//DTD HTML 4.01//EN"

method="html" encoding="UTF-8" indent="yes"/> <xsl:template match="/"> <html> <head></head> <body> <xsl:apply-templates select=„/personenliste/person" /> </body> </html> </xsl:template> <xsl:template match=„person"> <h1> <xsl:value-of select="." /> </h1> </xsl:template> </xsl:stylesheet>

Page 16: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.

XSLT

Analyse des Beispiels (1)

1. Das XSLT-Stylesheet wird geparst und in eine Baumstruktur überführt.

2. Das Gleiche passiert mit dem XML-Dokument.3. Der Prozessor startet an der Wurzel des XML-Dokuments.

Dieser ist nicht das oberste Element, sondern die "Wurzel des Dokuments„ („root node“) (inkl. aller Verarbeitungsanweisungen etc.). Der Wurzelknoten ist der Startkontext.

WURZEL des Dokuments

Verarbeitungsanweisungen, wie <?xml-

stylesheet .../>Kommentare <!-- -->

Wurzel-Element <personenliste.../>

Weitere Elemente

Startkontext

Page 17: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.

XSLT

Analyse des Beispiels (2)

4. Prozessor: Muss ich irgendwelche Knoten verarbeiten? Ja, es gibt weitere Knoten im Dokument. Und:Es gibt ein "Template" (Vorlage, Schablone).<xsl:template match = "/"> Kontext = /

5. Was soll ich tun? <xsl:apply-templates select = "/lv-group/p" />"Wähle die Kind-Knoten „p" und wende vorhandene Templates auf sie an." Kontext /lv-group/p

WURZEL des Dokuments

Andere Knoten auf der ersten

Ebene ...

Wurzel-Element <personenliste

>

Kontext = /

Page 18: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.

XSLT

Analyse des Beispiels (3)

6. Gibts ein spezielles Template für „person"?Ja, und zwar:<xsl:template match = „p">

7. Was muss ich jetzt tun? Schreibe in den Ausgabestrom:==> <h1>Dann nimm den aktuellen Knoten (und ggf. seine Kinderknoten) und schreibe deren "Inhalt":==> <xsl:value-of select = "."/>Schreibe in den Ausgabestrom:==> </h1>

8. Gibt es weitere Knoten personenliste/person, würde jetzt der person[2] dran kommen. Dann kehrt der Prozessor zum aufrufenden Template zurück.

Page 19: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.

XPath

XPathDie XML Path Language (XPath) ist eine vom W3-Konsortium entwickelte Anfragesprache,

um Teile eines XML-Dokumentes zu adressieren.

Version 1.0: http://www.w3.org/TR/xpathVersion 2.0: http://www.w3.org/TR/xpath20/

Page 20: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.

XPath

Xpath 1.0: Definition nach W3C

The primary purpose of XPath is to address parts of an XML document. In support of this primary purpose, it also provides basic facilities for manipulation of strings, numbers and booleans.

XPath uses a compact, non-XML syntax to facilitate use of XPath within URIs and XML attribute values. XPath operates on the abstract, logical structure of an XML document, rather than its surface syntax.

XPath gets its name from its use of a path notation as in URLs for navigating through the hierarchical structure of an XML document.

XPath models an XML document as a tree of nodes. There are different types of nodes, including element nodes, attribute nodes and text nodes. XPath defines a way to compute a string-value for each type of node.

Page 21: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.

XPath

XPath: Definition

XPath ist eine Nicht-XML-Sprache, die dazu dient, bestimmte Teile eines XML-Dokuments zu identifizieren.

XPath sieht das Dokument (*.xml) als einen Baum von Knoten an. Für jedes Dokument gibt es genau einen einen Wurzelknoten und Wurzelelement.

• "/lv-group/p lokalisiert die Personen-Knoten• / den Wurzelknoten selbst. Der Name des Wurzelements ist

lv-group.

XSLT benötigt XPath-Ausdrücke in bestimmten Attributen, um Knoten oder andere Teile des Dokuments auszuwählen, die verarbeitet werden sollen. <xsl:apply-templates select = "/lv-group/p"/>

Page 22: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.

XPath

XPath: Wurzelknoten – „root node“ (1)

XPath kennt 7 Arten von Knoten im XML-Dokument:

1. Wurzelknoten („root node“): Der Knoten, der das gesamte XML-Dokument enthält. Adressierung mit /. Es enthält nicht nur das „Wurzelelement“ des Dokuments, sondern auch alle anderen Anweisungen davor und dahinter.

The root node is the root of the tree. A root node does not occur except as the root of the tree.

The element node for the document element is a child of the root node.

The root node also has as children processing instruction and comment nodes for processing instructions and comments that occur in the prolog and after the end of the document element.

Page 23: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.

XPath

XPath: Wurzelknoten – „root node“ (2)

Wurzelknoten („root node“) – Grafische Darstellung

WURZEL des Dokuments

Verarbeitungsanweisungen, wie <?xml-

stylesheet .../>Kommentare <!-- -->

Wurzel-Element <lv-group .../>

Weitere Elemente

Startkontext

Page 24: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.

XPath

XPath: Wurzelknoten – „root node“ (3)

Wurzelknoten („root node“) – Grafische Darstellung im „Baumeditor“ von Oxygen.

Page 25: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.
Page 26: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.
Page 27: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.
Page 28: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.
Page 29: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.
Page 30: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.
Page 31: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.
Page 32: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.
Page 33: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.
Page 34: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.
Page 35: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.
Page 36: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.
Page 37: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.
Page 38: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.
Page 39: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.
Page 40: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.
Page 41: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.
Page 42: XSLT Verarbeiten von XML-Daten Peter Langmann. 19.10.20062 Parsing Parsing nennt man den Prozess der Prüfung eines Eingabetextes hinsichtlich seiner Wohlgeformtheit.