XML abfragen

(Auszug aus "XSLT Kochbuch" von Sal Mangano)

<xsl:template name="frage-von-kind">
  <xsl:with-param name="eltern" select=" 'Papa' "/>
  <xsl:value-of select="concat('Aber warum' '$eltern' '?')"/>
  <xsl:apply-templates select="vernuenftige_antwort"/>
  <xsl:call-template name="frage-von-kind">
    <xsl:with-param name="eltern" select="$eltern"/>
  </xsl:call-template>
</xsl:template>
<!-- Eltern, die Endrekursion nicht erkennen, riskieren, dass ihr Stack überläuft.-->

Einleitung

Dieses Kapitel behandelt Rezepte für das Verwenden von XSLT als XML-Abfragesprache. Das Abfragen von XML bedeutet, dass Informationen aus einem oder mehreren XML-Dokumenten extrahiert werden, um Fragen über Fakten und Beziehungen zu beantworten, die in und zwischen diesen Dokumenten auftreten. Analog erfordert das Abfragen eines XML-Dokuments die gleichen Typen von Fragen, die man auch beim Abfragen einer relationalen Datenbank mittels SQL stellen würde.

Die »offizielle« Abfragesprache für XML, die vom W3C propagiert wird, ist nicht XSLT, sondern XQuery. XSLT und XQuery weisen viele Ähnlichkeiten, aber auch einige gravierende Unterschiede auf. Beispielsweise greifen sowohl XSLT als auch XQuery auf XPath zurück. Dagegen liegt ein XSLT-Skript immer in XML-Syntax vor, während ein XQuery-Skript sowohl eine menschenfreundliche als auch eine XML-Syntax hat.

Die Idee einer von XSLT verschiedenen XML-Abfragesprache wurde kontrovers aufgenommen. Viele Mitglieder der XML-Gemeinschaft dachten, dass es zwischen den beiden zu viele Überschneidungen geben würde. Tatsächlich könnte jede Abfrage, die in XQuery formuliert wird, auch in XSLT implementiert werden. In vielen Fällen ist die XSLT-Lösung genauso knapp wie die XQuery-Lösung. Der Vorteil von XQuery besteht darin, dass es im Allgemeinen einfacher zu verstehen ist als das äquivalente XSLT. Für alle diejenigen, die bereits in SQL bewandert sind, sollte die Lernkurve für XQuery viel flacher verlaufen. Verstehen ist allerdings eine Funktion dessen, woran Sie gewöhnt sind, weshalb diese Vergleiche nicht absolut zu sehen sind.

Die ausführliche Erläuterung von XQuery oder der detaillierte Vergleich von XQuery und XSLT würde den Rahmen dieses Kapitels sprengen. Stattdessen finden Sie hier Abfragebeispiele, die Ihnen zugute kommen, wenn Sie bereits Zeit in XSLT investiert haben und keine weitere XML-verwandte Sprache lernen wollen.

Es wäre unmöglich, Beispiele für alle Arten von Abfragen zu schaffen, die Sie auf XML-Daten ausführen können. Dieses Kapitel verfolgt stattdessen einen zweistufigen Ansatz. Zum einen präsentiert es einfache und allgemein anwendbare Abfragebeispiele. Diese Beispiele bilden die Grundbausteine, die angepasst werden können, um komplexere Abfrageprobleme zu lösen. Zum anderen präsentiert es ein Rezept, das Ihnen Lösungen für die meisten XML-Anwendungsfälle zeigt, die im W3C-Dokument XML Query Use Cases dargestellt werden. In vielen Fällen finden Sie hier eine Lösung, die eine gewisse Ähnlichkeit mit dem von Ihnen bearbeiteten Abfrageproblem aufweist. Sie müssen die Lösung dann nur noch an die Gegebenheiten Ihrer XML-Daten anpassen.

  

  

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema XSLT bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © 2006 O'Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XSLT Kochbuch" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

O'Reilly Verlag GmbH & Co. KG, Balthasarstraße 81, 50670 Köln, kommentar(at)oreilly.de