XML Style Sheets (XSL)


Einleitung

Wolf

 
 

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

Varianten und Beispiele

CSS:
em { font-family: roman }
CSS mit XML:
<?xml-stylesheet href="url" type="text/css" 
  media="screen" ... ?>
XSLT to HTML:
<xsl:template match="em">
  <I>
  <xsl:apply-templates/>
  </I>
</xsl:template>
(XSLT to CSS: gibts nicht mehr)
<xsl:template match="em">
  <css:chunk font-family="roman">
  <xsl:apply-templates/>
  </css:chunk>
</xsl:template>
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 Sprachelemente

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 und Tools

Beispiele aus dem Camena Projekt.

Tools zur Verwendung von XSLT

Xalan XSLT Prozessor, von der Apache Gruppe.

transform:

#!/bin/sh
# echo "CLASSPATH:" $CLASSPATH 
VALIDPATH="/home/kredel/java/lib/xalan.jar:/home/kredel/java/lib/xalansamples.jar:/home/kredel/java/lib/xerces.jar"
export CLASSPATH="$VALIDPATH:$CLASSPATH"
# echo "CLASSPATH:" $CLASSPATH
if [ $# -eq 2 ]
then
/usr/lib/jdk1.3/bin/java org.apache.xalan.xslt.Process -DIAG -in $1 -xsl $2
elif [ $# -eq 3 ]
then
/usr/lib/jdk1.3/bin/java org.apache.xalan.xslt.Process -DIAG -in $1 -xsl $2 -out $3 
else
/usr/lib/jdk1.3/bin/java org.apache.xalan.xslt.Process $*
fi

transform.bat:

set VALIDPATH=u:\xerces\xalan.jar;u:\xerces\xalansamples.jar;u:\xerces\xerces.jar
set CLASSPATH=%VALIDPATH%;%CLASSPATH%
echo "CLASSPATH:" %CLASSPATH%
java org.apache.xalan.xslt.Process -in %1 -xsl %2 -out %3

xalan.xslt.Process Optionen:

> transform
Optionen der Klasse Process in Xalan-J-Befehlszeile:
    -IN inputXMLURL
   [-XSL XSLTransformationURL]
   [-OUT outputFileName]
   [-E (Entity-Referenzen nicht erweitern)]
   [-QC (Geräuscharme Warnungen bei Musterkonflikten)]
   [-TT (Vorlagen beim Aufruf verfolgen.)]
   [-TG (Jedes Erzeugungsereignis verfolgen.)]
   [-TS (Jedes Auswahlereignis verfolgen.)]
   [-TTC (Die Vorlagen-Tochterknoten bei Bearbeitung verfolgen.)]
   [-TCLASS (TraceListener-Klasse für Trace-Erweiterungen.)]
   [-EDUMP {optionaler Dateiname} (Speicherauszug bei Fehler.)]
   [-XML (XML-Formatierer verwenden und XML-Header hinzufügen.)]
   [-TEXT (Einfachen Textformatierer verwenden.)]
   [-HTML (HTML-Formatierer verwenden.)]
   [-PARAM Namensausdruck (Stylesheet-Parameter festlegen)]
   [-L Zeilennummern für Quelldokument verwenden]
   [-MEDIA mediaType (use media attribute to find stylesheet 
            associated with a document.)]
   [-FLAVOR flavorName (Explicitly use s2s=SAX or d2d=DOM 
            to do transform.)]
   [-DIAG (Print overall milliseconds transform took.)]
   [-URIRESOLVER vollständiger Klassenname (zum Auflösen von 
            URIs zu verwendender URIResolver)]
   [-ENTITYRESOLVER vollständiger Klassenname (zum Auflösen von 
            Entities zu verwendender EntityResolver)]
   [-CONTENTHANDLER vollständiger Klassenname (zum Serialisieren 
            der Ausgabe zu verwendender ContentHandler)]

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

Heinz Kredel

Last modified: Wed May 4 10:37:33 CEST 2005