XML DTD ◦ Schritt I: XML-Datei mit DTD verknüpfen: <!DOCTYPE rss SYSTEM “zeit-rss.dtd"> ◦ Schritt II: Überlegen, wie die Elemente in der XML-Datei verschachtelt sind, ggf. Baumdiagramm erstellen: Kurzwiederholung DTD rss channel title description language link copyright … version
CSS und XML: Die Elemente eines XML- Dokumentes können ausschließlich in der Reihenfolge abgearbeitet werden, wie sie sich im XML- Dokument finden. Schwächen von CSS
Mit CSS ist‘s nicht möglich: ◦ Elemente nach definierten Kriterien zu filtern Beispiel: Alle Datensätze mit Jahresangabe größer 1900 (jahr > 1900) ausgeben: <xsl:if test="jahr > 1900"> Schwächen von CSS
Mit CSS ist‘s nicht möglich: ◦ Die Ausgabe auf Elemente zu beschränken, die bestimmte Kriterien erfüllen <xsl:if test="jahr > 1900 or jahr='?' "> Schwächen von CSS
XSLT: Intro XSL Transformation (XSLT) ist eine Programmiersprache zur Transformation von XML- Dokumenten. XSLT beschreibt die Umwandlung eines XML- Dokumentes in ein anderes Dokument, z.B. eine XHTML- Website, XML, SVG, etc.: XML XSLT-Prozessor Ausgabedokument (z.B. XML, HTML, XHTML)
XSLT: Intro II XSLT verwendet die Abfragesprache Xpath, um Teile eines XML-Dokumentes zu adressieren. Die eigentliche Umwandlung findet im Hintergrund, z.B. im Browser statt (darum brauchen wir uns nicht zu kümmern).
XSLT: Intro III Eine Transformation besteht aus einer Reihe von einzelnen Transformationsregeln, die als „Templates“ („Schablonen“) bezeichnet werden. Ein Template besitzt ein auf XPath basierendes Muster, das beschreibt, für welche Knoten es gilt, und einen Inhalt, der bestimmt, wie das Template seinen Teil des Zielbaums erzeugt.
XSLT: Funktionsweise Aus einem Ausgangsdokument (.xml) wird mit Hilfe einer Verarbeitungsanweisung (.xslt) ein Ergebnisdokument (z.B. .html) generiert. Es existieren verschiedene XSLT- Prozessoren: Saxon Xalan MSXML Es gibt ~ 50 Elemente = „Befehle“ in XSLT 2.0 (bzw. im xsl-Namensraum) Baumkonzept Schablonenkonzept Verknüpfung von XML- und XSLT- Dokument
Intention: Sprache, mit der auf einzelne Elemente von XML-Dokumenten zugegriffen werden kann Basis: Baummodell, durch das die im XML- Dokument enthaltenen Informationseinheiten repräsentiert werden XPath nachrichtensammlung nachricht sender empfaenger inhalt
Knotenbeziehungen: Elternknoten (parent) – Jedes Element verfügt über einen Elternknoten. Ausnahme: ??? Vorfahre (ancestor) – Elternknoten von Knoten Beispiel: Der Knoten „2“ ist Vorfahre des Knotens „3“. Kind (child) – Untergeordnete Knoten Beispiel: „3“ ist Kindknoten von „2“. Geschwister (siblings): Knoten mit gleichen Elternknoten sind Geschwisterknoten. Beispiel: Der Knoten „3“ ist Geschwisterknoten des Knotens „4“. Xpath: Navigation im Baum 1 2 5 6 3 4
Um auf die Knoten eines XML-Dokumentes zugreifen zu können, müssen sie adressiert werden. In XPath wird hierzu – vom aktuellen Knoten ausgehend – ein Pfad definiert. Unterscheidung ausführliche vs. verkürzte Achsenbezeichnung: ◦ ausführlich: /child::autor/child::buch/attribute::titel ◦ verkürzt: /autor/buch/@titel Adressierung
Über die Achsen wird festgelegt, in welche Richtung im Knotenbaum navigiert wird: ◦ „Navigiere vom Wurzelement „buecher“ zum Kindelement „autor“ und gebe mir den Inhalt des Kindelementes „name“ aus: <xsl:value-of select="/buecher/autor/name" /> ◦ Ich befinde mich im Element „name“. Gehe von hier aus zurück zum Geschwisterknoten „vorname“ und gebe mir den Inhalt aus: <xsl:value-of select= "../vorname" /> XPath: Achsen
I. Laden Sie das XML-Dokument und die XSLT- Datei von der kursbegleitenden Website herunter und binden Sie Ihre DTD ein. II. Versuchen Sie, die Adressierung von Elementen des XML-Dokumentes mit XSLT bzw. XPath nachzuvollziehen. Übung I