XML Style Sheets (XSL)


XML Style Sheets

Wolf

 
 

Am Anfang XSL, jetzt aufgeteilt in XSL Transformations (XSLT) und XSL Formatting (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.

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-2003.

Heinz Kredel
Last modified: Wed Jun 11 09:41:55 CEST 2003