Ein Anwendungsbeispiel: SWOT-Werkzeug

SWOT steht für Strengths, Weaknesses, Opportunities and Threads, auf Deutsch also Stärken, Schwächen, Chancen und Risiken. Die hier vorgestellte XML-Datei dient als Ausgangspunkt für eine Reihe von XSLT-Transformationen, die aus einer SWOT-Liste verschiedene lesbare Endbenutzerformate (HMTL, SVG und PDF) erzeugen.

In der Datei "woarbeiten.xml" werden drei Alternativen des Erwerbslebens dargestellt. Für jede Art der Beschäftigung werden die Stärken, Schwächen, Chancen und Risiken in <item> Elementen aufgelistet. Durch das count-Attribut kann in jedem <item> Element noch eine Gewichtung des Eintrags vorgenommen werden. Eine Aufzählung der Stärken eines Arbeitsplatzes sieht beispielsweise so aus:

<strengths>
<item count="1">Gutes Einkommen</item>
<item count="1">Meist Arbeit im IT-Team</item>
</strengths>

Beispiel zum Herunterladen

Wenn Sie das SWOT-Beispiel aktiv nachvollziehen wollen, sollten Sie die Beispiele herunterladen. Die Datei swot-beispiele.zip enthält die notwendigen Ausgansdaten und XSLT-Stylesheets für die hier beschriebenen Transformationen.

Selber was tun

Selber experimentieren macht schlau. Hier finden Sie ein paar Hinweise, wie Sie die Beispiele selbst nutzen können.

Zur Einführung in XSLT gibt es inzwischen viele Informationen gedruckt und im Web. Eine kommentierte Referenz zu XSLT auf deutsch können Sie sich hier als XSLT-Referenz (300K) herunterladen.

Alle Beispiele, die Sie hier finden sind mit den frei verfügbaren Werkzeugen Xalan, Xerces und Batik von xml.apache.org gemacht worden. Um die Beispiele selbst nachvollziehen zu können, laden Sie sich die Programme von dort.

Wenn Sie einen Microsoft Internet Explorer ab V 5.0 nutzen, können Sie Transformationen von XML nach HTML auch direkt im Browser durchführen. Voraussetzung ist allerdings, daß Sie MSXML4.DLL installiert haben. Frühere Versionen arbeiten nicht konform zur Empfehlung des . Die Installation ist leider nicht ganz unproblematisch. Hinweise zu Problemlösungen auf deutsch gibt es bei iX Heft 10/2001 oder ausführlicher auf englisch bei netcrucible.

Die clientseitige Transformation im Browser ist nur möglich, wenn Stylesheets verwendet werden, die lediglich eine einzige Ausgabedatei erzeugen, wie dies in der XSLT 1.0 Empfehlung beschrieben ist. Bei einer automatischen Erzeugung von HTML-Dateien, Grafiken und PDF-Dateien, ist eine solche "einschrittige" Verarbeitung nicht mehr möglich. In diesem Fall sind Stapelverarbeitungsprozesse oder Verarbeitung durch einen Server notwendig.

Beispieltransformationen

Nachfolgend finden Sie Transformationen, die sich auf das Ausgangsdokument der Rubrik Praxis beziehen. Bei weiteren Transformationen wird das Quelldokument mit angegeben.

Alle Beispiele verwenden einen Stapelverarbeitungsprozess, um aus XML-Dateien andere Formate zu generieren. Eine direkte Nutzung der Stylesheets im Browser ist nicht möglich, weil meist mehrere Ergebnisdateien in einem Durchlauf erzeugt werden. Dazu wird eine Erweiterung des XSLT-Prozessors Xalan verwendet. Diese Fähigkeit in mehrere Dateien zu schreiben,ist in den meisten Prozessoren vorhanden, wird dort aber jeweils anders benannt. In die Recommendation von XSLT 1.1 wird diese Fähigkeit aufgenommen und verliert dann den Ruch des Proprietären. Bis eine XSLT 1.1 Unterstützung von Seiten der XSLT-Prozessoren vorliegt, müssen diese Stylesheets für andere Prozessoren also angepaßt werden. Dies betrifft die Einträge im stylesheet-Element zu extension-prefix und die Zeilen, die xalan:write enthalten.

Das Stylesheet swot2html.xslt transformiert die Ausgangsdatei in mehrere HTML-Dateien, die untereinander durch Hyperlinks verknüpft sind. Pro Entscheidungsalternative entsteht dabei eine HTML-Datei, in der die Stärken und Schwächen aufgelistet sind.

Eine weitere Version des Stylesheets swot2html_svg.xslt erzeugt HTML-Dateien, die SVG-Grafiken einbetten. Die Grafiken enthalten eine Visualisierung dessen, was an Stärken und Schwächen einer Alternative gelistet ist. Auch die Erzeugung der Grafiken selbst aus dem Quelldokument kann mit XSLT erfolgen. Das Stylesheet dazu finden sie unter der Rubrik SVG.

Transformation in Text - Generieren von Programmcode

Mit XSLT kann auch ASCII Text generiert werden. Dies ist immer dann sinnvoll, wenn ein Zielformat noch nicht in XML notiert werden kann. Beispielsweise ist dies bei vielen Programmiersprachen der Fall. Im nachfolgenden Beispiel wird eine XML-Datei (tb_form_def.xml) erzeugt, die den Aufbau einer SQL-Tabelle für eine PostgreSQL Datenbank beschreibt. Zusätzlich zu den Angaben, die durch die Datenbank verarbeitet werden können, enthält die Datei auch noch einige Informationen zur Darstellung der Informationen in einer Bildschirmmaske, wie die Angabe, daß ein Eingabefeld auch wirklich gefüllt sein muß, bevor es an die Datenbank übermittelt weden kann.

Die Transformationen werden in zwei Stylesheets durchgeführt. Die Datei c_table.xslt erzeugt den SQL-Create-Table Job, das Stylesheet c_form.xslt dagegen eine PHP Codesequenz die dazu eine Eingabemaske erzeugt. Der PHP-Code enthält Funktionsaufrufe auf eine selbstentwickelte Bibliothek, weshalb Sie das Beispiel lediglich als Lehrbeispiel, nicht aber als Werkzeug einsetzen können. Das tbphp.zip finden Sie hier.

© M. Knobloch 2003-06-22 created with SAXON 7.5.1 from Michael Kay XSL Version 1.8