XML-Know How

Die Syntax

Im Folgenden wollen wir zunächst auf die Syntax und die wichtigsten Elemente und Funktionen von XSLT eingehen und zeigen, wie ein typisches XSLT-Stylesheet aufgebaut ist.

Wir haben – vereinfachend – eine XSLT-Transformationsregel als einen »Suche / Ersetze«-Befehl bezeichnet. Diese »Suche / Ersetze«-Befehle (und alle übrigen Transformationsmöglichkeiten) nennen wir zukünftig Template Rules, vereinfacht Templates.

Die Template Rules sind Schablonen zur Transformation des Quellbaumes (source tree) in den Ergebnisbaum (result tree). Sie bestehen aus zwei Teilen, von denen der eine als Pattern (Suchmuster) bezeichnet wird und schließlich dem eigentlichen Template, das dann in Aktion tritt, wenn ersterer erfolgreich war.

Die Suchmuster im Pattern-Teil werden in XPath-Syntax geschrieben. Es wird hier allerdings nur eine eingeschränkte Version von XPath unterstützt.

Als Stylesheet nun bezeichnen wir eine Datei, die ein oder mehrere zusammengehörende Templates beinhaltet, also die Transformationsregeln für eine bestimmte Aufgabenstellung enthält.

Da ein XSLT-Stylesheet ja selbst eine XML-Datei sein muss, muss um die Templates herum noch eine XML-Deklaration und eine Namensraum-Deklaration erfolgen. Somit ergibt sich folgendes minimales Aussehen eines XSLT-Dokumentes:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl= "http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">

  </xsl:template>
</xsl:stylesheet>

Statt des Wurzelelementes <xsl:stylesheet> ist auch das Element <xsl:transform> erlaubt. Beide Wurzelelemente sind gleichbedeutend und sind auf einen Streit in der XML-Gemeinde zurückzuführen.[1]

Auf dieses Wurzelelement folgen die so genannten Top-Level-Elemente. Darunter versteht man solche Elemente, die Kindelemente vom Element stylesheet /transform sein können.

Wir wollen die weiteren Bestandteile von XSLT anhand eines Beispiels kennenlernen. Dazu möge folgende XML-Instanz als Quelle dienen:

<?xml version="1.0"?>
<PERSONEN>
    <PERSON>
      <NAME>Montero</NAME>
      <VORNAME>Manuel</VORNAME>
      <GEBURTSDATUM>18.05.1974</GEBURTSDATUM>
      <WOHNORT Land="Deutschland">Heidelberg</WOHNORT>
    </PERSON>
    <PERSON>
      <NAME>Ott</NAME>
      <VORNAME>Tobias</VORNAME>
      <GEBURTSDATUM>13.10.1969</GEBURTSDATUM>
      <WOHNORT Land="Deutschland">Tübingen</WOHNORT>
    </PERSON>
</PERSONEN>


     

  1. ↑  Als XSLT entwickelt wurde war sich das Gremium nicht einig. Der eine Teil war der Meinung, XSLT würde letztlich dazu dienen, XML-Dokumente in Ausgabemedien umzuwandeln und somit zu formatieren, der andere vertrat die Auffassung, dass auch solche Umwandlungen von XML-Dokumenten in andere Strukturen lediglich Transformationen seien. Eingebürgert hat sich das Element <xsl:stylesheet>.
  2.