XSL Transformations (XSLT) Teil III

Ähnliche Dokumente
XSL Transformations (XSLT) Teil III

XSL Transformation (XSLT) Teil IV

XML Vorlesung FHA SS

XSLT: Transformation von XML

Einführung. Hallo-Welt in XSLT

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

Projektseminar "Texttechnologische Informationsmodellierung"

Transformation von XML-Dokumenten mit XSLT

XSLT XSL Transformations

XSLT XSL Transformations

XML Vorlesung FHA SS

Seminar Dokumentenverarbeitung

Web (Site) Engineering (WebSE)

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

Projektseminar "Texttechnologische Informationsmodellierung"

XSL Transformations (XSLT) Teil I

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

XML Schemasprachen. Übersicht und Einordnung. Übersicht. ! DTDs und XML Schema. ! Schemasprachen als Konzept. ! Schemasprachen selbstgemacht

XSL Transformation. Eine praxisorientierte Einführung Philip Heck

Transformation von XML-Dokumenten. IDE SummerSchool 2013, Chemnitz

Konzept und Realisierung Extensible Stylesheet Language

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

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

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

Grundlagen der Extensible Stylesheet Language

Fragestunde: Neuerungen in XQuery und XSLT

XSLT 2015/2016 S Seite 1 h_da W

CARL HANSER VERLAG. Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis

PRÜFUNG IN SEMI-STRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Semistrukturierte Daten

Eine Schnelleinführung in XSL

Gruppe A Bitte tragen Sie sofort und leserlich Namen, Studienkennzahl und Matrikelnummer ein und legen Sie Ihren Studentenausweis

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

Verteilte Anwendungen. Teil 8: XSL II (XSLT)

Semistrukturierte Daten

XML Vorlesung FHA SS

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

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

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

XSLT. h_da SS Seite 1

XSL Templates. Mit Templates arbeiten. XSL Templates

Klinikum Göttingen BE Tumorzentrum XML-Schema und TuDaSch-XML

Inhaltsverzeichnis. 1 Grundlagen. Vorwort VII

Tutorial: Lesbare URLs - Literales URI-Format anpassen. Version: 2.0 Autoren: Anja Beuth, Stefan Suermann

XML Vorlesung ETHZ SS XML Vorlesung ETHZ, Sommersemester

Texttransformation mit XSLT

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

XSLT, XPath und XQuery Marco Skulschus Marcus Wiederstein Sarah Winterstone

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

PRÜFUNG IN SEMI-STRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Web Technologien XML, XQuery, XPath und XSLT


Extensible Stylesheet Language Transformations XSLT

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

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

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

XSLT extensible Stylesheet Language Transformation

Inhalt. 1 Einleitung Warum dieses Buch? Der rote Faden Danksagung URL zum Buch 4. TEIL I Einführung 5

XML-Praxis.

Erik Wilde XML Schema

Projektarbeit: Übersetzung von XML-Updatesprachen

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

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

XML-Praxis.

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

XML Path Language (XPath)

XSL. XSLT und XSL- FO. < Extensible Stylesheet Language /> TransformaLon und PräsentaLon von Metasprachen. Jan Balke und Sven Marquart 1

XML Vorlesung ETHZ SS XML Vorlesung ETHZ, Sommersemester

XSL < Extensible Stylesheet Language/>

XML. XML-Verarbeitung mittels XSL

Einführung in XML Einführung in XML. Erik Wilde Institut für Technische Informatik und Kommunikationsnetze (TIK) ETH Zürich

Update XSLT Die interessantesten Features von XSLT/XPath 2.0. Matthias Born

XML Vorlesung ETHZ SS XQuery XML Vorlesung ETHZ SS XML Vorlesung ETHZ SS

1. Klausur Web-basierte Informationssysteme SS 2010

XML Informationsmodelle

7. XML-Datenbanksysteme und SQL/XML

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

Einführung in XML Extensible Markup Language

XML and Semantic Web Technologies

PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

bitflux CMS ein crossmedia-fähiges opensource System ein Vortrag von Marcel Linnenfelser

Dokumentverarbeitung

PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Entwicklung eines Tutorials für XQuery

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

Wirtschaftsinformatik (PWIN) 5. Mentorium. Wirtschaftsinformatik (PWIN), SS2010, Professur für Mobile Business & Multilateral Security 1

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

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

Funktionen in JavaScript

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

XML Grundlagen Teil I

Einführung: Installation und Anpassung der Site zum Buch 15

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

Kursinhalte. Kompakt-Intensiv-Training. XSL, XSLT, FO - Einstieg für XML

XSL und XSLT. Inhalt. Mathias Heilig XSL Übersicht. Formatierungsprozess. Sprachbeschreibung. Vorführung Resümee

XML Schema Marco Skulschus Marcus Wiederstein Sarah Winterstone

Current Workflow. formatted. Rules. Extensions. Rules. DOM processing with Meta API-calls. Code Generation (Smarty) XMLfile. Source code.

XML Schema 2016 S h_da S Seite 1

Transkript:

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 Import Precedence XSLT Extensions XSLT und Schemas Schemas für die Eingabe Schemas für die Ausgabe 13.6.2006 XML Vorlesung ETHZ SS 2006 1 13.6.2006 XML Vorlesung ETHZ SS 2006 2 Identitäts-Test mit generate-id() Test auf Node Identität oft notwendig z.b. Node in Variable gespeichert Test auf Identität mit Variable in einer Schleife der direkte Vergleich ist nicht korrekt aber: $x = $y ist ein korrekter XPath er vergleicht jedoch die String Values der Knoten oft richtig, aber nicht immer (schwer zu findender Fehler) Nodes müssen über ihre ID verglichen werden generate-id($x) = generate-id($y) vergleicht die generierten IDs diese müssen identisch sein bei identischen Nodes Mengenoperationen XSLT kennt nur den Union Operator ( ) die am häufigsten gebrauchte Operation aber nicht die einzig sinnvolle Operation Ausnutzung der Definition von XPath Prädikaten Verwendung von Schnittmengen $a[count(. $b) = count($b)] selektiert Nodes, die in $a und in $b sind Verwendung von Differenzmengen $a[count(. $b)!= count($b)] selektiert Nodes in $a, die nicht in $b sind 13.6.2006 XML Vorlesung ETHZ SS 2006 3 13.6.2006 XML Vorlesung ETHZ SS 2006 4 Zugriff auf Nodes über Keys Deklaration mit <xsl:key> immer auf dem Top Level deklariert Name, Match Pattern und Wert des Keys falls Wert ein Node Set ergeben sich mehrere Keys <xsl:key name="" match="name" use="vorname"/> Hinweis an den XSLT Prozessor sinnvollerweise wird ein Index aufgebaut Keys müssen nicht eindeutig sein Eindeutigkeit muss separat sichergestellt werden in XSLT: count(key(...)) darf höchstens eins sein im Schema: DTD IDs oder XML Schema Identity Constraints Deklarieren und Verwenden eines Key <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:key name="topicid" match="topic" use="@tid"/> <xsl:template match="/"> <xsl:value-of select="key('topicid','ascii')/name"/> <xsl:text> (</xsl:text> <xsl:value-of select="key('topicid','ascii')/alias"/> <xsl:text>), </xsl:text> <xsl:value-of select="key('topicid','md5')/name"/> <xsl:text> (</xsl:text> <xsl:value-of select="key('topicid','md5')/alias"/> <xsl:text>)</xsl:text> </xsl:template> </xsl:stylesheet> 13.6.2006 XML Vorlesung ETHZ SS 2006 5 13.6.2006 XML Vorlesung ETHZ SS 2006 6 XSLT (Teil III) 1

Multivalued Keys <xsl:key> ist sehr flexibel ein Key kann mehrere Werte für einen Node haben <xsl:key name="" match="name" use="vorname"/> wie findet man Schnittmengen von Keys? generelles Problem in XSLT/XPath auf Mengen gibt es nur den Union Operator ( ) spezieller Code in XSLT <xsl:variable name="a" select="key( )"/> <xsl:variable name="b" select="key( )"/> <xsl:variable name="result" select="$a[count(. $b) = count($b)]"/> Identifizieren von Knoten generate-id() erzeugt eine eindeutige ID eine gültiger XML Name (DTD ID/IDREF) kann jedem Knoten einen Namen zuweisen keine inverse Funktion Abbildung ID auf Knoten nicht unterstützt möglich durch //*[generate-id()=$id] extrem ineffizient Schlüsseldefinition für inverses Mapping <xsl:key name="id" match="*" use="generate-id()"/> Benutzung einfach mit key('id',$id) 13.6.2006 XML Vorlesung ETHZ SS 2006 7 13.6.2006 XML Vorlesung ETHZ SS 2006 8 Modularisierung lange und unübersichtliche Style Sheets sowieso problematisch wegen der XML-Syntax Trennung in verschiedene Teile Verwendung mehrerer Teile bessere Übersichtlichkeit Wiederverwendung von Style Sheets Ergänzung von Teilen in verschiedenen Kontexten Wiederverwendung von Template Rules Varianten der Modularisierung textuelles Einbinden <xsl:include> als Top Level Element logisches Importieren <xsl:> für die logische Strukturierung ierte Teile haben niedrigere Priorität <xsl:apply-s> für die Ausführung ierter Template Rules 13.6.2006 XML Vorlesung ETHZ SS 2006 9 13.6.2006 XML Vorlesung ETHZ SS 2006 10 Struktur eines XSLT Programms ein Style Sheet ist die Wurzel als Style Sheet dem XSLT Prozessor übergeben als Style Sheet im XML Dokument angegeben weitere Teile werden referenziert <xsl:include> für textuelles Einbinden <xsl:> für logisches Importieren beliebig weit rekursiv fortgesetzt Resultat ist ein Baum von Style Sheets Zusammensetzung vor der Ausführung alle referenzierten Teile müssen existieren Textuelles Einbinden von Stylesheets <xsl:include> für textuelles Einbinden muss auf dem Top Level erscheinen entspricht dem Copy&Paste des Style Sheets abgesehen von dessen Document Element nicht tauglich für lose gekoppelte Style Sheets vergleichbar einem simplen Preprocessor keinerlei Einfluss auf die Interpretation lose gekoppelte Style Sheets logisches Einbinden mit niedrigerer Priorität hat einen erwünschten Einfluss auf die Interpretation definierte Dinge können überschrieben werden 13.6.2006 XML Vorlesung ETHZ SS 2006 11 13.6.2006 XML Vorlesung ETHZ SS 2006 12 XSLT (Teil III) 2

Importieren von Stylesheets Import Precedence am Beispiel <xsl:> für logisches Importieren muss auf dem Top Level erscheinen muss als erstes Element auf Top Level erscheinen Imports definieren die Import Precedence Importiertes geringer gewichtet als das Importierende zuerst iert ist geringer gewichtet Includes ändern die Import Precedence nicht gleich gewichtet wie das includende Style Sheet A (1) B (5) C (2) D (6) E (4) F (3) 13.6.2006 XML Vorlesung ETHZ SS 2006 13 13.6.2006 XML Vorlesung ETHZ SS 2006 14 Ergänzen von Template Rules Redefinieren ierter Template Rules von XSLT ausdrücklich erlaubt wird durch die Import Precedence geregelt u.u. soll die Template Rule ergänzt werden neuer Code im eigenen Style Sheet bestehender Code im ierten Style Sheet <xsl:apply-s> in Template Rule suche nach einer passenden Template Rule definiert anhand der Current Template Rule gleicher Mode in einem ierten Style Sheet Zusammenfassung Modularisierung XSLT bietet Modularisierung in zwei unterschiedlichen Varianten XSLT ist tendenziell unübersichtlich Grund dafür ist die XML Syntax eher kürzere Programme schreiben include ermöglicht textuelles Kombinieren ermöglicht logisches Kombinieren die Import Precendence definiert eine Hierarchie 13.6.2006 XML Vorlesung ETHZ SS 2006 15 13.6.2006 XML Vorlesung ETHZ SS 2006 16 XSLT Extensions XSLT ist eine einfache Sprache Design für die Ausführung in einfacher Umgebung Design für die Ausführung einfacher Programme XSLT wird für vieles andere eingesetzt oft Server-seitig in B2B Anwendungen wesentlich weitergehende Anforderungen viele XSLT Prozessoren bieten Erweiterungen praktisch und viele Erleichterungen Bindung an einen spezifischen XSLT Prozessor Sammlung als EXSLT (http://www.exslt.org) Umgang mit Extensions Extensions werden mit Namespaces identifiziert eindeutige Identifikation Extensions werden mit QNames angesprochen gilt für Elemente, Attribute und Funktionen Abfrage von vorhandenen Extensions element-available() Funktion function-available() Funktion definierter Fallback-Mechanismus <xsl:fallback> innerhalb eines Elements wird nur im Fehlerfall ausgeführt kann Ersatzfunktionalität oder Terminierung veranlassen 13.6.2006 XML Vorlesung ETHZ SS 2006 17 13.6.2006 XML Vorlesung ETHZ SS 2006 18 XSLT (Teil III) 3

Extension Elemente und Attribute definieren zusätzliche Anweisungen benutzen QNames aus einem Extension Namespace sind spezifisch für einen XSLT Prozessor Saxon definiert <saxon:while> für konditionale Iterationen <saxon:assign> für Wertzuweisung zu Variablen Variable muss auf saxon:assignable="yes" gesetzt sein Xalan definiert <xalan:write> für mehrere Ausgabedokumente <xalan:for-each-token> für Token-Schleifen weitere Prozessor-spezifische Erweiterungen Extension Functions definieren zusätzliche Funktionen benutzen QNames aus einem Extension Namespace erweitern die XSLT/XPath Function Library Saxon definiert evaluate für dynamische XPath Expressions path generiert XPath für den Context Node Xalan definiert intersection für Node Set Schnittmengen line-number für Context Node Zeilennummer weitere Prozessor-spezifische Erweiterungen 13.6.2006 XML Vorlesung ETHZ SS 2006 19 13.6.2006 XML Vorlesung ETHZ SS 2006 20 Extensions selbstgemacht Integration eigener Funktionen in XSLT in Form von eigenen Elementen in Form von eigenen Attributen spezifisch für einen XSLT Prozessor kein etablierter Standard für ein API Implementierung ist nicht (einfach) portabel Implementierung eigener Elemente kompliziertere Integration (mehrere Phasen) Implementierung eigener Funktionen erhalten Context und Argumente übergeben XSLT und Schemas für XML XSLT verarbeitet well-formed XML Eingabe ist ein Infoset (oder DOM) Verarbeitung gemäss der Regeln des Programms es gibt verschiedene Schemasprachen für XML DTDs aus dem XML Standard selber XML Schema als Weiterentwicklung von DTDs separater Standard, zunehmende Akzeptanz Schematron als regelbasierte Schemasprache im Gegensatz zu den Grammatiken von DTD & XML Schema in vielen Anwendungsfällen ist valides XML nötig B2B Anwendungen erwarten korrekte Daten 13.6.2006 XML Vorlesung ETHZ SS 2006 21 13.6.2006 XML Vorlesung ETHZ SS 2006 22 Warum Schemas für die Eingabe? XSLT Code basiert auf Annahmen die XPath Ausdrücke /personen/person/name/nachname vs. //nachname die Struktur der Templates invalides XML verletzt diese Annahmen Fehler in der Verarbeitung unvorhersehbare Resultate Annahmen sind wichtig beim Programmieren ohne Schema programmiert es sich mühsam Kenntnis des Schemas ermöglicht Effizienz Schemas für die XSLT Eingabe Parser liefert dem XSLT Prozessor das DOM manchmal austauschbar, manchmal eingebaut Parser kann parametrisiert werden Validierung als Schritt vor dem XSLT Prozessor DTD und/oder XML Schema Validierung falls der Parser auch XML Schema unterstützt kann per Parser Option eingestellt werden invalides XML bricht die Verarbeitung ab Eingabebedingung nicht erfüllt Korrektur oder Rückweisung (je nach Szenario) 13.6.2006 XML Vorlesung ETHZ SS 2006 23 13.6.2006 XML Vorlesung ETHZ SS 2006 24 XSLT (Teil III) 4

Warum Schemas für die Ausgabe? oftmals wird das Resultat weiterverarbeitet Eingabe in eine weitere Verarbeitungsstufe die ihrerseits auf gewissen Annahmen basiert Ausgabe sollte Regeln gehorchen Ausgabe wird dynamisch zusammengesetzt abhängig vom Aufbau des Eingabedokuments Struktur der Ausgabe schwer vorhersehbar einfacher bei Pull-Processing Style Sheets schwieriger bei Push-Processing Style Sheets immer schwierig bei nicht-trivialen Style Sheets Schemas für die Ausgabe XSLT erzeugt einen Node Tree dieser wird als well-formed XML serialisiert u.u. wird er optimiert (z.b. Namespace Nodes) u.u. wird er direkt als Baum (DOM) weitergegeben Validierung des Resultats ist einfach Parser verwenden und validieren lassen weiterer Schritt in der Verarbeitungspipeline Validierungen sind u.u. aufwendig stark abhängig von Schema und Parser nur an strategischen Stellen einsetzen 13.6.2006 XML Vorlesung ETHZ SS 2006 25 13.6.2006 XML Vorlesung ETHZ SS 2006 26 XSLT 2.0 vs. XSLT 1.0 starke Erweiterung des Sprachumfangs Result Tree Fragments gestrichen jeder XPath-Ausdruck gibt eine Sequence zurück auf Sequences kann mit XPath operiert werden Unterstützung der XML Schema Datentypen Sequences können eine Mischung von Objekten dieser Datentypen enthalten Wichtige Erweiterungen Sortieren und Gruppieren benutzerdefinierte Funktionen Zeichenkettenverarbeitung Unterstützung von regulären Ausdrücken Schreiben mehrerer Ausgabedokumente und Formate in einem Durchgang 13.6.2006 XML Vorlesung ETHZ SS 2006 27 13.6.2006 XML Vorlesung ETHZ SS 2006 28 Sortieren und Gruppieren neues Top Level Elemente xsl:sort-key xsl:sort-key definiert einen benannten Sortierschlüssel xsl:sort-key kann in XPath Ausdrücken von der sort() Funktion aufgerufen werden xsl:for-each-group erlaubt Gruppierung Zugriff auf aktuelle Gruppe mit currentgroup() Funktion Beispiel Sortieren und Gruppieren Ausgabe aller Elementnamen eines Dokuments <xsl:variable name="allnodes"> <xsl:for-each-group select="//*" group-by="name()"> <xsl:sort select="name()"/> <xsl:value-of select="name(current-group())"/> <xsl:if test="position()!= last()">, </xsl:if> </xsl:for-each-group> </xsl:variable> 13.6.2006 XML Vorlesung ETHZ SS 2006 29 13.6.2006 XML Vorlesung ETHZ SS 2006 30 XSLT (Teil III) 5

Benutzerdefinierte Funktionen neues Top Level Element xsl:function Funktionsname muss durch eigenen Namensraum abgegrenzt werden Aufruf innerhalb XPath-Ausdruck möglich deklarierte Paramenter müssen übergeben werden, Vorbelegung nicht möglich Funktionswert muss via xsl:result zurückgegeben werden Beispiel benutzerdefinierte Funktion Namespace Declaration: xmlns:cr="http://www.xml-web.de/changerequests" Funktion: <xsl:function name="cr:href-fragment"> <xsl:param name="teststring"/> <xsl:result> <xsl:value-of select="$teststring"/> </xsl:result> </xsl:function> Aufruf: <xsl:variable name="test" select="cr:href-fragment(@xlink:href)"/> 13.6.2006 XML Vorlesung ETHZ SS 2006 31 13.6.2006 XML Vorlesung ETHZ SS 2006 32 Reguläre Ausdrücke XPath-Funktionen matches(), replace() und tokenize() neues Element xsl:analyze-string enthält xsl:matching-substring oder xsl:non-matching-substring Adressierung von Teilen eines Musters mit regex-group() Funktion Beispiel Nutzung reguläre Ausdrücke Konvertierung englische in deutsche Daten: <xsl:analyze-string select="current-date()" regex="([0-9]+)-([0-9]+)-([0-9]+)"> <xsl:matching-substring> <xsl:number value="regex-group(2)" format="01"/> <xsl:text>.</xsl:text> <xsl:number value="regex-group(1)" format="01"/> <xsl:text>.</xsl:text> <xsl:number value="regex-group(3)" format="0001"/> </xsl:matching-substring> </xsl:analyze-string> 13.6.2006 XML Vorlesung ETHZ SS 2006 33 13.6.2006 XML Vorlesung ETHZ SS 2006 34 Mehrere Ausgabedokumente/Formate Unterstützung mehrerer Result Trees neben dem Principal Result Tree Benennung von Ausgabeformaten in erweitertem xsl:output Element Referenz auf benanntes Ausgabeformat aus neuem Element xsl:result-document Beispiel zusätzlicher Result Tree Deklaration Ausgabeformat <xsl:output name="glossary-format" method="xml" /> Serialisierung <xsl:result-document href="{$targetfn}" format="glossary-format"> <xsl:copy-of select="document($srcdoc)//*[@id=$destid]"/> </xsl:result-document> 13.6.2006 XML Vorlesung ETHZ SS 2006 35 13.6.2006 XML Vorlesung ETHZ SS 2006 36 XSLT (Teil III) 6

Zusammenfassung Übung macht den Meister weniger Code, aber schwieriger zu schreiben Umgewöhnung auf rekursive Algorithmen sehr nützliches Tool für den Umgang mit XML XSLT 2.0 wird 2005 aktuell XSLT selber wird sich weniger stark ändern XPath 2.0 wird XPath 1.0 stark erweitern 13.6.2006 XML Vorlesung ETHZ SS 2006 37 XSLT (Teil III) 7