Proseminar: Rund um XML Wintersemester 2004/2005. Thema: XSLT

Größe: px
Ab Seite anzeigen:

Download "Proseminar: Rund um XML Wintersemester 2004/2005. Thema: XSLT"

Transkript

1 Semester: WS 2004 / 2005 Seminarleiter: Manfred Jackel Proseminar: Rund um XML Wintersemester 2004/2005 Thema: XSLT Ausarbeitung von Monte Barreto, José Angel ( ) Weidenfeller, Thorsten ( )

2 INHALTSVERZEICHNIS INHALTSVERZEICHNIS Inhaltsverzeichnis 1 Einführung in XSL(T) Was ist XSL(T)? Geschichte XPath Was ist XPath? Knotentypen Achsen Achsentypen Pfade und Adressierung Ausführliche und verkürzte Notation (Unabbreviated and abbreviated notation) Adressierung mit absoluten Pfadangaben (Absolute location paths) Adressierung mit relativen Pfadangaben (Relative location paths) Adressierung von Attributen Adressierung von Wildcards Adressierung mit Positionsangabe und Bedingungen XPath-Operatoren Operatortypen XPath-Funktionen XSL Transformationen - Basiskomponenten Grundlagen Darstellung XSLT Elemente xsl:apply-imports xsl:apply-templates xsl:attribute xsl:attribute-set xsl:call-template xsl:choose xsl:comment xsl:copy xsl:copy-of xsl:decimal-format xsl:element xsl:fallback xsl:for-each xsl:if xsl:import xsl:key xsl:message xsl:namespace-alias xsl:number xsl:otherwise xsl:output xsl:param xsl:preserve-space xsl:processing-instruction xsl:sort xsl:strip-space xsl:stylesheet xsl:template xsl:text xsl:transform xsl:value-of xsl:variable xsl:when xsl:with-param I (c) José Angel Monte Barreto & Thorsten Weidenfeller

3 INHALTSVERZEICHNIS INHALTSVERZEICHNIS 4 Modulares XSLT Variablen / Konstanten Variablen als Parameter Fazit - Vor- und Nachteile Vorteile Nachteile II (c) José Angel Monte Barreto & Thorsten Weidenfeller

4 1 EINFÜHRUNG IN XSL(T) 1 Einführung in XSL(T) 1.1 Was ist XSL(T)? XSL(T) steht für Extensible Stylesheet Language (Transformations) und beschreibt allgemein die Darstellung und Behandlung von XML-Daten. Es ist ebenfalls ein Werkzeug um von einem XML-Format in ein anderes konvertieren zu können (z.b. XML, (X)HTML, Text etc.). Dies alles geschieht mithilfe so genannter XSL Stylesheets (ein Stylesheet ist ein Dokument, das eine Menge von Regeln enthält, die beschreiben, wie die XML-Elemente eines Quelldokuments ausgegeben werden sollen). Zusätzlich können durch XSLT-Stylesheets Datensortierungen und Datenfilterungen durchgeführt werden. XSL ist von XML abgeleitet; dies führt zwangsläufig zu einer ähnlichen Syntax. Im Unterschied zu XML ist XSLT allerdings eine Markup-Sprache (eine Auszeichnungssprache, dient zur Beschreibung von Daten oder des Verfahrens oder der Schritte, die zur Darstellung nötig sind). Zur Adressierung von Baumbestandteilen in einem XML-Dokument wird die Hilfssprache XPath benutzt. Ein Programm, das XSLT-Stylesheets verarbeiten kann, heißt XSLT-Prozessor (z.b. Saxon). XSLT-Prozessoren sind auch in den meisten Web- Browsern (Internet Explorer ab Version 5, Mozilla) integriert. Für XSLT gibt es zwei Hauptanwendungsgebiete:. POP (Presentation Oriented Publishing) bezeichnet die Transformation zum Zwecke der Darstellung. Mit unterschiedlichen Stylesheets können die Daten in XHTML, Formatting Objects, SVG, SMIL, DocBook und viele andere Formate umgewandelt werden. Das ursprüngliche semantische Markup wird dabei durch ein stilbezogenes Markup ersetzt. MOM (Message Oriented Middleware) bezeichnet die Transformation zum Zwecke des Datenaustauschs. Da XML lediglich ein Sprachkonzept zur Entwicklung von Sprachen bildet, genügt es nicht, dass zwei Systeme (z.b. Programme) XML beherrschen um gegenseitig Daten austauschen zu können. Sie müssen die gleiche XML-basierte Sprache verwenden. Wenn Systeme nicht die gleiche XML-basierte Sprache verwenden, wird gerne XSLT eingesetzt um anhand von Transformationen Übersetzer von der einen Sprache in die andere zu entwickeln. Anwendungsbeispiele: Statistische Daten liegen als XML vor (z.b. aus der Datenbank) und werden mithilfe unterschiedlicher Transformationen unter anderem als Vektorgrafik in SVG (Scalable Vector Graphics, XML-Sprache), als Tabelle in XHTML und als PDF (über den Zwischenschritt XSL-FO) aufbereitet. Für eine Website werden die XHTML-Dateien zunächst ohne Layout geschrieben und erhalten anschließend das Layout anhand einer Transformation. Der Vorteil ist dabei ähnlich dem eines klassischen CMS (Count Management System, Software zum Verwalten des Inhalts einer Website): Um das Layout zu ändern, ist es nicht notwendig, alle XHTML-Seiten zu verändern; stattdessen ändert man das Stylesheet und transformiert neu. Derzeit wird XSLT wohl am häufigsten dazu verwendet, XML-Dokumente durch Transformation nach mit CSS versehenem XHTML in Webbrowsern darstellbar zu machen. Der XML-Namespace für XSLT lautet Geschichte XSLT wird seit 1997 entwickelt und baut auf den zwei älteren Sprachen CSS (Cascading Style Sheets, Formatierungssprache, z. B. für HTML-Dateien) und DSSSL (Document Style Semantics and Specification Language, eine Transformations- und Formatierungssprache für SGML-Dokumente, also auch für XML. DSSSL gilt als Vorgängerin von XSL und XSLT) auf. XSLT 1.0 und XSLT 1.1 wurden von James Clark (rechts) entwickelt; für die derzeitige Weiterentwicklung (insbesondere XSLT 2.0) ist Michael Kay (links) verantwortlich. 1 (c) José Angel Monte Barreto & Thorsten Weidenfeller

5 2 XPATH 2 XPath 2.1 Was ist XPath? XPath ist eine Hilfssprache, die eine kompakte Nicht-XML-Syntax verwendet. XSLT benötigt sie um seine Aufgaben ausführen zu können. XPath hat drei wichtige Aufgaben: Adressierung von Daten in einem XML-Dokument Definition logischer Ausdrücke (enthalten Operatoren und können z.b. zwei Werte vergleichen). Bereitstellung zusätzlicher Funktionen 2.2 Knotentypen XPath modelliert ein XML-Dokument als Baum, in dem jeder Bestandteil als Knoten bezeichnet wird. Man kann insgesamt 7 verschiedene Knotentypen unterscheiden: Wurzelknoten (root node) Der Wurzelknoten ist die Wurzel eines XML-Dokuments, die selbst kein Element ist, sondern nur die Ursprungswurzel der Baumstruktur des jeweiligen Dokuments. Elementknoten (element node) Jedes Element stellt einen Elementknoten dar. Ein Beispiel hierfür ist ein Element b bestehend aus dem Anfangs- und Endtag <b>...</b>. Ein untergeordnetes Element c mit <c>...</c> innerhalb von <b>...</b> ist ebenfalls ein Elementknoten und wird als Kindelement bezeichnet. Attributknoten (attribute node) Jedes Attribut eines Elements stellt ein Attributknoten dar. Ein Beispiel hierfür ist ein Attribut b eines Elements a, also <a b= blau >. Textknoten (text node) Alle Zeichendaten, die keine Knoten mehr enthalten, werden als Textknoten bezeichnet. Namensraumknoten (namespace node) Namensraumangaben gibt es sowohl für Elemente wie auch für Attribute. Namensraumknoten sind dabei entweder einem Elementknoten oder einem Attributknoten zugeordnet. Ein Beispiel hierfür ist eine Notation <x:a y:b= blau >, dabei sind x und y Namensraumangaben. x ist ein Namensraumknoten für das Element a und y ein Namensraumknoten für das Attribut b. Verarbeitungsanweisungsknoten (processing instruction node) Eine Verarbeitungsanweisung in einem XML-Dokument beginnt mit <? und endet mit?>. Ein Beispiel hierfür ist <?xmlstylesheet type= text.xsl href= text.xsl?>, dabei ist xml-stylesheet der Name des Knotens. Die XML-Deklaration <?xmlversion= 1.0?>, die zu Beginn einer XML-Datei notiert wird, fällt aber nicht unter die Kategorie der Verarbeitungsanweisung, auch wenn sie syntaktisch ähnlich aussieht. Kommentarknoten (comment node) Kommentare stehen in einem XML-Dokument zwischen <! und!>. Der Kommentarknoten ist dabei der Inhalt des Kommentars. 2 (c) José Angel Monte Barreto & Thorsten Weidenfeller

6 2.2 Knotentypen 2 XPATH Hier nun ein Beispiel zur Darstellung eines XML-Dokuments als Baum: 3 (c) José Angel Monte Barreto & Thorsten Weidenfeller

7 2.3 Achsen 2 XPATH 2.3 Achsen Es gibt also Knoten, die von anderen Knoten abhängig sind (bzw. mit anderen Knoten in Relation stehen) oder Knoten, die auf einer gemeinsamen Ebene liegen. Um diese Verwandtschafts- und Ebenenrelation darstellen zu können, benutzt XPath so genannte Achsen (axes), deren englische Bezeichner in der ausführlichen Adressierungssyntax verwendet werden Achsentypen child: (Kind) enthält die Kinder (untergeordente Knoten) des Kontextknoten (Kk). parent: (Eltern) enthält die Elternknoten (übergeordente Knoten) des Kk. descendant: (Nachkommen) enthält alle untergeordnete Knoten, auch die, die unmittelbar untergeordnet sind. descendant-or-self: enthält alle untergeordnete Knoten oder den Kk selbst. 4 (c) José Angel Monte Barreto & Thorsten Weidenfeller

8 2.3 Achsen 2 XPATH ancestor: (Vorfahren) enthält alle übergeordnete Knoten, auch die, die unmittelbar übergeordnet sind. ancestor-or-self: enthält alle übergeordnete Knoten oder den Kk selbst. following: (nachfolgende Knoten) alle Knoten, die nach dem Kk im restlichen XML-Dokument folgen, unabhängig von der Hierarchie der Knoten. preceding: (vorherige Knoten) alle Knoten, die vor dem Kk im XML-Dokument erscheinen, unabhängig von der Hierarchie der Knoten. 5 (c) José Angel Monte Barreto & Thorsten Weidenfeller

9 2.3 Achsen 2 XPATH following-sibling: (nachfolgende Geschwisterknoten) alle Knoten, die nach dem Kk im restlichen XML-Dokument auf der gleichen Hierarchieebene folgen. preceding-sibling: (vorherige Geschwisterknoten) alle Knoten, die vor dem Kk im restlichen XML-Dokument auf der gleichen Hierarchieebene liegen. attribute: (Attribut) alle Attributknoten eines Kk werden zu einer Achse zusammengefasst. namespace: (Namensraum) zugehöriger Namensraumknoten eines Kk. self: (KK) der aktuelle Kk. Mit den Achsen ancestor, descendant, following, preceding und self lässt sich ein XML-Dokument partitionieren. Die Achsen überschneiden sich nicht und enthalten alle vorkommenden Knoten. 6 (c) José Angel Monte Barreto & Thorsten Weidenfeller

10 2.4 Pfade und Adressierung 2 XPATH 2.4 Pfade und Adressierung Zur Adressierung von Knoten werden Pfade verwendet. XPath bietet zwei syntaktische Möglichkeiten an um diese notieren zu können: Die erste Möglichkeit ist das / (einfacher Schrägstrich), der die einzelnen Knotennamen trennt. Im obigen Beispiel (Seite 2) wäre rezept/anleitung/zutat ein möglicher Pfad zur Adressierung des Knoten zutat mit dem Stringwert Mehl. Die zweite Möglichkeit zur Trennung ist :: (doppelter Doppelpunkt). Hier wäre eine mögliche Notation rezept/child::anleitung/child::zutat Ausführliche und verkürzte Notation (Unabbreviated and abbreviated notation) Ein Pfad (location path) kann in XPath sowohl in ausführlicher Form (z.b. /child::rezept/child::anleitung/child::zutat/attribute::xlink:href) als auch in verkürzter Form (hier: /rezept/anleitung/zutat/@xlink:href) notiert werden. Dabei hat letztere Form den Vorteil der besseren Lesbarkeit und effizienteren Fehlersuche bzw. -beseitung (Debugging). Jedoch führt die verkürzte Notation zu keinem Performancegewinn gegenüber der ausführlichen Variante. Die Dokumentwurzel wird mit einem einzelnen Schrägstrich (/) adressiert. Hier nun einige Beispiele, die ausführliche (links) und verkürzte (rechts) Notation gegenüberstellen: Für Achsen: child::name = name child::* = * self::name =. parent::name =../name child::*/child::name = */name Für Attribute: attribute::number attribute::* parent::name/attribute::number =../name/@number Pfade mit Prädikaten: child:name[position()=1] = name[1] child:name[attribute::number= 2 ] = name[@number= 2 ] child:name[position()=2][attribute::security= secret ] = name[2][@security= secret ] child::chapter[child::title= XPath ] = chapter[title= XPath ] 7 (c) José Angel Monte Barreto & Thorsten Weidenfeller

11 2.4 Pfade und Adressierung 2 XPATH Adressierung mit absoluten Pfadangaben (Absolute location paths) Absolute Pfadangaben beginnen mit einem /, der als Repräsentant für die Dokumentwurzel dient. Weitere Hierarchie-Ebenen werden ebenfalls durch / getrennt. Ein Beispiel hierfür wäre in der ausführlichen Notation /child::adresse/child::ort/child::straße, die äquivalente verkürzte Version wäre dann /adresse/ort/straße Adressierung mit relativen Pfadangaben (Relative location paths) Ein XML-Dokument... und ein XSL-Dokument. 8 (c) José Angel Monte Barreto & Thorsten Weidenfeller

12 2.4 Pfade und Adressierung 2 XPATH Im Beispiel wird die Arbeitsweise einer relativen Pfadangabe deutlich: Es nimmt an, dass es schon eine Template-Definition für das Element Verein gibt. Weiterhin wird angenommen, dass kein Template für das Element Mitglieder existiert. Um nun vom (Großvater-)Element Verein auf das (Enkel-)Element Name zugreifen zu können, benötigen wir die Pfadangabe./child:mitglieder/child::name. Das./ (Punkt und Schrägstrich) steht für den aktuellen Standpunkt (kann auch weggelassen werden), in diesem Fall der Knoten Verein (1.Zeile im XSL-Dokument). In der zweiten Zeile ist Name der Ausgangs- bzw. Kontextknoten, mit./child:nachname wird der Kindknoten Nachname adressiert. In der dritten Zeile bleibt der Kontextknoten der gleiche wie in der Zeile zuvor. Nun wollen wir auf das Kindelement Anzahl zugreifen. Vom Knoten Name aus müssen wir zunächst auf den Elternknoten Mitglieder adressieren, was wir mit parent:: realisieren. Jetzt schreiben wir noch den Namen des zu adressierenden Kindknotens dahinter, in diesem Falle Anzahl. Das Ganze in der verkürzten Notation: Adressierung von Attributen Ein Attribut kann mit attribute:: adressiert werden, beispielsweise /child::augen/attribute::farbe (/augen/@farbe in der verkürzten Notation, :: wird ersetzt) Adressierung von Wildcards Mit dem Wildcardzeichen * kann man mehrere Knoten auf einmal auswählen, jedoch nur auf der unmittelbar untergeordneten Hierarchieebene. Will man alle untergeordneten Ebenen adressieren, so benötigen wir das Zeichen //. Beispiele: child::* (verkürzt *) Adressierung mit Positionsangabe und Bedingungen Wenn wir in XPath z.b. den Pfad liste/listeneintrag verwenden, dann wird nur das erste dieser Elemente adressiert. Wollen wir jedoch auch andere Kindelemente ansprechen, brauchen wir Positionsangaben und Bedingungen um bestimmte Elemente adressieren zu können. Syntax-Bestandteile in eckigen Klammern ([]) werden Prädikate genannt und können zu genau diesem Zweck verwendet werden. In den Beispielen werden XPath-Funktionen verwendet, die später vorgestellt werden. Beispiele: child::listeneintrag[position()=3] adressiert das 3. Kindelement vom Typ listeneintrag. child::listeneintrag[position()=last()] adressiert das letzte Kindelement vom Typ listeneintrag. child::listeneintrag[position()=last()-1] adressiert das vorletzte Kindelement vom Typ listeneintrag. augen/@farbe= blau adressiert das Kindelement auge unter der Voraussetzung, dass es ein Attribut farbe mit dem Wert blau besitzt. /buch/kapitel[2]/abschnitt[4]/absatz[17] adressiert in einem Buch den 17. Absatz des 4. Abschnitts im 2. Kapitel. kapitel//absatz adressiert alle Elemente vom Typ absatz, die aus Sicht des Kontextknotens unter den Elementen vom Typ kapitel liegen. buch//kapitel[< 5] adressiert die ersten vier Kindelemente des Typs kapitel innerhalb eines Elements vom Typ buch. 9 (c) José Angel Monte Barreto & Thorsten Weidenfeller

13 2.5 XPath-Operatoren 2 XPATH 2.5 XPath-Operatoren XPath stellt einige Operatoren zur Verfügung, die es erlauben Werte zu vergleichen, Berechnungen durchzuführen oder Ausdrücke zu bewerten. Solche Operatoren können in Attributen bestimmter XSLT-Elemente vorkommen und helfen bei der Formulierung von Bedingungen, bei der Berechnung von Positionen u.a Operatortypen + Addition - Subtraktion * Multiplikation = gleich (Vergleich zweier Werte)!= ungleich (Vergleich zweier Werte) < bzw. < (Maskierung) kleiner als (Vergleich zweier Werte). Maskierung innerhalb von XSLT erforderlich. > bzw. &ggt; größer als (Vergleich zweier Werte). Maskierung innerhalb von XSLT empfehlenswert. <= bzw. <= kleiner gleich (Vergleich zweier Werte). Maskierung innerhalb von XSLT erforderlich. >= bzw. &ggt;= größer gleich (Vergleich zweier Werte) Maskierung innerhalb von XSLT empfehlenswert. and logische UND-Verknüpfung or logische ODER-Verknüpfung div Fließkommateilung mod Rest der Fließkommateilung 2.6 XPath-Funktionen In XPath werden Funktionen verwendet um die Übersetzung eines XML-Dokuments genauer kontrollieren zu können und dabei zusätzliche Features zur Verfügung zu stellen. Sie kommen innerhalb der XSLT-Stylesheets zum Einsatz. Funktionen bestehen aus einem Funktionsnamen, gefolgt von runden Klammern, in denen Argumente stehen können und liefern im Normalfall einen Wert zurück. Im Folgenden werden alle bekannten XPath-Funktionen aufgelistet: boolean() ermittelt, ob ein Ausdruck wahr oder falsch ist ceiling() rundet eine Bruchzahl zur nächsthöheren Ganzzahl auf concat() hängt mehrere Zeichenketten aneinander contains() überprüft, ob in einer Zeichenkette eine bestimmte Teilzeichenkette vorhanden ist count() ermittelt, wie viele Knoten auf der Ebene unterhalb einer Knotenmenge enthalten sind current() ermittelt den aktuellen Knoten document() ruft ein anderes XML-Dokument element-available() überprüft die Verfügbarkeit eines XSLT-Elements false() erzeugt den booleschen Wert für falsch floor() rundet eine Bruchzahl zur basierenden Ganzzahl ab format-number() wandelt eine Zahl in eine Zeichenkette um function-available() überprüft die Verfügbarkeit einer XPath-Funktion generate-id() erzeugt einen eindeutigen Bezeichner für ein Element id() wählt ein Element mit bestimmtem Bezeichner aus key() wählt Elemente mithilfe eines Schlüsselwertes aus 10 (c) José Angel Monte Barreto & Thorsten Weidenfeller

14 2.6 XPath-Funktionen 2 XPATH lang() überprüft Elemente auf einen bestimmten Sprachcode last() ermittelt die Positionsnummer des letzten Knotens einer Reihe local-name() ermittelt den lokalen Namen einer Knotenmenge name() ermittelt den Namen einer Knotenmenge namespace-uri() ermittelt den Namensraum eines Elements normalize-space() entfernt das Leerzeichen am Anfang und Ende einer Zeichenkette not() verneint das Argument number() wandelt ein Argument in eine Zahl um position() ermittelt die Positionsnummer des aktuellen Knotens round() rundet kaufmännisch auf oder ab starts-with() überprüft, ob eine Zeichenkette mit einer bestimmten Teilzeichenkette beginnt string() wandelt ein Argument in eine Zeichenkette um string-length() ermittelt die Anzahl der Zeichen in einer Zeichenkette substring() extrahiert eine Teilzeichenkette aus einer Zeichenkette substring-after() ermittelt eine Zeichenkette ab einer Position mit einer Teilzeichenkette substring-before() ermittelt eine Zeichenkette vor einer Position mit einer Teilzeichenkette sum() ermittelt die Summe von Zahlenwerten system-property() ermittelt die Systemeigenschaften translate() sucht und ersetzt Zeichen in einer Zeichenkette true() erzeugt booleschen Wert für wahr unparsed-entity-uri() ermittelt ungeparste Einträge der DTD 11 (c) José Angel Monte Barreto & Thorsten Weidenfeller

15 3 XSL TRANSFORMATIONEN - BASISKOMPONENTEN 3 XSL Transformationen - Basiskomponenten 3.1 Grundlagen Der Transformationsteil von XSL dient dazu XML - Dateien in andere ML (MarkUp - Languages) - Dateien zu überführen. Solche Formate können z.b. sein: SGML, HTML, DocBook, TEI, MathML, WML oder SVG. So können beispielsweise Elemente aus einer eigenen XML-Datei, wie vorname und nachname, in Auszeichnungs-Konstrukte einer anderen Sprache transformieren, um damit eine formatierte Ausgabe der Elemente zu erzeugen. Beispielweise könnte man eine XML Datei in eine HTML - Datei transformieren. So muss eine Verbindung zwischen den XML und HTML Konstrukten hergestellt werden. Dazu dient die XSL Datei. Sie überführt beispielsweise das XML Tag <vorname>thorsten</vorname> in das HTML - Tag <td>thorsten</td>. Dabei spricht man auf Seiten des XML Konstruktes gerne von Quellbaum oder Ausgangsbaum und auf Seiten der HTML - Datei auch von Ergebnisbaum. Zum veranschaulichen folgendes Bild: Dabei zeigen die schwarzen Striche die Zuordnungen, wie sie in der XSL - Datei beschrieben sind. [5] 3.2 Darstellung Zur Darstellung dieser XML - Dateien in den neuen ML - Dateien, wird ein so genannter Parser benötigt, um die Dateien richtig darzustellen. Dies sei mal am Beispiel einer HTML - Datei erläutert: Falls eine XML - Datei ungeparst aufgerufen wird, erscheint folgendes auf den Schirm: 12 (c) José Angel Monte Barreto & Thorsten Weidenfeller

16 3.2 Darstellung 3 XSL TRANSFORMATIONEN - BASISKOMPONENTEN Der XSLT-Parser ist einfach ein Software-Modul. Die Frage stellt sich jedoch, wo dieses Software-Modul am besten hingehört. Wenn die Transformation der XML-Daten in eine formatierte Ausgabe im Browser stattfinden soll, dann muss der Browser selbst über ein entsprechendes Modul verfügen. Dies ist beispielsweise beim MS Internet Explorer ab Version 5.0 der Fall. Dieses Verfahren hat zwar den Vorteil, dass auf Seiten des Servers keine hohe Rechenleistung erforderlich ist, da dieser nur die XML und XSL Datei zum Client schickt. Jedoch haben ältere Browser kein solchen Parser, und es kommt somit zu gar keiner oder keiner sinnvollen Bildschirmanzeige der XML-Daten. Die andere und derzeit häufig eingesetzte Möglichkeit bei Webseiten im Internet ist daher, das Software-Modul für den XSLT- Parser in den Webserver zu integrieren. 13 (c) José Angel Monte Barreto & Thorsten Weidenfeller

17 3.3 XSLT Elemente 3 XSL TRANSFORMATIONEN - BASISKOMPONENTEN Der Vorteil dabei ist, dass die XML-Daten nach HTML transformiert werden, bevor sie überhaupt mit HTTP an den aufrufenden Browser übertragen werden. Dies hat den wunderbaren Effekt, dass die XML-Daten auf jedem noch so alten und schlichten Browser präsentiert werden können. Denn der Browser bekommt beim Anfordern der Daten überhaupt nichts von XML mit. Stattdessen bekommt er vom Server nur HTML geliefert. Für Apache, das heute im Web am weitesten verbreitetste Webserver- Produkt, gibt es ein solches XSLT-Modul mit dem Namen Xalan. 3.3 XSLT Elemente In diesem Abschnitt stellen wir Ihnen die verschiedenen XSL - Tag und deren Funktionen vor. Dazu sei vorab gesagt, dass jede XSL - Datei mit dem Einstiegselement xsl:stylesheet beginnt. Das wichtigste Element innerhalb davon ist das xsl:template - Element xsl:apply-imports Dieses Element kann nur innerhalb von xsl:template vorkommen und arbeitet mit dem xsl:import - Element zusammen. Somit werden die Templates die über xsl:import importiert wurden an der Stelle, wo xsl:apply-imports steht, angewandt xsl:apply-templates Dieses Element wendet innerhalb eines xsl:template - Elementes andere Templates an, die unter xsl:template definiert wurden. Hiermit lassen sich dann Reihenfolge und Abhängigkeiten steuern. Dieses Element hat zwei optionale Attribute: select= Falls dieses Attribut angewandt wird, wird nur das Template ausgewählt, welches hinter dem Gleichheitssymbol steht. Falls dieses Attribute nicht angewandt wird, werden alle nächstuntergeordneten xsl:template - Elemente angewendet. mode= Hierüber wird definiert, ob das mit select= angegebene Template ausgewählt wird oder nicht. Dies muss dann mit dem mode= - Element von xsl:template übereinstimmen! xsl:attribute Dieses Element kann ein Attribute setzen und mit einem Wert versorgen. (z.b. das href - Attribut im a-tag setzen und mit versorgen) Hierzu gibt es ein obligatorisches: name= Gibt den Namen des Attributes an. und ein optionales Attribut: namespace= Gibt den URI des Namesraumes an, aus dem das Attribut stammt. 14 (c) José Angel Monte Barreto & Thorsten Weidenfeller

18 3.3 XSLT Elemente 3 XSL TRANSFORMATIONEN - BASISKOMPONENTEN xsl:attribute-set Dieses Element definiert häufig verwendete Attribute und bildet eine Attributkette als Baustein. Es muss außerhalb von xsl:template vorkommen. Diese Attribut Kette wird dann über das Attribut use-attribute-sets z.b. in dem Element xsl:element oder xsl:copy verwendet. Innerhalb dieses Elementes stehen xsl:attribut Elemente. Es hat folgendes obligatorisches Attribut: name= Gibt den Namen des Attribut Sets an. und folgendes optionales Attribut: use-attribute-sets= Bindet ein bereits bestehendes Attribut-Set mit ein. Mehrere Namen werden durch Leerzeichen getrennt xsl:call-template Dieses Element ruft ein anderes Template mit dessen Namen auf. Daher ist folgendes Attribut obligatorisch: name= Gibt den Namen des aufzurufenden Templates an. mit dem xsl:with-param-element, welches innerhalb dieses Elementes vorkommen kann, kann man zusätzlich auch noch Parameter an das aufgerufene Template übergeben xsl:choose Dieses Element bildet den Rahmen für eine Reihe von Abfragen die mit den Elementen xsl:when und xsl:otherwise abgefragt werden. Dabei ist zu beachten, dass beliebig viele xsl:when Elemente vorkommen können, jedoch am ende nur ein abschließendes xsl:otherwise - Element vorkommen darf xsl:comment Dieses Element dient zur Kommentierung des XSL- Datei. Der Inhalt dieses Elementes wir somit nicht ausgegeben. Dieses Element wird zum Beispiel dazu verwendet, um Javascript Anwendungen, ähnlich wie bei HTML, einen javascriptunfähigem-browser unzugänglich zu machen! xsl:copy Dieses Element kopiert den aktuellen Knoten die notierte Stelle. Dies ist besonders nützlich, falls der gewählte XML - Tag einem HTML - Tag entspricht. Hierbei ist zu beachten, dass hier weder die Attribute noch die Unterelemente mitkopiert werden. Um dennoch einige Attribute zu kopieren, wird folgendes optionale Attribute verwendet: use-attribute-sets= Fügt Attribute in die Kopie ein xsl:copy-of Dieses Element kopiert einen Knoten und alle davon abhängige Knoten an die notierte Stelle. Dies ist z.b. notwendig, um den Inhalt eines Elementes an mehreren Stellen zu wiederholen. Es hat folgendes obligatorisches Attribut: select= Wählt aus, was kopiert werden soll. Dies kann ein Knoten-Set, ein Pfad oder eine Variable sein xsl:decimal-format Dieses Element definiert das Schema, wie die Zahlen, die durch die Funktion format-number() formatiert werden, ausgegeben werden sollen. Die folgenden optionalen Attribute können dabei angewendet werden: decimal-separator= Gibt das Zeichen an, welches bei Kommazahlen verwendet werden soll. Voreinstellung ist der Punkt (.) 15 (c) José Angel Monte Barreto & Thorsten Weidenfeller

19 3.3 XSLT Elemente 3 XSL TRANSFORMATIONEN - BASISKOMPONENTEN digit= Gibt den Platzhalter für eine unbekannte Ziffer an. Voreinstellung ist das Gatter (#) grouping-separator= Gibt das Tausendertrennzeichen an. Voreinstellung ist das Komma (,) infinity= Gibt die Zeichen oder Zeichenkette an, die für Unendlich stehen soll. Z.B. bei periodischen Nachkommastellen. Voreinstellung ist die Zeichenkette Infinity minus-sign= Gibt das Zeichen an, welches für negative Zahlen verwendet werden soll. Voreinstellung ist das Minus Zeichen (-) name= Gibt den Namen des definierten Schemas an, welches dann in format-number() aufgerufen werden kann. Wird kein Name angegeben, gelten die Einstellungen als global. NaN= Gibt an, welche Zeichenkette für eine ungültige Zahl steht. Voreinstellung ist NaN (not a number) pattern-separator= Gibt das Zeichen an, welcher zwischen positiver und negativer Formatdarstellung steht. Voreinstellung ist das Semikolon (;) per-mille= Gibt das Zeichen für den Promille Wert an. Voreinstellung ist %O percent= Gibt das Zeichen für den Prozent Wert an. Voreinstellung ist % zero-digit= Gibt das Zeichen für die Darstellung führender Nullen an. Voreinstellung ist das Zeichen für Null (0) Dieses Element muss außerhalb von xsl:template definiert sein xsl:element Dieses Element erzeugt ein Element im Ergebnisbaum. Üblicherweise werden die Elemente zwar direkt notiert, jedoch kann es manchmal nützlich sein (z.b. in xsl:attribute-sets) die Elemente nicht direkt zu notieren, sondern mit xsl:element generieren zu lassen. Folgendes Attribut ist obligatorisch: name= Gibt den Namen des zu generierenden Elementes an. Die nachfolgenden Attribute sind optional: namespace= Gibt den Namensraum an, dem das Element angehört. use-attribute-sets= Gibt die Attribute an, die im erzeugten Element eingesetzt werden sollen xsl:fallback Dieses Element stellt den XSLT Prozessor eine Alternativanweisung bereit für den Fall, dass dieser eine neuere Anweisung nicht kennt oder eine nicht so gebräuchliche Anweisung vorfindet. 16 (c) José Angel Monte Barreto & Thorsten Weidenfeller

20 3.3 XSLT Elemente 3 XSL TRANSFORMATIONEN - BASISKOMPONENTEN xsl:for-each Dieses Element stellt eine Schleifenanweisung innerhalb einer Template Definition dar. So lassen sich Elemente, die gleich behandelt werden sollen bündelt und werden nach der Reihe abgearbeitet. (z.b. Eine List mit verschiedenen Listenpunkten). Dieses Element hat folgendes obligatorisches Attribut: select= Gibt den Knoten bzw. Pfad an, für den die Schleife gelten soll xsl:if Dieses Element macht die Ausführung der Anweisung durch eine Bedingung abhängig, die als Attribut mitgeliefert wird. Es hat folgendes obligatorisches Attribut: test= Formuliert die Bedingung xsl:import Dieses Element importiert Template-Definitionen aus anderen Stylesheet-Dateien, die dann mit Hilfe des xsl:apply-imports- Elementes an einer ausgesuchten Stelle angewandt werden können. Zu beachtet ist, das dieses Element außerhalb von xsl:template definiert sein muss und es hat folgendes obligatorisches Attribut: href= Gibt die zu importierende Datei an. Zusätzlich gilt, dass im Konfliktfall, die aktuellen Stylesheet Definition Vorrang vor den Importierten Definition haben xsl:key Dieses Element definiert einen Zugriffschlüssel auf Elemente oder Attribute. Dieser wird über die Funktion key() aufgerufen. Es muss außerhalb von xsl:template definiert sein und hat folgende obligatorischen Attribute: name= Legt den Namen des Schlüssels fest. use= Gibt an, auf was der Schlüssel zugreifen soll. Zusätzlich aber auch folgendes optionales Attribut: match= Gibt das Knoten-Set bzw. Pfad an, wo der Schlüssel im Elementbaum ansetzen soll xsl:message Dieses Element gibt während der Transformation der Daten eine Meldung aus. Diese Funktion wird üblich zur Fehlerfindung innerhalb einer Bedingung benutzt. Folgendes optionale Attribut kann benutzt werden: terminate= Mögliche Eingaben sind yes und no. Bei Yes wird der Transformationsvorgang abgebrochen bei no nicht. (no) Ist voreingestellt xsl:namespace-alias Dieses Element erlaubt es ein Stylesheet in ein anderes Stylesheet zu transformieren. Es hat ein obligatorische: stylesheet-prefix= Gibt den Namen des Namensraums an, der im aktuellen Stylesheet verwendet wird. Dieser muss im xsl:stylesheet-element mit dem Attribut xmlns:[name] vergeben werden. und ein optionales Attribut: result-prefix= Gibt den Namen des Namensraums an, der im Ergebnis-Stylesheet anstelle des Namens verwendet werden soll, der bei stylesheet-prefix= angegeben ist. 17 (c) José Angel Monte Barreto & Thorsten Weidenfeller

21 3.3 XSLT Elemente 3 XSL TRANSFORMATIONEN - BASISKOMPONENTEN xsl:number Dieses Element versieht sich wiederholende Elemente in einem Ergebnisbaum mit fortlaufenden Nummerierung. Folgende optionalen Attribute können gesetzt werden: count= Bestimmt den Knoten, bei dem der Zähler erhöht werden soll. format= Bestimmt die Art der Nummerierung: 1 Nummerierung der Art: 1,2,3,4, Nummerierung der Art: 01,02,03,04,... a Nummerierung der Art: a,b,c,d,... A Nummerierung der Art: A,B,C,D,... i Nummerierung der Art: i,ii,iii,iv,... I Nummerierung der Art: I,II,III,IV,... Voreingestellt ist 1 from= Bestimmt den Knoten, bei dem die Nummerierung aufhören soll. grouping-separator= Trennzeichen für Ziffergruppen. Üblicherweise ein Punkt (.) grouping-size= Anzahl der Ziffern, bei der ein Trennzeichen gesetzt werden soll. (z.b. Bei ist das 3) lang= Gibt das Land an, nach dessen Sprachkonvertierung die Nummerierung erfolgen soll. Z.B. de für deutsch en für englisch fr für französisch letter-value= Die hier erlaubten Werte sind alphabetical und traditional. Diese Angabe ist für einige Sprachen sinnvoll. level= Die hier erlaubten Werte sind single, multiple oder any Die Angabe bezieht sich darauf, was bei count= angegeben wird. single bedeutet eine flache Nummerierung auf aktueller Ebene, wie 1,2,3,... multiple bedeutet eine hierarchische Nummerierung, wie 1.1.1, 1.1.2,... any bedeutet eine flache Nummerierung auf allen Ebenen. value= Gibt alternativ zu count, from oder level die Nummerierung an xsl:otherwise Dieses Element bestimmt, was getan werden soll wenn eine oder mehrere xsl:when - Bedingungen nicht zutreffen xsl:output Dieses Element gibt an, wie der Ergebnisbaum ausgegeben werden soll. Es hat folgende optionalen Attribute: cdata-section-elements= (bei method= xml ) Bestimmt Elemente, deren Inhalt beim Erzeugen des Ergebnisbaums in CDATA-Abschnitte geschrieben werden. doctype-public= (bei method= xml und method= html ) wenn sich die Gültigkeitsüberprüfung des Ergebnisbaums eine öffentliche DTD-Zuordnung (public identifier) bezieht, erhält dieses Attribut als Wert die Zeichenkette des public identifiers. doctype-system= (bei method= xml und method= html ) wenn sich die Gültigkeitsüberprüfung des Ergebnisbaums auf eine adressierte DTD-Zuordnung (system identifier) bezieht, erhält dieses Attribut als Wert die Zeichenkette des system identifiers. 18 (c) José Angel Monte Barreto & Thorsten Weidenfeller

22 3.3 XSLT Elemente 3 XSL TRANSFORMATIONEN - BASISKOMPONENTEN encoding= Bestimmt, mit welchem Zeichensatz der Ergebnisbaum kodiert wird. indent= Kann die Werte yes oder no (Voreinstellung) haben. Bei yes wird der Ergebnisbaum so formatiert, dass untergeordnete Elemente weiter eingerückt werden. Dies hat keine Auswirkung auf die Darstellung, sondern ist eine kosmetische Angabe zur besseren Lesbarkeit des erzeugten Quelltextes. media-type= Gibt den Mime-Type des Ergebnisbaums an. Bei method= xml ist beispielsweise text/xml sinnvoll, bei method= html beispielsweise text/html und bei method= text beispielsweise text/plain. method= gibt an, nach welcher Art der Ergebnisbaum erzeugt werden soll. Mögliche Werte sind xml, html (Voreinstellung), text, oder bestimmte, eigene oder öffentliche XML-Namensräume. omit-xml-declaration= Bestimmt bei method= xml, ob im Ergebnisbaum eine XML-Deklaration (<?xml...? >) ausgegeben werden soll oder nicht. Mögliche Werte sind yes für ja oder no für nein. standalone= Bestimmt bei omit-xml-declaration= yes, dass sich die DTD-Deklarationen in der aktuellen Datei befinden. version= bestimmt bei omit-xml-declaration= yes die XML-Versionsangabe xsl:param Dieses Element definiert einen Parameter zur Verwendung mit xsl:with-param. Es hat ein obligatorisches: name= Gibt den Namen der Parametervariablen an unter dem auf der Wert zugegriffen werden kann. und ein optionales Attribut: select= Bestimmt einen Default-Wert für die Parametervariable. Wird dieses Attribut angegeben, handelt es sich um einen Parameter, der dazu gedacht ist, von einer Template-Definition an eine andere übergeben zu werden xsl:preserve-space Dieses Element bestimmt das Leerraumzeichen, das zwischen den Elementen in der Ausgangs - Datei enthalten ist, und hält es in der Ausgabe - Datei bei. Leerraumzeichen sind die Zeichen mit den Hexadezimalwerten #x20 (einfaches Leerzeichen), #x9 (Tabulator-Zeichen), #xd (Wagenrücklauf-Zeichen) or #xa (Zeilenvorschub-Zeichen). Es handelt sich nicht um den Textinhalt von Elementen, sondern um die Formatierung der Elemente im Ergebnisbaum. Zusätzlich muss dieses Element außerhalb von xsl:template definiert sein, und es hat folgendes obligatorisches Attribute: elements= Gibt den Namen von einem oder mehreren Elementen der Ausgangsdaten an, deren Leerraumzeichen in der Ausgabe beibehalten werden soll xsl:processing-instruction Dieses Element erzeugt eine Verarbeitungsanweisung im Ergebnisbaum. Obligatorische ist dabei folgendes Attribut: name= Bestimmt den Namen der Verarbeitungsanweisung xsl:sort Dieses Element sortiert die Knoten, die in einer bestimmten Reihenfolge angegeben sind, z.b. numerisch oder Alphabetisch nach ihrem Inhalten. Die folgenden Attribute sind dabei optional: 19 (c) José Angel Monte Barreto & Thorsten Weidenfeller

23 3.3 XSLT Elemente 3 XSL TRANSFORMATIONEN - BASISKOMPONENTEN case-order= Bestimmt die Reihenfolge der Groß- und Kleinbuchstaben. Mögliche Werte sind upper-first (Großbuchstaben zuerst) oder lower-first (Kleinbuchstaben zuerst). data-type= Bestimmt die Art der Sortierung. Mögliche Werte sind text (alphabetische Sortierung) oder number (numerische Sortierung). lang= Gibt das Land an, nach dessen Sprachkonvention sortiert werden soll. order= Bestimmt die Reihenfolge der Sortierung. Mögliche Werte sind ascending (aufsteigend) oder descending (absteigend). select= Gibt an, was sortiert werden soll xsl:strip-space Dieses Element bestimmt, im Gegensatz zu xsl:preserve-space, welches Leerraumzeichen in der Ausgangs - Datei enthalten ist, jedoch in der Ausgabe - Datei entfernt werden soll. Leerraumzeichen sind die Zeichen mit den Hexadezimalwerten #x20 (einfaches Leerzeichen), #x9 (Tabulator-Zeichen), #xd (Wagenrücklauf-Zeichen) or #xa (Zeilenvorschub-Zeichen). Es handelt sich nicht um den Textinhalt von Elementen, sondern um die Formatierung der Elemente im Ergebnisbaum. Zusätzlich muss dieses Element außerhalb von xsl:template definiert sein, und es hat folgendes obligatorisches Attribute: elements= Gibt den Namen von einem oder mehreren Elementen der Ausgangsdaten an, deren Leerraumzeichen in der Ausgabe beibehalten werden soll xsl:stylesheet Dieses Element ist das Wurzelelement eines XSL-Stylesheets. Es hat folgende optionalen Attribute: extension-element-prefixes= Gibt Namensräume an, die innerhalb des Stylesheets benötigt werden, um Elemente dieser anderen Namensräume zu erkennen. Erlaubt sind eine oder mehrere Angaben. Mehrere Angaben sind durch Leerzeichen zu trennen. exclude-result-prefixes= Gibt Namensräume an, die innerhalb des Stylesheets benötigt werden, um Elemente dieser anderen Namensräume zu erkennen. Beim Erzeugen des Ergebnisbaums werden diese Namensräume jedoch nicht mit übernommen, sofern sie dort nicht benötigt werden. Erlaubt sind eine oder mehrere Angaben. Mehrere Angaben sind durch Leerzeichen zu trennen. id= Legt einen eindeutigen Bezeichnernamen für das Stylesheet fest, unter dem es von außen ansprechbar ist. Zusätzlich auch noch folgendes obligatorische Attribut: version= Gibt die verwendete XSL-Sprachversion an. Diese unbedingt erforderliche Angabe muss derzeit 1.0 lauten. Außerdem enthält das xsl:stylesheet-element eine oder mehrere Angaben darüber, welchen Namensraum es benutzt. Dazu müssen die Quellen der Namensräume mit xmlns:xsl=[quelle] angegeben werden. Für den XSLT-Namensraum ist üblicherweise xmlns:xsl= anzugeben. Abweichungen dazu sind abhängig vom verwendeten XSL-Prozessor xsl:template Dieses Element dient zum Definieren von Schablonen für Übersetzungen des Ausgangsbaums in den Ergebnisbaum. Dazu wird angegeben, welcher Knoten des Ausgangsbaums in welches Konstrukt des Ergebnisbaums übersetzt werden soll. Daher ist das xsl:template-element wohl das wichtigste und bedeutendste Element von XSLT. Meistens sind Ausgangsbaum (also die Daten, die in einer XML-Datenstruktur vorliegen) und Ergebnisbaum (also die Datenstruktur, in die übersetzt werden soll - z.b. 20 (c) José Angel Monte Barreto & Thorsten Weidenfeller

24 3.3 XSLT Elemente 3 XSL TRANSFORMATIONEN - BASISKOMPONENTEN in HTML) so komplex, dass sich nicht alles in einer einzigen Template-Definition erledigen lässt. Stattdessen können Template- Definitionen mit xsl:apply-templates andere Template-Definitionen aufrufen, die z.b. untergeordnete Knoten verarbeiten. Folgende Attribute sind dabei optional: match= Gibt an, für welches Element des Ausgangsbaumes die Template Definition gelten soll. Wird dieses Attribut nicht angegeben, muss stattdessen name= angegeben werden. mode= Gibt einen Namen für den Modus der Template Definition an. name= Gibt einen Namen für die Template Definition an. priority= Gibt bei Konfliktfällen an, in welcher Reihenfolge die Template abgearbeitet werden sollen. Eingabe ist ein numerischer Wert xsl:text Dieses Element erzeugt einen statischen Text im Ergebnisbaum und hat folgendes optionales Attribut: disable-output-escaping= Dieses Attribut bestimmt, wie XML eigene Zeichen behandelt werden sollen. Mögliche Werte sind: YES und NO. Bei YES werden solche Zeichen nicht in ihre benannten Namen umgewandelt, bei no schon xsl:transform Dieses Element ist ein Synonym für xsl:stylesheet und hat folgedessen die gleichen Eigenschaften xsl:value-of Dieses Element erzeugt eine gespeicherte Zeichenkette an der aktuellen Position im Ausgabebaum. Dies Kann eine Variable oder der Inhalt eines XML-Knotens sein. Es hat zwei optionale Attribute: disable-output-escaping= Bestimmt, wie bei der Ausgabe XML-eigene Zeichen wie < oder > behandelt werden. Mögliche Werte sind yes und no (Voreinstellung). Bei yes werden solche Zeichen nicht in ihre benannten Namen umgewandelt, bei no werden sie umgewandelt. extension-element-prefixes= Gibt Namensräume an, die benötigt werden, um Elemente dieser anderen Namensräume zu erkennen. und ein obligatorisches: select= Wählt einen Knoten oder eine Variable oder einen Parameter aus, dessen Inhalt verwendet werden soll xsl:variable Dieses Element definiert eine Variable, deren Wert im weiteren Verlauf verwendet werden kann. Wird dieses Element außerhalb von xsl:template definiert, handelt es sich um eine globale Variable, innerhalb des xsl:template- Elementes um eine lokale Variable. Dieses Element hat ein obligatorisches: name= Gibt den Namen der Variable an, unter dessen Namen darauf zugegriffen werden kann. und ein optionales Attribut: select= Bestimmt einen Wert für die Variable. Wird dieses Attribut notiert, muss das xsl:variable- Element leer sein. Wird es nicht notiert, erfolgt die Wertzuweisung als Inhalt des Elements zwischen seinem Anfangs- und End-Tag. 21 (c) José Angel Monte Barreto & Thorsten Weidenfeller

25 3.3 XSLT Elemente 3 XSL TRANSFORMATIONEN - BASISKOMPONENTEN xsl:when Dieses Element definiert eine Bedingung bei einer Mehrfachauswahl innerhalb der xsl:choose-anweisung. Folgendes Attribute ist dabei obligatorisch: test= Formuliert die Bedingung xsl:with-param Dieses Element weist einem Parameter beim Aufruf einer Template Definition einen Wert zu. Es hat ein obligatorisches: name= Gibt den Namen des Parameters an. und ein optionales Attribut: select= Weist dem Parameter einen Wert zu. Hier kann ein Knoten angegeben werden, oder aber auch ein anderer Ausdruck, z.b. ein Rechenausdruck. 22 (c) José Angel Monte Barreto & Thorsten Weidenfeller

26 4 MODULARES XSLT 4 Modulares XSLT Als Entwickler findet man die Möglichkeiten von Variablen sehr zu schätzen. Auch wenn es dem Gedanken einer Auszeichnungssprache widerspricht, so hat man dennoch zwei Möglichkeiten: xsl:variable und xsl:param. Den originalen Charakter einer Variablen haben aber beide nicht, sondern eher den einer Konstanten oder besser gesagt einer Entität. 4.1 Variablen / Konstanten Die Motivation Variablen einzusetzen besteht darin, dass so häufig verwendete Code - Fragmente an einer (mehr oder weniger zentralen) Stelle deklariert werden können. Dort kann dann immer auf die Variable zugegriffen werden. Ein weiterer Vorteil liegt darin, dass man bei einer Änderung nicht alle Variablen ändern muss, sondern nur diese eine und die Änderung wird dann überall hin übernommen. (Ähnlich wie beim Objekt-orientierten Programmieren) Schauen wir uns dazu folgendes Beispiel an: Hier legen wir die Variable fest. So kann überall im Dokument auf diese Variable bzw. zugegriffen werden ohne diesen Code ständig ausschreiben zu müssen. Der Zugriff auf diese Variable erfolgt mit: Hierbei ist zu beachten, dass das xsl:copy-of - Element die komplette Struktur mit allen Unterelementen in den Ergebnisbaum kopiert. Alternativ kann auch das xsl:value-of - Element verwendet werden. Dabei wird allerdings nur der Wert in den Ergebnisbaum kopiert. Würde sich die - Adresse nun ändern, müsste man das ganze Dokument durchforsten, und jede Adresse einzeln ändern. Mit Variablen jedoch, gelingt dies mit nur einer Änderung an zentraler Stelle. 4.2 Variablen als Parameter Wenn man von xsl:param spricht muss man auch von xsl:with-param sprechen, da beide sehr eng miteinander arbeiten. Bei der Benutzung von beiden kommt man schon eher an den Gedanken einer Variablen heran. Vom Prinzip her, funktionieren sie auch genauso wie ein xsl:variable - Element. Die Werte die xsl:param zugewiesen werden, können z.b in einem Template verwendet werden, das mit xsl:call-template wieder aufgerufen werden kann. Der Wert des xsl:param ist ein Standard Wert, der auch wieder überschrieben werden kann. Schauen wir uns dazu folgendes Beispiel an: 23 (c) José Angel Monte Barreto & Thorsten Weidenfeller

27 4.2 Variablen als Parameter 4 MODULARES XSLT Hier wird der Parameter order direkt mit dem Wert aus select= belegt. Also ascending. Will man den Wert nicht direkt festlegen, sondern auch aus dem XML Dokument auslesen, verwendet man zusätzlich das xsl:value-of - Element. Um diesen nun festgelegten Parameter zu nutzen, wird in dem entsprechenden Attribut des Elementes, der Parameter dem Attribut zugewiesen mithilfe des $ - Statements von XPath. Eine weitere Methode den Parameter zu übergeben stellt das Eingangs schon erwähnte xsl:with-param - Element dar. Hier wird der Wert des Attributes nicht direkt festgelegt, sondern er wird mit Hilfe des xsl:with-param - Elementes zugewiesen: Ebenfalls gibt es hier auch die Methode, den Wert des Parameters aus dem XML - Dokument auszulesen: 24 (c) José Angel Monte Barreto & Thorsten Weidenfeller

28 5 FAZIT - VOR- UND NACHTEILE 5 Fazit - Vor- und Nachteile Abschließend werden die Vor- und Nachteile von XSLT erläutert. 5.1 Vorteile XSLT hat gegenüber CSS den Vorteil, dass es Transformieren kann, d.h. Elemente mehrmals und an verschiedenen Positionen verwenden kann (die Tags z.b. von hinten nach vorne zeigen kann). Mit XSLT kann man z.b. automatisch Inhaltsverzeichnisse, Indizes, Link-Listen und Ähnliches erstellen (nicht mit CSS möglich). Der User kann ganz genau entscheiden, wie die einzelnen Elemente eines Dokuments dargestellt werden sollen; bei HTML ist von vorneherein definiert, was z.b. Überschriften sind und was betont wird. Die Lösung dafür lautet CSS; es erlaubt dem Benutzer, das Aussehen ihrer Seiten genauer und browserunabhängig festlegen zu können. Das Problem hierbei ist allerdings, dass es bei CSS zu Redundanzen kommt, da man bei einer Optik und/oder Inhaltsänderung eines Tags in verschiedenen Dateien diese Änderung bei jeder Datei einzeln ausführen muss. Bei XSLT besteht dieses Problem nicht, da man genau bestimmen kann wie ein Tag dargestellt werden soll, auch in verschiedenen Dateien. Hat man nun HTML- Seiten und kommt plötzlich auf die Idee, Stichwörter entsprechend irgendeiner Norm blau zu schreiben, wäre das durch die (einmalige) Änderung der Darstellungsschicht erheblich leichter (XSLT) als durch eine Änderung von HTML- Dateien (CSS). Ein Vorteil gegenüber DSSSL ist seine auf XML basierende Syntax, somit kann jeder XML-Editor auch für XSLT verwendet werden. Außerdem gelten die Regeln von XML (Wohlgeformtheit und Gültigkeit). Der Vorteil der Kombination XML/XSLT ist die vollständige Trennung von Inhalt, Logik und Darstellung. XSLT ist plattformunabhängig und relativ weit verbreitet. Mit XSLT kann nicht nur HTML, sondern auch beliebig andere Sprachen erzeugt werden. 5.2 Nachteile Für XML/XSLT sind bislang nur sehr wenige, teilweise noch fehlerhafte und unvollständige Entwicklungswerkzeuge verfügbar. Beispiele für geeignete Entwicklungswerkzeuge wären Bonfire Studio von NZ Software und XMLSuite 2005 von Altova Gmbh. Der Entwickler muss einen hohen Lernaufwand in Kauf nehmen, da es sich um eine komplett neue Technologie handelt. XSLT ist zudem eine recht umständliche Programmiersprache. Werden in XSLT komplexe Transformationen durchgeführt, sind diese nur schwer durchschaubar. Ältere Browser können kein XSLT interpretieren; das ist allerdings nur ein geringer Nachteil, da schon der Internet Explorer ab Version 5 mit XSLT umgehen kann. XSLT eignet sich nicht zur Einbindung von Datenbanken, da die Sortierung, Filterung und Gruppierung von Daten zu umständlich wäre. Besser geeignet ist hierfür eindeutig SQL (Structured Query Language), eine Abfragesprache, die speziell für Datenbanken entwickelt wurde. 25 (c) José Angel Monte Barreto & Thorsten Weidenfeller

Einführung. Hallo-Welt in XSLT

Einführung. Hallo-Welt in XSLT 2. Vorlagen-Technik Inhalt 1. Einführung 2. Vorlagen 3. XPath 4. Kontrollstrukturen 5. Sortierung, Gruppierung und Nummerierung 6. Parameter und Variablen 7. Vorgaben für Ein- und Ausgabeformate 8. Auslagerung

Mehr

Projektseminar "Texttechnologische Informationsmodellierung"

Projektseminar Texttechnologische Informationsmodellierung Projektseminar "Texttechnologische Informationsmodellierung" Formatierung und Transformation http://www.text-technology.de/projects/sekimo.html Ziel dieser Sitzung Nach dieser Sitzung sollten Sie: XPath

Mehr

Seminar Dokumentenverarbeitung

Seminar Dokumentenverarbeitung XPath und XSL/XSLT Seminar Dokumentenverarbeitung Juni 2002 Jan-Gerrit Drexhage jdrexhag@techfak.uni-bielefeld.de Garvin Gripp ggripp@techfak.uni-bielefeld.de 1 XSLT extensible Stylesheet Language (for

Mehr

Auszug aus: Helmut Vonhoegen: Einstieg in XML, 3. Auflage, Galileo Press 2005

Auszug aus: Helmut Vonhoegen: Einstieg in XML, 3. Auflage, Galileo Press 2005 Kurzreferenz zu XSLT Auszug aus: Helmut Vonhoegen: Einstieg in XML, 3. Auflage, Galileo Press 2005 Diese Anweisung sorgt dafür, dass auf den aktuellen Knoten nur die in das Stylesheet

Mehr

XML Vorlesung FHA SS

XML Vorlesung FHA SS XML Vorlesung FH Aargau, SS 2006 XSL Transformation (XSLT) Teil II Erik Wilde 19.6.2006 Übersicht Conflict Resolution Variablen und Parameter Sortieren Erzeugen des Ausgabebaumes XPath Erweiterungen um

Mehr

Inhalte. Stylesheet-Wurzel Vorlagen Ausgabe Leerraum Funktionen Kontrollanweisungen & Techniken Sortierung Nummerierung

Inhalte. Stylesheet-Wurzel Vorlagen Ausgabe Leerraum Funktionen Kontrollanweisungen & Techniken Sortierung Nummerierung XSLT Inhalte Stylesheet-Wurzel Vorlagen Ausgabe Leerraum Funktionen Kontrollanweisungen & Techniken Sortierung Nummerierung Gruppierung XML-Erstellung Variablen und Parameter Module kombinieren Reguläre

Mehr

XSL. extended Stylesheet Language. Die Stylesheet Sprache für XML

XSL. extended Stylesheet Language. Die Stylesheet Sprache für XML XSL extended Stylesheet Language Die Stylesheet Sprache für XML XPath www.w3.org/tr/xpath Adressierung Die Templates im Stylesheet können nur dann richtig (an der richtigen Stelle) angewandt werden, wenn

Mehr

Transformation von XML-Dokumenten mit XSLT

Transformation von XML-Dokumenten mit XSLT Transformation von XML-Dokumenten mit XSLT Fabian Holzer Proseminar XML - Grundlagen, Verarbeitung und Anwendungen Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl für Systeme der

Mehr

Transformation von XML-Dokumenten. IDE SummerSchool 2013, Chemnitz

Transformation von XML-Dokumenten. IDE SummerSchool 2013, Chemnitz Transformation von XML-Dokumenten Folie 1 Was ist XSL politisch? XSL ist eine eigene Technik. Zum Publizieren (Transformieren) von Dokumenten. Früher gab es dafür Verlage und Schriftsetzer, um gute Inhalte

Mehr

XSL Transformation. Eine praxisorientierte Einführung Philip Heck

XSL Transformation. Eine praxisorientierte Einführung Philip Heck XSL Transformation Eine praxisorientierte Einführung Philip Heck Agenda Motivation Hello World - Getting Started with XSLT XSLT Verarbeitung im Detail XPath 2 Motivation datenzentriertes XML als Standard

Mehr

http://www.therealgang.de/ Titel : Einführung in XML (Teil 2/2) Author : Dr. Pascal Rheinert Kategorie : Programmierung-Sonstige Teil II: XML (Dokument 2/2) Wichtiger Hinweis: Das folgende Dokument basiert

Mehr

XSL Transformationen. -Teil 2 - Schwerpunkt: Templates und Kontrollstrukturen. XSL Transformationen - Teil 2 Christina Krieglstein / 66

XSL Transformationen. -Teil 2 - Schwerpunkt: Templates und Kontrollstrukturen. XSL Transformationen - Teil 2 Christina Krieglstein / 66 XSL Transformationen -Teil 2 - Schwerpunkt: Templates und Kontrollstrukturen / 66 Gliederung 1. Templates 1.1 Allgemeine Informationen 1.2 match-attribut 1.3 Eingebaute Template Rules 1.4 xsl:apply-templates

Mehr

XSLT XSL Transformations

XSLT XSL Transformations XML-Praxis XSLT XSL Transformations Teil 2 Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht weitere XSLT-Techniken: Bedingungen, Verzweigungen Schleifen templates aufrufen Variablen, Parameter Anwendungsbeispiel

Mehr

Dokumentverarbeitung

Dokumentverarbeitung Dokumentverarbeitung D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Winter 2012/13, 2. November 2012, c 2010-13 D.Rösner D. Rösner

Mehr

XSLT XSL Transformations

XSLT XSL Transformations XML-Praxis XSLT XSL Transformations Teil 2 Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht weitere XSLT-Techniken: Bedingungen, Verzweigungen Schleifen templates aufrufen Variablen, Parameter Anwendungsbeispiel

Mehr

XML-Verarbeitung. XPath XSL die extensible Stylesheet Language. Torsten Schaßan SCRIPTO Modul 4: EDV Wolfenbüttel 25.-29.6.2012.

XML-Verarbeitung. XPath XSL die extensible Stylesheet Language. Torsten Schaßan SCRIPTO Modul 4: EDV Wolfenbüttel 25.-29.6.2012. XML-Verarbeitung XPath XSL die extensible Stylesheet Language Folie 1 Was ist XSL? - Mehrere Komponenten: - XSLT Transformations - XSL-FO Formatting Objects - XPath - (XML-Schema) - Ausgabeformate: - XML,

Mehr

Weiterführende Literatur: M. Knobloch, M. Kopp: Web-Design mit XML, dpunkt-verlag 2001

Weiterführende Literatur: M. Knobloch, M. Kopp: Web-Design mit XML, dpunkt-verlag 2001 9. Mediendokumente 9.1 Generische Auszeichnungssprachen: XML 9.2 XML und Style Sheets 9.3 XML für Multimedia: SMIL 9.4 XML Transformationen: XSLT Weiterführende Literatur: M. Knobloch, M. Kopp: Web-Design

Mehr

Eine Schnelleinführung in XSL

Eine Schnelleinführung in XSL Eine Schnelleinführung in XSL Michael Dienert 8. Juli 2014 1 Was ist XSL? XSL ist die Abkürzung von Extensible Stylesheet Language. XSL ist selbst wieder eine XML-Anwendung, d.h. XSL-Dokumente müssen immer

Mehr

Linux I II III Res WN/TT NLTK XML Weka E XML BNC XSLT BNC/XML 7 BNC/XML XML BNC XSLT. Ressourcen-Vorkurs

Linux I II III Res WN/TT NLTK XML Weka E XML BNC XSLT BNC/XML 7 BNC/XML XML BNC XSLT. Ressourcen-Vorkurs BNC/XML 7 BNC/XML XML BNC XSLT extensible Markup Language I XML erlaubt es, strukturierte Daten in Textdateien zu speichern. Zum Schreiben und Lesen von XML-Dateien genügen einfache Text-Editoren wie Emacs

Mehr

FileMaker Konferenz 2010 XML / XSLT. Ein Workshop mit [x] cross solution Armin Egginger

FileMaker Konferenz 2010 XML / XSLT. Ein Workshop mit [x] cross solution Armin Egginger XML / XSLT Ein Workshop mit [x] cross solution Armin Egginger [x] cross solution Armin Egginger - Zertifizierter FileMaker Entwickler Urheber von CrossCheck Netzwerk von Datenbankprogrammierern Kunden

Mehr

Seminar: XML und intelligente Systeme

Seminar: XML und intelligente Systeme Seminar: XML und intelligente Systeme XML-Navigation: XPath, E4X Christoph Weitkamp cweitkam@techfak.uni-bielefeld.de Einleitung XPath ist eine Sprache, um Informationen in XML-Dokumenten zu finden Modellierung

Mehr

XPATH (XPATH) Lernziele

XPATH (XPATH) Lernziele XPATH (XPATH) Lernziele Sie finden sich im XPath-Datenmodell zurecht. Sie kennen alle XPath-Achsen. Sie können Knoten und Knotenmengen mit XPath-Ausdrücken auswählen. Sie sind in der Lage, Lokalisierungspfade

Mehr

XML-Praxis. Mit XSLT arbeiten. Jörn Clausen

XML-Praxis. Mit XSLT arbeiten. Jörn Clausen XML-Praxis Mit XSLT arbeiten Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht Kontrollstrukturen Bedingungen Schleifen named templates Variablen und Parameter Rekursion XML-Praxis Mit XSLT arbeiten

Mehr

Klaus Schild, XML Clearinghouse 2003. Transformation von XML-Dokumenten

Klaus Schild, XML Clearinghouse 2003. Transformation von XML-Dokumenten Transformation von XML-Dokumenten Lernziele Warum kann es sinnvoll sein XML-Dokumente zu transformieren? Wie funktioniert XSLT (Extensible Stylesheet Language Transformations)? Was ist XPath? Was sind

Mehr

IN A NUTSHELL. Elliotte Rusty Harold & W, Scott Means. Deutsche Übersetzung von Kathrin Lichtenberg & Jochen Wiedmann O'REILLY*

IN A NUTSHELL. Elliotte Rusty Harold & W, Scott Means. Deutsche Übersetzung von Kathrin Lichtenberg & Jochen Wiedmann O'REILLY* 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. IN A NUTSHELL Elliotte Rusty Harold & W, Scott Means Deutsche Übersetzung

Mehr

Web (Site) Engineering (WebSE)

Web (Site) Engineering (WebSE) 1 / 22 Web (Site) Engineering (WebSE) Vorlesung 6: Tools und Programmierung B. Schiemann, P. Reiß Lehrstuhl für Informatik 8 Universität Erlangen-Nürnberg 29.11.2005 2 / 22 Übersicht XML-Beispiel Zugriff

Mehr

XSL und XSLT. Inhalt. Mathias Heilig email: mathias.heilig@gmx.de. XSL Übersicht. Formatierungsprozess. Sprachbeschreibung. Vorführung Resümee

XSL und XSLT. Inhalt. Mathias Heilig email: mathias.heilig@gmx.de. XSL Übersicht. Formatierungsprozess. Sprachbeschreibung. Vorführung Resümee Mathias Heilig email: mathias.heilig@gmx.de Inhalt XSL Übersicht XSL im XML- Umfeld XSLT XPath XSL- FO Was können wir mit XSLT heute machen? Formatierungsprozess XSLT im XML- Formatierungsprozess Transformation

Mehr

Projektseminar "Texttechnologische Informationsmodellierung"

Projektseminar Texttechnologische Informationsmodellierung Projektseminar "Texttechnologische Informationsmodellierung" Analyse mit XSLT Ziel diese Sitzung Nach dieser Sitzung sollten Sie: Einen ersten Überblick über Funktionen in XPath haben Stylesheets und Templates

Mehr

Extensible Stylesheet Language Transformations XSLT

Extensible Stylesheet Language Transformations XSLT Extensible Stylesheet Language Transformations XSLT 13.06.2007 Grundlagen der Stylesheets XSLT Extensible Stylesheet Language Transformation Transformation Überführt XML-Daten in ein neues Format wieder

Mehr

Verwaltungsaufgaben lösen mit XML und L A T E X

Verwaltungsaufgaben lösen mit XML und L A T E X Verwaltungsaufgaben lösen mit XML und L A T E X Uwe Siart T E X-Stammtisch München tutorien@siart.de Erstellt: 11. März 2003 Zuletzt geändert: 7. November 2008 Beispiele für Verwaltungsaufgaben 1 Listen

Mehr

Es gibt immer einen Schlüssel und einen zugehörigen Wert,

Es gibt immer einen Schlüssel und einen zugehörigen Wert, JSON JavaScript Object Notation Im Unternehmenskontext spielt der Austausch von Daten zwischen unterschiedlichen Systemen eine große Rolle. Dabei müssen oft Technologie und Zuständigkeitsgrenzen überwunden

Mehr

Grundlagen der Extensible Stylesheet Language

Grundlagen der Extensible Stylesheet Language Grundlagen der Extensible Stylesheet Language Transformations (XSLT) Marc Monecke monecke@informatik.uni-siegen.de Praktische Informatik Fachbereich Elektrotechnik und Informatik Universität Siegen, D-57068

Mehr

Templat-Regeln: XSLT Transformation: XML-Dokumente als Bäume: sieben Arten von Knoten. XSLT Verarbeitungsmodell für Templat-Regeln.

Templat-Regeln: XSLT Transformation: XML-Dokumente als Bäume: sieben Arten von Knoten. XSLT Verarbeitungsmodell für Templat-Regeln. XSLT Transformation: Templat-Regeln: XSLT Stylesheets: ausgedrückt in einem wohlgeformten XML-Dokument Muster zum Abgleich gegen Knoten im Ursprungsbaum Templat, dessen Körper instantiiert wird, liefert

Mehr

IT-Zertifikat: Daten- und Metadatenstandards. Transformation von XML-Dokumenten mit XSLT (und XPATH) XSLT kurz und knackig. XSLT und die Praxis

IT-Zertifikat: Daten- und Metadatenstandards. Transformation von XML-Dokumenten mit XSLT (und XPATH) XSLT kurz und knackig. XSLT und die Praxis IT-Zertifikat: Daten- und Metadatenstandards Transformation von XML-Dokumenten mit XSLT (und XPATH) XSLT kurz und knackig I. Was ist XSLT? XSL Transformation (XSLT) ist eine Programmiersprache zur Transformation

Mehr

Datenbanksysteme. XML und Datenbanken. Burkhardt Renz. Sommersemester 2015. Fachbereich MNI Technische Hochschule Mittelhessen

Datenbanksysteme. XML und Datenbanken. Burkhardt Renz. Sommersemester 2015. Fachbereich MNI Technische Hochschule Mittelhessen Fachbereich MNI Technische Hochschule Mittelhessen Sommersemester 2015 Übersicht Semistrukturierte Daten Dokumenttypdefinition XML-Schema XML aus Datenbank konstruieren XML in Datenbank speichern Merkmale

Mehr

1 Was ist XML? Hallo XML! Kommentare in XML 52

1 Was ist XML? Hallo XML! Kommentare in XML 52 Inhalt Vorwort 13 Einleitung und Ziel des Buches 15 1 Was ist XML? 21 1.1 XML ein Definitionsversuch 21 1.2 XML und HTML wo sind die Unterschiede? 22 1.3 XSLT 24 1.4 Einsatzgebiete von XML und XSLT 25

Mehr

XSLT. h_da SS Seite 1

XSLT. h_da SS Seite 1 XSLT Seite 1 Inhalt Beispiele Xquery Einleitung XSLT Arbeitsweise von XSLT Template-Anweisungen XSLT Syntax Beispiele Seite 2 Aufbau eines XQL Dokuments Module ::= VersionDecl? MainModule Beispiele für

Mehr

XML. XML-Abfrage- und Transformationssprachen. XPath DTD. XQuery. XML-Schema XSLT XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

XML. XML-Abfrage- und Transformationssprachen. XPath DTD. XQuery. XML-Schema XSLT XML-Grundlagen, -Sprachen, -Datenhaltungsfragen XML-Abfragesprachen XML-Schemasprachen DTD XML-Schema... XPath XQuery XML XML-Transformationssprache XSLT Relationale DBMS XML in DBMS Dedizierte XML-DBMS 86 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

Mehr

XML. XML-Datenmodellierung / XML-Schemasprachen. XPath DTD. XQuery. XML-Schema XSLT XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

XML. XML-Datenmodellierung / XML-Schemasprachen. XPath DTD. XQuery. XML-Schema XSLT XML-Grundlagen, -Sprachen, -Datenhaltungsfragen XML-Datenmodellierung / XML-Schemasprachen XML-Abfragesprachen XML-Schemasprachen DTD XML-Schema... XPath XQuery XML XML-Transformationssprache XSLT Relationale DBMS XML in DBMS Dedizierte XML-DBMS 83

Mehr

Übersicht. Web (Site) Engineering (WebSE) XML-Beispieldokument. Simple API for XML (SAX) [Pro] XML-Beispiel. Vorlesung 6: Tools und Programmierung

Übersicht. Web (Site) Engineering (WebSE) XML-Beispieldokument. Simple API for XML (SAX) [Pro] XML-Beispiel. Vorlesung 6: Tools und Programmierung Übersicht Web (Site) Engineering (WebSE) Vorlesung 6: Tools und Programmierung XML-Beispiel B. Schiemann, P. Reiß Lehrstuhl für Informatik 8 Universität Erlangen-Nürnberg 29.11.2005 Zugriff auf Inhalt,

Mehr

mach,, Benjamin Kurtz, Bastian Bonnermann

mach,, Benjamin Kurtz, Bastian Bonnermann Folie 1 Seminarvortrag in Multimedia- & Web-Technologie von: Markus Wißmach mach,, Benjamin Kurtz, Bastian Bonnermann Für den Seminarvortrag mit dem Thema XSL/XSLT wurde das Fachbuch XSLT von Doug Tidwell

Mehr

XSL Templates. Mit Templates arbeiten. XSL Templates

XSL Templates. Mit Templates arbeiten. XSL Templates XSL Templates Mit Templates arbeiten Innerhalb von XSLT werden Templates verwendet. Ein Template ist eine Vorlage für die Transformation bestimmter Knoten. Diese Knoten können Elemente, Attribute oder

Mehr

XML 1. Einführung, oxygen. Ulrike Henny. ulrike.henny@uni-koeln.de. IDE Summer School 2013, Chemnitz

XML 1. Einführung, oxygen. Ulrike Henny. ulrike.henny@uni-koeln.de. IDE Summer School 2013, Chemnitz XML 1 Einführung, oxygen Ulrike Henny ulrike.henny@uni-koeln.de XML extensible Markup Language Was ist XML? XML-Grundlagen XML-Editoren, oxygen HTML + CSS XPath Übungen Literatur Folie 2 Was ist XML? extensible

Mehr

XPath Lokalisierspfade Achsen in Lokalisierungsschritten

XPath Lokalisierspfade Achsen in Lokalisierungsschritten Achsen in Lokalisierungsschritten self-achse Kontextknoten selbst child-achse Kindknoten des Kontextknotens in Dokumentreihenfolge parent-achse Elterknoten des Kontextknotens attribute-achse Attributknoten

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Einführung in XML Extensible Markup Language

Einführung in XML Extensible Markup Language Einführung in XML Extensible Markup Language XML Extensible Markup Language Seminarvortrag Komponentenarchitekturen WS 2008/2009 Inhaltsverzeichnis Folien der Präsentation...1 Erläuterungen zu den Beispieldateien...11

Mehr

XML-Praxis.

XML-Praxis. XML-Praxis Einführung in XSLT Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht Extensible Stylesheet Language XSL XSL Transformations XSLT templates Verarbeitung steuern XML-Praxis Einführung in XSLT

Mehr

XML-Praxis. XPath. Jörn Clausen.

XML-Praxis. XPath. Jörn Clausen. XML-Praxis XPath Jörn Clausen joern@techfak.uni-bielefeld.de 1 Übersicht XPath Namespaces 2 XML-Dokument als Baum root presentation status date author toc ilist weitere Text-Knoten durch whitespace Aufgabe:

Mehr

CARL HANSER VERLAG. Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis 3-446-22562-5. www.hanser.de

CARL HANSER VERLAG. Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis 3-446-22562-5. www.hanser.de CARL HANSER VERLAG Dirk Ammelburger XML Grundlagen der Sprache und Anwendungen in der Praxis 3-446-22562-5 www.hanser.de 1 1.1 Einleitung... 2 Über dieses Buch... 3 1.2 Für wen ist das Buch gedacht?...

Mehr

Funktionen in JavaScript

Funktionen in JavaScript Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Mithilfe von Funktionen kann man denselben Code von mehreren Stellen des Programms aus aufrufen.

Mehr

3.1 Sinn und Zweck von Namensräumen

3.1 Sinn und Zweck von Namensräumen 3 3 Die Erstellung eigener Auszeichnungssprachen und somit die Erschaffung eigener Dokumenttypen, in denen die Elemente ihre eigene Bedeutung haben, ist mit XML leicht gemacht. Natürlich können solche

Mehr

XPath XML Path Language

XPath XML Path Language XPath XML Path Language Holger Jakobs bibjah@bg.bib.de, holger@jakobs.com 2006-08-17 aktuelle Version: http://www.bg.bib.de/portale/xml/pdf/xml-xpath.pdf Inhaltsverzeichnis 1 Baumentsprechung des XML-Dokuments

Mehr

Semistrukturierte Daten

Semistrukturierte Daten Semistrukturierte Daten 7. XSLT Semistrukturierte Daten XSLT Stefan Woltran Institut für Informationssysteme Technische Universität Wien Sommersemester 2011 Stefan Woltran Seite 1 Semistrukturierte Daten

Mehr

Henning Behme Stefan Mintert. XML in der Praxis. Professionelles Web-Publishing mit der Extensible Markup Language ADDISON-WESLEY

Henning Behme Stefan Mintert. XML in der Praxis. Professionelles Web-Publishing mit der Extensible Markup Language ADDISON-WESLEY 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Henning Behme Stefan Mintert XML in der Praxis Professionelles Web-Publishing

Mehr

Webseite in XML Kurzeinführung

Webseite in XML Kurzeinführung Webseite in XML Kurzeinführung 1. Entwicklung... 1 2. Erste Webpage in XML... 2 2.1 Erstes Beispiel... 2 2.2 Tags definieren... 4 2.3 Kommentare in XML... 5 2.4 XML mittels CSS im Browser ansehen... 5

Mehr

... MathML XHTML RDF

... MathML XHTML RDF RDF in wissenschaftlichen Bibliotheken (LQI KUXQJLQ;0/ Die extensible Markup Language [XML] ist eine Metasprache für die Definition von Markup Sprachen. Sie unterscheidet sich durch ihre Fähigkeit, Markup

Mehr

XSLT extensible Stylesheet Language Transformation

XSLT extensible Stylesheet Language Transformation XSLT extensible Stylesheet Language Transformation Seite 1 Inhaltsverzeichnis 1. Was ist XSLT 3 1.1. Vorteile von XSLT 3 1.2 Anwendungen von XSL 3 2. Ablauf einer XSLT Transformation 4 2.1. Xalan und Xerces

Mehr

XSLT: Transformation von XML

XSLT: Transformation von XML namics Developer Days 21./22.6.2002 XSLT: Transformation von XML Erik Wilde ETH Zürich http://dret.net/netdret/ 21.6.2002 namics DevDays XSLT 1 Übersicht XML als Format für strukturierte Daten Zugriff

Mehr

Übungsbeispiel 1 Erstellen Sie eine Homepage für Ihre Gruppe in XML und überprüfen Sie die Wohlgeformtheit in einem Editor/Browser.

Übungsbeispiel 1 Erstellen Sie eine Homepage für Ihre Gruppe in XML und überprüfen Sie die Wohlgeformtheit in einem Editor/Browser. Erstellen Sie eine Homepage für Ihre Gruppe in XML und überprüfen Sie die Wohlgeformtheit in einem Editor/Browser. Verwenden Sie folgende XML-Sprachmittel: Leeres Element, geschachtelte Elemente, Element

Mehr

Konzept und Realisierung Extensible Stylesheet Language

Konzept und Realisierung Extensible Stylesheet Language Konzept und Realisierung Extensible Stylesheet Language Hauptseminar Telematik SS2002 Kai Weber XSL/XSLT 1 Inhalt des Vortrages Wozu dienen Stylesheets Vorstellung der XSL-Sprachfamilie Transformationen

Mehr

Gruppe 3 / 5 / 10. Tutorübung zu Einsatz und Realisierung von Datenbanksystemen (SS 17) Michael Schwarz

Gruppe 3 / 5 / 10. Tutorübung zu Einsatz und Realisierung von Datenbanksystemen (SS 17) Michael Schwarz Gruppe 3 / 5 / 10 Tutorübung zu Einsatz und Realisierung von Datenbanksystemen (SS 17) Michael Schwarz Institut für Informatik Technische Universität München 19.07 / 20.07 / 21.07.2017 1/3 Allgemeines

Mehr

Semistrukturierte Daten

Semistrukturierte Daten Semistrukturierte Daten Teil 7: XPath 1.0 Sommersemester 2007 7.1. Einführung 7.2. XPath Ausdrücke (expressions) 7.3. Pfadangaben (location paths) 7.4. Operatoren 7.5. Vordefinierte Funktionen 4.1. Einführung

Mehr

TEI und XSLT. Referat von Hannah Goldschmidt und Christian Lütticke Datenbanktechnologie Sommersemester 2011

TEI und XSLT. Referat von Hannah Goldschmidt und Christian Lütticke Datenbanktechnologie Sommersemester 2011 TEI und XSLT Referat von Hannah Goldschmidt und Christian Lütticke Datenbanktechnologie Sommersemester 2011 Text Encoding Initiative Organisation wurde1987 gegründet, um Richtlinien zum Kodieren von maschinen-lesbaren

Mehr

Erstellen von PDF-Dokumenten für Business-Anwendungen mit XSL-FO

Erstellen von PDF-Dokumenten für Business-Anwendungen mit XSL-FO Erstellen von PDF-Dokumenten für Business-Anwendungen mit XSL-FO Ich über mich Rudi Gast (rgast@ghs-software.de) seit 2000 angestellt bei der GHS Tätigkeiten: Projektleitung Softwareentwicklung F&E ca.

Mehr

APEX und Apache FOP Freie PDF-Erstellung mit APEX 3.0.1

APEX und Apache FOP Freie PDF-Erstellung mit APEX 3.0.1 APEX und Apache FOP Freie PDF-Erstellung mit APEX 3.0.1 Dr. Gudrun Pabst Basel Baden Bern Lausanne Zürich Düsseldorf Frankfurt/M. Freiburg i. Br. Hamburg München Stuttgart Agenda Kürzel: XML, XSL, XSLT,

Mehr

Texttransformation mit XSLT

Texttransformation mit XSLT Texttransformation mit XSLT Ulrike Henny, ulrike.henny@uni-wuerzburg.de 8. September 2016 Zentrum für Informationsmodellierung Austrian Centre for Digital Humanities Elisabethstraße 59/III, SR 81.31 1

Mehr

XQuery 2013 S Seite 1 h_da S

XQuery 2013 S Seite 1 h_da S XQuery 1 XPath: XML Information Set Das Information Set besteht aus Information Items und hat zumindest ein document information item. Ein Information Item ist die abstrakte Beschreibung eines Teils eines

Mehr

DOM Document Object Model

DOM Document Object Model DOM Document Object Model J. Schneeberger Das Document Object Model (DOM) W3C Spezifikation Benutzt die Baumstruktur des (XML/HTML) Dokuments Programmierschnittstelle (API) für HTML- und XML-Dokumente

Mehr

Verteilte Anwendungen. Teil 8: XSL II (XSLT)

Verteilte Anwendungen. Teil 8: XSL II (XSLT) Verteilte Anwendungen Teil 8: XSL II (XSLT) 27.10.16 1 Literatur [8-1] Bongers, Frank: XSLT 2.0. Galileo, 2004 [8-2] Skulschus, Marco; Wiederstein, Marcus: XSLT 2.0. mitp, 2005 [8-3] Lenz,Evan: XSLT 1.0

Mehr

XSL < Extensible Stylesheet Language/>

XSL < Extensible Stylesheet Language/> XSL < Extensible Stylesheet Language/> XSLT und XSL- FO TransformaLon und PräsentaLon von Metasprachen Jan Balke und Sven Marquart Der zweite Teil Einführung Grundlagen Verwendung Werkzeuge/Tools API Was

Mehr

06 Formatierungssprachen, XSL. Manuel Burghardt Lehrstuhl für Medieninformatik

06 Formatierungssprachen, XSL. Manuel Burghardt Lehrstuhl für Medieninformatik Markupsprachen 06 Formatierungssprachen, XSL Manuel Burghardt Wiederholung XML Namensräume werden benutzt, um in einem einzelnen Dokument mehrere XML Sprachen zu mischen (Ähnliche Funktionsweise wie Vorwahlen

Mehr

Buchstabensuppe. Standards für die Präsentation von XML-Instanzen

Buchstabensuppe. Standards für die Präsentation von XML-Instanzen W. Schubert, Siemens ICM N IS P23-1- Buchstabensuppe Standards für die Präsentation von XML-Instanzen Walther Schubert Siemens ICM N IS P23 und Manfred Krüger MID/Information Logistics Group GmbH XML Name

Mehr

<Trainingsinhalt> XML umsetzen und nutzen

<Trainingsinhalt> XML umsetzen und nutzen XML umsetzen und nutzen i Inhaltsverzeichnis Einführung 11 Das Problem mit HTML 12 Die Stärke von XML 13 Die XML-Helfer 14 XML im wirklichen Leben 15 Zu diesem Buch 16 Was Sie hier nicht

Mehr

X-Technologien. XML and Friends. Jörn Clausen joern@techfak.uni-bielefeld.de. 9. Juli 2001

X-Technologien. XML and Friends. Jörn Clausen joern@techfak.uni-bielefeld.de. 9. Juli 2001 X-Technologien XML and Friends 9. Juli 2001 Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht XML SAX DOM XSL XPath XSLT XSL FO Extensible Markup Language Simple API for XML Document Object Model Extensible

Mehr

In diesem Abschnitt wollen wir uns mit dem Thema XML Datenbank beschäftigen. Das Ziel ist, herauszufinden, was XML Datenbank überhaupt sind und was

In diesem Abschnitt wollen wir uns mit dem Thema XML Datenbank beschäftigen. Das Ziel ist, herauszufinden, was XML Datenbank überhaupt sind und was 1 In diesem Abschnitt wollen wir uns mit dem Thema XML Datenbank beschäftigen. Das Ziel ist, herauszufinden, was XML Datenbank überhaupt sind und was die wichtigsten Konzepte sind. Den Themenbereich XML

Mehr

XSL Transformations (XSLT) Teil III

XSL Transformations (XSLT) Teil III XML Vorlesung ETHZ, Sommersemester 2006 XSL Transformations (XSLT) Teil III Erik Wilde 13.6.2006 http://dret.net/lectures/xml-ss06/ 13.6.2006 XML Vorlesung ETHZ SS 2006 1 Übersicht Tips und Tricks Mengenoperationen

Mehr

Glossar. SVG-Grafiken in Bitmap-Grafikformate. Anweisung Eine Anweisung ist eine Folge aus Schlüsselwörtern, Variablen, Objekten,

Glossar. SVG-Grafiken in Bitmap-Grafikformate. Anweisung Eine Anweisung ist eine Folge aus Schlüsselwörtern, Variablen, Objekten, Glossar Anweisung Eine Anweisung ist eine Folge aus Schlüsselwörtern, Variablen, Objekten, Methoden und/oder Eigenschaften, die eine bestimmte Berechnung ausführt, eine Eigenschaft ändert oder eine Methode

Mehr

Inhalt. Stylesheets. Stylesheets XSL VU Semistrukturierte Daten 1. Stylesheets

Inhalt. Stylesheets. Stylesheets XSL VU Semistrukturierte Daten 1. Stylesheets Inhalt 181135 VU Semistrukturierte Daten 1 XSL - Extensible Stylesheet Language (Teil 1) 25.10.2005 Reinhard Pichler Stylesheets XSLT Aufbau eines XSLT Stylesheets Abarbeitung eines XSLT Stylesheets Erzeugung

Mehr

Agenda. 1. Was können wir mit XSLT alles machen? 1. Beispiele: 1. Webseiten 2. Textprozessierung 3. Datenbankabfragen

Agenda. 1. Was können wir mit XSLT alles machen? 1. Beispiele: 1. Webseiten 2. Textprozessierung 3. Datenbankabfragen Agenda 1. Was können wir mit XSLT alles machen? 1. Beispiele: 1. Webseiten 2. Textprozessierung 3. Datenbankabfragen 4. 2. Theorie 1. XML 2. XPath + Übung 3. XSLT 4. Wie verhalten sich beide zueinander?

Mehr

XML-Praxis. Mit XSLT arbeiten. Jörn Clausen.

XML-Praxis. Mit XSLT arbeiten. Jörn Clausen. XML-Praxis Mit XSLT arbeiten Jörn Clausen joern@techfak.uni-bielefeld.de 1 Übersicht Kontrollstrukturen Bedingungen Schleifen named templates Variablen und Parameter Rekursion 2 Bedingungen Datum nur ausgeben,

Mehr

XSLT, XSL-FO Transformieren und Formatieren

XSLT, XSL-FO Transformieren und Formatieren XSLT, XSL-FO Transformieren und Formatieren http://www.w3.org/tr/xslt, http://www.w3.org/tr/xsl Übersicht zu XSL XSL: Extensible Stylesheet Language Ziel: Darstellung eines XML-Dokuments (Erzeugung von

Mehr

Zusammenfassung XML. Metasprache um Dokumenttypen zu definieren

Zusammenfassung XML. Metasprache um Dokumenttypen zu definieren 1. XML Grundbegriffe XML = extensible Markup Language Metasprache um Dokumenttypen zu definieren XML Baum

Mehr

XML. XML-Verarbeitung mittels XSL

XML. XML-Verarbeitung mittels XSL XML-Einführung XML u n i XML-Verarbeitung mittels XSL Dr. Eckhardt Schön TU Ilmenau Institut für Medientechnik, FG Audiovisuelle Technik Inhalt XML-Wiederholung / Beispiel XSLT-Verarbeitungskonzept Szenarien

Mehr

Einführung in XML. Arthur Brack FHDW Hannover. 1. Oktober 2009

Einführung in XML. Arthur Brack FHDW Hannover. 1. Oktober 2009 Einführung in XML Arthur Brack FHDW Hannover Inhalt Was ist XML? Warum XML? Aufbau von XML-Dokumenten Ausblick XML-Schemasprachen XPath XSLT Zusammenfassung Literatur Einführung in XML 2 / 14 Was ist XML?

Mehr

XSL Transformations (XSLT) Teil III

XSL Transformations (XSLT) Teil III XML Vorlesung ETHZ, Sommersemester 2006 XSL Transformations (XSLT) Teil III Erik Wilde 13.6.2006 http://dret.net/lectures/xml-ss06/ Übersicht Tips und Tricks Mengenoperationen in XPath Keys Modularisierung

Mehr

XML steht für Extensible Markup Language. Helmut Vonhoegen (2007) beschreibt XML unter anderem so:

XML steht für Extensible Markup Language. Helmut Vonhoegen (2007) beschreibt XML unter anderem so: XML 1. Worum geht es? XML steht für Extensible Markup Language. Helmut Vonhoegen (2007) beschreibt XML unter anderem so: XML definiert eine Syntax, um strukturierte Datenbestände jeder Art mit einfachen,

Mehr

XPath & XQuery Standardisierte Abfragesprachen für XML-Dokumente. Sebastian Apel

XPath & XQuery Standardisierte Abfragesprachen für XML-Dokumente. Sebastian Apel XPath & XQuery Standardisierte Abfragesprachen für XML-Dokumente Sebastian Apel Inhalt Die Geschichte XPath 1.0 Das Datenmodell Pfadausdrücke Anwendung von XPath XPath 2.0 & XQuery Neues in XPath 2.0 Wozu

Mehr

Praktikum zu XML: Übung 11

Praktikum zu XML: Übung 11 Fachhochschule Wiesbaden - Fachbereich Informatik Praktikum zu XML: Übung 11 XSLT Eine HTML-Tabelle 10.06.2003 H. Werntges, FB Informatik, FH Wiesbaden 1 Organisatorisches Arbeitsverzeichnis: ~/kurse/xml/11/

Mehr

XML und Dokumentenmanagement

XML und Dokumentenmanagement XML und Dokumentenmanagement XML-Standards XML DTD XPath XSL DOM, SAX, XQuery,... - SS 2004 - Prof. Dr. Stefan Böttcher Folie XML / 1 Überblick: Internet-Technologien für Dokumentenmanagement Server-Technologien

Mehr

Diese neuen Gestaltungsmöglichkeiten können nun auf den Web-Anzeigenmarkt angewandt werden: Wissensbaustein»Anzeigenmarkt: CSS-Einsatz«(S.

Diese neuen Gestaltungsmöglichkeiten können nun auf den Web-Anzeigenmarkt angewandt werden: Wissensbaustein»Anzeigenmarkt: CSS-Einsatz«(S. 128 5XHTML&CSS* Wissensbaustein»CSS: ID-Attribut«(S. 180) Wissensbaustein»CSS: Umrandungen«(S. 182) Wissensbaustein»CSS: Füllungen & Abstände«(S. 185) Wissensbaustein»CSS: Pseudo-Klassen & -Elemente«(S.

Mehr

SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT

SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT SQL SQL SELECT Anweisung Mit der SQL SELECT-Anweisung werden Datenwerte aus einer oder mehreren Tabellen einer Datenbank ausgewählt. Das Ergebnis der Auswahl ist erneut eine Tabelle, die sich dynamisch

Mehr

extended Markup Language (XML)

extended Markup Language (XML) Überblick über Internet-Technologien Server-Technologien Datenbankkopplung XSP Servlets JSP PHP CGI nur HTML nur HTML XML+ Dokumentsprachen Client-PGM ruft DB-Server Web-Server ruft Datenbankserver nur

Mehr

Datenbank und Tabelle mit SQL erstellen

Datenbank und Tabelle mit SQL erstellen Datenbank und Tabelle mit SQL erstellen 1) Übung stat Mit dem folgenden Befehlen legt man die Datenbank stat an und in dieser die Tabelle data1 : CREATE DATABASE stat; USE stat; CREATE TABLE data1 ( `id`

Mehr

Inhaltsverzeichnis. 1 Grundlagen. Vorwort VII

Inhaltsverzeichnis. 1 Grundlagen. Vorwort VII Vorwort 1 DocBook in 10 Minuten 1.1 XML als universelle Datenstruktur 1.2 Ein DocBook-Dokument entsteht 1.3 Überprüfen eines DocBook-Dokuments 1.4 Umwandlung von DocBook 1.5 Die Reise beginnt... VII 1

Mehr

Objekte haben eine eigene Notation, also Schreibweise, beim Aufruf:

Objekte haben eine eigene Notation, also Schreibweise, beim Aufruf: JavaScript - Inhalt 1. Objekte 2. Arrays 3. Callbacks 1)JavaScript Objekte Objekte haben eine eigene Notation, also Schreibweise, beim Aufruf: Eine Methode wird immer mit dem Namen des Objekts, einem Punkt

Mehr

Prof. Dr. Martin Leischner Fachbereich Informatik XML. Prof. Dr. Martin Leischner Fachbereich Informatik. Anwendungen (SOAP,WSDL, ) Verknüpfungen XSL

Prof. Dr. Martin Leischner Fachbereich Informatik XML. Prof. Dr. Martin Leischner Fachbereich Informatik. Anwendungen (SOAP,WSDL, ) Verknüpfungen XSL XML M. Leischner E-Businesskommunikation SS 2004 Folie 1 XML Sprachfamilie Anwendungen (SOAP,WSDL, ) XLL Verknüpfungen XPOINTER XLINK XSL XSLT Layout CSS XPATH Sprache Dokumentenaustausch DTD XML Namespace

Mehr

XML und Webseitengestaltung

XML und Webseitengestaltung XML und Webseitengestaltung Annett Ehrlich annett.ehrlich@stud.tu-ilmenau.de Sandra Finger sandra.finger@stud.tu-ilmenau.de Manuel Löffelholz Manuel.loeffelholz@stud.tu-ilmenau.de 02.Januar 2005 Seminar

Mehr

Literatur. Verteilte Anwendungen WS Teil 2/Namensräume

Literatur. Verteilte Anwendungen WS Teil 2/Namensräume Literatur [2-1] Eckstein, Robert; Casabianca, Michel: XML Kurz und gut. O'Reilly, 2. Auflage, 2003 [2-2] Nussbaumer, Alfred; Mistlbacher, August: XML Ge-Packt. mitp, 2002 [2-3] Musciano, Chuck; Kennedy,

Mehr

Gliederung / Inhaltsüberblick

Gliederung / Inhaltsüberblick Datenbanken und Informationssysteme 2 SS 2002 Prof. Dr. Stefan Böttcher Universität Paderborn Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher Folie XSW - 1 Gliederung / Inhaltsüberblick

Mehr