• Keine Ergebnisse gefunden

Tutorium 5 XML-Technologien

N/A
N/A
Protected

Academic year: 2022

Aktie "Tutorium 5 XML-Technologien"

Copied!
6
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

XML-Technologien

Tutorium 5

Thema:

XSLT

von: Kain Kordian Gontarska

kainkordian@gmail.com

(2)

XSLT

XSL - Extensible Stylesheet Language:

XPath

XSLT

XSL-FO

XSLT - XSL Transformation:

Programme zur Transformation von XML-Dokumenten

Layout oder Inhalt kann transformiert werden

In XML-Syntax gehalten

Erlaubt XML-Dokumente in beliebige Textformate zu transformieren

Eigenständiges Dokument

Kann mit XML-Dokument verknüpft werden:

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="file.xsl"?>

<root>

<!-- … -->

</root>

(3)

XSLT - Paradigma

Ein XSLT – Stylesheet wird von einem XSLT-Prozessor auf ein XML-Dokument angewandt (Xalan, Saxon, …)

Ein XSLT-Stylesheet besteht aus einer Menge von Transformationsregeln (Templates)

<xsl:template match=“XPath expression“>

<p><xsl:value-of select=“.“/>

</xsl:template>

Alle templates (genauer: XPath Ausdrücke) beziehen sich auf das Eingangsdokument.

Funktionale Sprache: Variablen können nicht überschrieben

(4)

XSLT - Regelauswahl

Alle Regeln werden betrachtet, eine wird angewandt.

Sollte beim Patternmatch mehr als eine Regel gelten, dann wird die konkreteste gewählt. (Die Priorität wächst mit der

Spezialisierung des XPath Ausdrucks.)

Bei gleicher Priorität wird die Reihenfolge im Dokument beachtet.

(Sollte nach Möglichkeit vermieden werden.)

Priorität der Regel mit dem Attribut priority bestimmbar. 0 ist der Standartwert.

Prioritätenverteilung

Direkter Pfad /

Priorität Namensnennung Mit *-Präfix (*/foo) Nur Wildcard (*/*@/node())

0.5 0 -0.25 -0.5

(5)

XSLT – Basic Funktionalität

<xsl:value-of select=“foo“/>- Gibt den Wert der Auswahl zurück (Element, Attribut, XPath, Variable)

<xsl:copy-of select=“bar“/>- Kopiert alle Knoten der Auswahl

<xsl:variable name=“var“ select=“something“/>- Kann als Variable im Template verwendet werden.

<xsl:template match=“bla“/>- Wendet folgende Regel auf alle Knoten an, die gematched werden. (Optional mit Attribut name=“template1“ für call-template)

<xsl:apply-templates/>- Wendet Templates auf alle Kinder des Kontextknotens an. (Optional mit select Attribut)

<xsl:call-template name=“myTemplate“>- Ruft Regel mit gegebenem Namen auf (innerhalb einer Regel), Optional können Parameter übergeben werden.

<xsl:with-parameter name=“myPara“ select=“foo“/>- Übergibt den Parameter und kann von Template aufgerufen werden.

<xsl:parameter name=“myPara“/>- Erwartet Parameter myPara, kann ab hier als Variable

(6)

XSLT – Programmsteuerung

Zu apply-templates und call-template kommen einfachere Strukturen hinzu.

<xsl:if test=“someBooleanXPath“>bla</xsl:if>- Fragt eine Bedingung ab, bevor der Codeteilausgeführt wird, sonst wird hinter dem schließenden Tag weiter gemacht. (Kein Else)

<xsl:choose> - Eröffnet eine Mehrfachauswahl (Von Oben nach Unten)

<xsl:when test=“someBoolean“>bla</xsl:when>- Analog zu if

<xsl:otherwise>boo</xsl:otherwise>- Bei keiner when Übereinstimmung

</xsl:choose>

<xsl:for-each select=“./*“>Do Something</xsl:for-each>- Führt für alle

durch den Ausdruck erreichten Knoten eine Anweisung aus, Nacheinander.

Referenzen

ÄHNLICHE DOKUMENTE

Beispieldatei aus

4 Eine Element darf nicht mehrere gleichnamige Attribute besitzen. 5 Elementnamen müssen

● Wir deklarieren: Elemente, Attribute und Entitäten (Dabei verwenden wir eine der kontextfreien Grammatik ähnliche Syntax).

– Erstellt beim Parsen einen DOM-Baum auf dem nach dem Parsen zugegriffen werden kann. Der DOM-Baum kann wieder in einem XML-Dokument gespeichert

Anfragesprache zur Auswahlvon Knoten in einem XML-Dokument, über Patternmatch und Filter. ● Weist gewisse Ähnlichkeiten zur

If I take one of these HTTP names and I look it up [..] I will get back some data in a standard format which is kind of useful data that somebody might like to know about that

[r]

[r]