XML Style Sheets (XSL)


XPath

Tiger

 
 

Verweise auf Teile/Parts von XML Dokumenten (als Baum von Knoten betrachtet). Identifikation von Parts durch Vergleich von Zeichenketten.

Wird in XSLT und XPointer zur Spezifikation von Fragmenten verwendet. Diese definieren auch den Kontext in dem die XPath Ausdrücke ausgewertet werden.

Aufbau eines Pfadbestandteils

achse::knotentest[prädikat]

Beispiel

child::para[position()=7]

http:://host/pfad/resource#xpointer(child::para[position()=7])

Komposition von Pfaden durch Pfadbestandteile, die durch / getrennt werden.

Achsen

XPath Achsen
XPath Achsen, Quelle Crane Softwrights, 2001

ancestor, descendant, following, preceding und self Partitionieren die Menge aller Knoten eines Dokuments.

Knoten-Tests

Beispiel: alle para Element-Knoten

child::para

Beispiel: das href Attribut des Knotens

attribute::href

Beispiel: alle Textknoten

child::text()

Prädikate

Beispiel: der 7. Knoten

[ position() = 7 ]

Funktionen

Abkürzungen

Zur Vereinfachung gibt es eine ganze Reihe von kompakteren Bezeichungen der Pfadbestandteile.


XPointer

Adler

 
 

Verweise auf Teile/Fragmente von XML Dokumenten. Fragmente sind einzelne Punkte/Objekte/Knoten und zusammenhängende Bereiche von Punkten. Identifikation von Fragmenten durch Vergleich von Zeichenketten.

Steht in enger Beziehung zu DOM. Baut auf XPath auf. Wird zusammen mit XLink zur Definition von XML Links benötigt.

URL Aufbau mit XPointer
service:://host/pfad/resource#xpointer-expr
service:://host/pfad/resource|xpointer-expr

dabei ist xpointer-expr:
html-name
oder xpointer( xpath-expr )
oder xpointer( xpath-expr to xpath-expr )

Beispiele

#intro

#xpointer(id("intro"))

#xpointer(//*[@id="intro"])

Erweiterungen gegenüber XPath

neue Typen point (ein Knoten oder ein Zeichen einer Zeichenkette) und range ( begin-expr to end-expr ) und einige dazu gehörige Funktionen, z.B. point() und range(...).

Beispiele

xpointer(
    id("sec2.1")/descendant::P[last()] to 
    id("sec2.2")/descendant::P[first()]
)

 


XML Style Sheets

Wolf

 
 

Am Anfang XSL, jetzt aufgeteilt in XSL Transformations (XSLT) und XSL Formating (FO).

Überblick

Beispiele

CSS:
EM { font-family: roman }
XSLT to HTML:
<xsl:template match="em">
  <I>
  <xsl:apply-templates/>
  </I>
</xsl:template>
(XSLT to CSS: )
<xsl:template match="em">
  <css:chunk font-family="roman">
  <xsl:apply-templates/>
  </css:chunk>
</xsl:template>
CSS mit XML:
<?xml-stylesheet href="url" type="text/css" 
  media="screen" ... ?>
XSLT to LaTeX:
<xsl:template match="em">
  <xsl:text>{\em </xsl:text>
  <xsl:apply-templates/>
  <xsl:text>}</xsl:text>
</xsl:template>

Beispiel eines XML Dokuments

Konversion nach HTML und LaTeX mit Xalan/Xerces

 

XSL Transformations

Struktur und Aufbau von XSLT Style Sheets

Aus Knoten (nodes) eines Dokuments werden Ergebnisknoten gebildet.

Knoten sind: Elemente, Attribute, etc.

Patterns, Muster in match und select

 

Erzeugen von Knoten in Templates

 

Verarbeitung in Templates

Beispiele aus dem Camena Projekt.

 

XSL Formatting Objects

Zunächst für Online und Druck-Dokumente.

Spezifikation der grundlegenden Elemente, ohne die Details einer Implementierung festzulegen.

Formatierung durch areas (wie box in CSS) und spaces (Zwischenräume).

elementare Objekte:

Attribute angelehnt an CSS

 

© Universität Mannheim, Rechenzentrum, 1998-2002.

Heinz Kredel
Last modified: Wed Dec 26 12:20:32 MET 2001