Transforming XML with XSLT
Eine Übersicht
Die Trennung von Inhalt und Präsentation ist ein zentrales Designmerkmal von XML. Die Struktur eines XML-Dokuments ist so konzipiert, dass sie wichtige Beziehungen zwischen den einzelnen Aspekten des Inhalts selbst widerspiegelt und klärt, ohne dass ein Hinweis darauf gegeben werden muss, wie diese Daten letztendlich präsentiert werden sollen. Diese intelligente Strukturierung ist besonders wichtig, da immer mehr Datentransfers automatisiert und zwischen hochgradig heterogenen Maschinen durchgeführt werden, die durch ein Netzwerk verbunden sind.
Dennoch müssen viele der in XML-Dokumenten gespeicherten Inhalte letztendlich Menschen präsentiert werden. Da ein Browser eine vertraute und hochflexible Schnittstelle bietet, ist er ein ideales Mittel zur Bereitstellung solcher Präsentationsversionen von XML-Inhalten. Firefox, das von Grund auf unter Verwendung einer Vielzahl von XML-Technologien entwickelt wurde, integriert alle Mechanismen, die zur Verarbeitung sowohl der ursprünglichen XML-Dokumente als auch der spezialisierten Stylesheets, die zur Gestaltung und Anordnung für die HTML-Anzeige verwendet werden, erforderlich sind, und reduziert die Serverbelastung durch clientseitige Verarbeitung.
Aktuell unterstützt Gecko (die Layout-Engine hinter Firefox) zwei Formen von XML-Stylesheets. Für die grundlegende Steuerung des Erscheinungsbildes — Schriftarten, Farben, Positionen usw. — verwendet Gecko CSS.
Unser Fokus liegt hier auf dem zweiten Stilblatt-Typ, den Gecko unterstützt: das XSLT-Stylesheet. XSLT steht für eXtensible Stylesheet Language/Transform und der Name ist treffend. XSLT ermöglicht es einem Stylesheet-Autor, ein primäres XML-Dokument auf zwei wesentliche Arten zu transformieren: Manipulation und Sortierung des Inhalts, einschließlich einer umfassenden Umordnung, wenn gewünscht, und Transformation des Inhalts in ein anderes Format (und im Fall von Firefox liegt der Fokus auf der dynamischen Umwandlung in HTML, das dann von dem Browser angezeigt werden kann).
XSLT/XPath-Referenz
Elemente
- xsl:apply-imports (unterstützt)
- xsl:apply-templates (unterstützt)
- xsl:attribute (unterstützt)
- xsl:attribute-set (unterstützt)
- xsl:call-template (unterstützt)
- xsl:choose (unterstützt)
- xsl:comment (unterstützt)
- xsl:copy (unterstützt)
- xsl:copy-of (unterstützt)
- xsl:decimal-format (unterstützt)
- xsl:element (unterstützt)
- xsl:fallback (nicht unterstützt)
- xsl:for-each (unterstützt)
- xsl:if (unterstützt)
- xsl:import (meistens unterstützt)
- xsl:include (unterstützt)
- xsl:key (unterstützt)
- xsl:message (unterstützt)
- xsl:namespace-alias (nicht unterstützt)
- xsl:number (teilweise unterstützt)
- xsl:otherwise (unterstützt)
- xsl:output (teilweise unterstützt)
- xsl:param (unterstützt)
- xsl:preserve-space (unterstützt)
- xsl:processing-instruction
- xsl:sort (unterstützt)
- xsl:strip-space (unterstützt)
- xsl:stylesheet (teilweise unterstützt)
- xsl:template (unterstützt)
- xsl:text (teilweise unterstützt)
- xsl:transform (unterstützt)
- xsl:value-of (teilweise unterstützt)
- xsl:variable (unterstützt)
- xsl:when (unterstützt)
- xsl:with-param (unterstützt)
Achsen
Funktionen
- boolean() (unterstützt)
- ceiling() (unterstützt)
- concat() (unterstützt)
- contains() (unterstützt)
- count() (unterstützt)
- current() (unterstützt)
- document() (unterstützt)
- element-available() (unterstützt)
- false() (unterstützt)
- floor() (unterstützt)
- format-number() (unterstützt)
- function-available() (unterstützt)
- generate-id() (unterstützt)
- id() (teilweise unterstützt)
- key() (unterstützt)
- lang() (unterstützt)
- last() (unterstützt)
- local-name() (unterstützt)
- name() (unterstützt)
- namespace-uri() (unterstützt)
- normalize-space() (unterstützt)
- not() (unterstützt)
- number() (unterstützt)
- position() (unterstützt)
- round() (unterstützt)
- starts-with() (unterstützt)
- string() (unterstützt)
- string-length() (unterstützt)
- substring() (unterstützt)
- substring-after() (unterstützt)
- substring-before() (unterstützt)
- sum() (unterstützt)
- system-property() (unterstützt)
- translate() (unterstützt)
- true() (unterstützt)
- unparsed-entity-url() (nicht unterstützt)
Weiterführende Literatur
Informationen zum Originaldokument
- Urheberrechtsinformationen: Copyright © 2001-2003 Netscape. Alle Rechte vorbehalten.
- Hinweis: Dieser nachgedruckte Artikel war ursprünglich Teil der DevEdge-Website.