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

Ähnliche Dokumente
XML Path Language (XPath)

XML, XHTML und MathML

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

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

Projektseminar "Texttechnologische Informationsmodellierung"

XML Vorlesung FHA SS

XML Grundlagen Teil I

XSLT: Transformation von XML

Extensible Markup Language (XML)

XSL Transformations (XSLT) Teil I

XML Vorlesung FHA SS

Seminar Dokumentenverarbeitung

XML-Praxis. XPath. Jörn Clausen.

X-Technologien. XML and Friends. Jörn Clausen 9. Juli 2001

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

XSL Transformation. Eine praxisorientierte Einführung Philip Heck

Semistrukturierte Daten

XQuery 2013 S Seite 1 h_da S

Eine Dokumenttypdefinition lässt sich im Kopfbereich des XML-Dokumentes (interne DTD) oder in einer separaten Datei formulieren (externe DTD).

Logische Dokumentenstruktur mit SGML und XML

XML exemplarisch. nach: André Bergholz, Extending Your Markup: An XML Tutorial IEEE Internet Computing, Jul./Aug. 2000, 74 79

Dokumentverarbeitung

Was ist SGML. - welche Auszeichnungen (Mark up) sind erlaubt? - welche Auszeichnungen sind notwendig?

Einführung in XML Extensible Markup Language

Zusammenfassung XML. Metasprache um Dokumenttypen zu definieren

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

Konzeptionelle Modellierung von XML-Dokumenttypen

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

Transformation von XML-Dokumenten. IDE SummerSchool 2013, Chemnitz

XML Informationsmodelle

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

extended Markup Language (XML)

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

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

ASN.1 <-> XML TRANSLATION

Web (Site) Engineering (WebSE)

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

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

XSL Transformation (XSLT) Teil IV

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

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

Transformation von XML-Dokumenten mit XSLT

Einführung. Hallo-Welt in XSLT

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

XML Extensible Markup Language

XML-Praxis.

Eine Schnelleinführung in XSL

Document Type Definition (DTD)

... MathML XHTML RDF

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

Fachhochschule Wiesbaden - Fachbereich DCSM. XML Information Set.

2. Einführung in Datenbanken und XML

Seminar: XML und intelligente Systeme

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

XML Extensible Markup Language

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

Grundlagen der Extensible Stylesheet Language

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

<XML und XSLT Eine Einführung/> Katharina Hemmeter, Claus Ludewig SQ: Digitale Dokumente

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

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 steht für Extensible Markup Language. Helmut Vonhoegen (2007) beschreibt XML unter anderem so:

Semistrukturierte Datenmodelle. XML Datenmodelle. XML Infoset. OEM Beispielbaum. Document InfoItem. Beispiel

Inhalt. Beispiel: XML Dokument. Beispiel: Dokumentenbaum. XPath VU Semistrukturierte Daten 1. Datenmodell

XML. Einführung, XML-Grundlagen und -Konzepte. XPath DTD. XQuery. XML-Schema XSLT XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

XML. Einführung, XML-Grundlagen und -Konzepte. XPath DTD. XQuery. XML-Schema XSLT XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

Textkodierung mit XML

Semistrukturierte Daten

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

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

<B1>Skript</B1> Skript zur Vorlesung Auszeichnungssprachen Stand: September 2016

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

XML Schema 2016 S h_da S Seite 1

Gliederung / Inhaltsüberblick

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

Validierung als Pipeline

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

Textkodierung mit XML

XML und Dokumentenmanagement

XSL Templates. Mit Templates arbeiten. XSL Templates

XML 1. Einführung, oxygen. Ulrike Henny. IDE Summer School 2013, Chemnitz

Datenaustauschformate. Datenaustauschformate - FLV

XPath Lokalisierspfade Achsen in Lokalisierungsschritten

XML - die zukünftige Sprache des WWW? Daten im WWW strukturiert speichern, übertragen, darstellen und verketten. Max Riegel XML

Klaus Schild, XML Clearinghouse Transformation von XML-Dokumenten

XML Extensible Markup Language

Semistrukturierte Daten

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

DTDs und XML- Schemata

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

XHTML. Lernfragen zu XHTML. Was ist HTML? Überblick

Hauptseminar Informatik. Die Strukturierung von XML-Dokumenten mit Hilfe von DTDs und XML Schema

Softwaretechnik 2 - XML -

XML Schema 2012/2013 S Seite 1 h_da W

Projektseminar Texttechnologische Informationsmodellierung

Textauszeichnung mit XML

Einführung in XML. Seminar: XML in der Bioinformatik Frank Schönmann WS 2002/03

Transkript:

Einführung in XML Erik Wilde Institut für Technische Informatik und Kommunikationsnetze (TIK) ETH Zürich http://dret.net/netdret/publications#unizh04a 16.8.04 Erik Wilde 1 Ziel XML als Format für strukturierte Daten XML Tools als Toolset für strukturierte Daten XML als Grundfertigkeit für Datenmanipulation XML-Formate für spezifische Anwendungen XML-Transformationen für Umwandlungen 16.8.04 Erik Wilde 2 2004 Erik Wilde 1

Programm XML und seine Entstehung Gemeinsamekeiten von XML und HTML Unterschiede von XML und HTML XPath als XML-Grundlagenwissen "Reguläre Ausdrücke" für XML XSLT als XML-Transformationssprache Umwandlung von XML in Zielformate 16.8.04 Erik Wilde 3 XML und HTML sieht "so ungefähr" aus wie HTML gleiche Basis (Standard Generalized Markup Language) proven success (SGML und HTML sind Erfolge) geringere Hemmschwelle für Umsteiger funktioniert ähnlich wie HTML gleiche Strukturierungsverfahren (Grammatiken) rein textorientiertes Format (keine Binärdaten!) andere Zielgruppe als HTML weiterverarbeitbare Information (B2B) anwendungsabhängige Datenstrukturen etabliertes Umfeld (EDIFACT, SGML, proprietär) 16.8.04 Erik Wilde 4 2004 Erik Wilde 2

SGML Parser (aka Browser) SGML Declaration DTD Document SGML Parser 16.8.04 Erik Wilde 5 SGML-Teile von HTML Document SGML Declaration DTD Beginn eines Start-Tags Ende eines Tags Element-Name Begrenzung des Attributwertes Attribut-Name Attributwert Beginn eines End-Tags Zuweisung eines Attributwertes Sonderzeichen <a href="http://www.ethz.ch/">eth Zürich</a> Referenz-Attribut Umlaut 'u' Anchor-Element URI der Referenz Text 16.8.04 Erik Wilde 6 2004 Erik Wilde 3

Vergleich SGML/XML/HTML SGML XML HTML SGML Declaration frei fix fix DTD frei frei fix Document frei frei frei 16.8.04 Erik Wilde 7 Beispiel (XML) <?xml version="1.0"?> <!DOCTYPE kurs SYSTEM "kurs.dtd"> <kurs> <titel kurz="xml">xml - Grundlagen und Umfeld</titel> <referent email="xml@dret.net" homepage="http://dret.net/"> <vorname>erik</vorname> <name>wilde</name> <organisation homepage="http://www.tik.ee.ethz.ch/">eth Zürich</organisation> </referent> <referent>... </referent> <termin date="20000512" location="technopark"/> <inhalt>... </inhalt> </kurs> 16.8.04 Erik Wilde 8 2004 Erik Wilde 4

XML Dokumente sind Bäume <?xml version="1.0"?> <!DOCTYPE kurs SYSTEM "kurs.dtd"> <kurs> <titel kurz="xml">xml - Grundlagen und Umfeld</titel> <referent email="xml@dret.net" homepage="http://dret.net/"> <vorname>erik</vorname> <name>wilde</name> <organisation homepage="...">eth Zürich</organisation> </referent> <referent>... </referent> <inhalt>... </inhalt> XML Parser email email homepage homepage kurz kurz titel titel referent referent kurs kurs email email vorname vorname termin termin referent referent name name inhalt inhalt date date location location organisation organisation </kurs> vorname vorname name name organisation organisation homepage homepage u.u. Schema-Information (z.b. Attribut-Defaults aus DTD oder XML Schema) 16.8.04 Erik Wilde 9 Document Type Definition (DTD) Beschreibung der Datenstrukturen in einem Schema Schema beschreibt eine Klasse von Dokumenten SGML/XML DTD ist nur eine mögliche Variante Beschreibung von Datenblöcken Elemente als Strukturmittel Attribute als Daten zu Elementen Beschreibung der erlaubten Kombinationen Definition einer Grammatik Verwendung für die Validierung von Daten Schema Modellierung als Kern von XML 16.8.04 Erik Wilde 10 2004 Erik Wilde 5

Beispiel (Teil einer DTD) <!ELEMENT kurs (titel, referent+, termin+, inhalt) > <!ELEMENT titel (#PCDATA) > <!ATTLIST titel kurz CDATA #REQUIRED > <!ELEMENT referent (vorname, name, organisation?) > <!ATTLIST referent email CDATA #IMPLIED homepage CDATA #IMPLIED > <!ELEMENT vorname (#PCDATA) > <!ELEMENT name (#PCDATA) > <!ELEMENT organisation (#PCDATA) > <!ATTLIST organisation homepage CDATA #IMPLIED > 16.8.04 Erik Wilde 11 Elemente Elemente sind der grundlegende Mechanismus Strukturierung von hierarchischen Daten "beliebige" Namensgebung für Elemente Definition gemäss inhaltlichen Strukturen Kernpunkt des DTD-Designs Elementtypen haben zwei wichtige Aspekte ein content model für erlaubten Inhalt Attribute (optionales Vorkommen oder notwendig) DTD deklariert Typ, den Dokument verwendet DTD: <!ELEMENT titel (#PCDATA) > Dokument: <titel>xml - Grundlagen und Umfeld</titel> 16.8.04 Erik Wilde 12 2004 Erik Wilde 6

Attribute Attribute sind Informationen zu Elementen Attribute geben Zusatzinformationen Entscheidung Attribut/Element nicht immer klar optional (#IMPLIED) oder notwendig (#REQUIRED) Attribute können verschiedene Typen haben ein Konzept, das für Elemente nicht existiert deutliche Einschränkungen (siehe HTML DTD) DTD: <!ATTLIST titel kurz CDATA #REQUIRED > Dokument: <titel kurz="xml">xml - Grundlagen... 16.8.04 Erik Wilde 13 HTML und XHTML HTML basiert auf SGML Gross-/Kleinschreibung ist irrelevant Markup-Minimierung ist erlaubt (Tags weglassen) 99% aller HTML-Seiten sind fehlerhaft Tools und Menschen sind nachlässig Browser und Suchmaschinen sind tolerant diese beiden Faktoren verstärken sich gegenseitig XHTML ist HTML auf XML-Basis eine XHTML-Seite muss gültiges XML sein damit mit XML-Tools weiterverarbeitbar und erzeugbar 16.8.04 Erik Wilde 14 2004 Erik Wilde 7

HTML/SGML und XHTML/XML HTML "A Reformulation of HTML" XHTML based on based on SGML "SGML on the Web" XML 16.8.04 Erik Wilde 15 HTML XHTML Umwandlung bestehender HTML-Seiten 1. valides HTML (http://validator.w3.org) 2. alle Elemente und Attribute in lowercase 3. leere Elemente als <element /> codieren 4. End-Tags einfügen (<p>text</p>) 5. Attributwerte müssen in Quotes sein 6. vordefinierte Attributwerte müssen lowercase sein http://www.w3.org/tr/xhtml1/#diffs es existieren Utilities zur Umformung http://tidy.sourceforge.net 16.8.04 Erik Wilde 16 2004 Erik Wilde 8

Warum XHTML? von allen Browsern unterstützt kann einfach auf dem Server liegen kann mit XML Tools verarbeitet werden Reporting, Statistiken, Redesign kann mit XML Tools erzeugt werden aus XML-Quellen oder Text-Dateien (XSLT 2.0) 16.8.04 Erik Wilde 17 XML Path Language (XPath) XPointer XSL XML Schema XQuery XSLT XSL-FO DOM3 XPath XPath XML Namespaces XML Infoset XML 16.8.04 Erik Wilde 18 2004 Erik Wilde 9

Bäume: Filesystem vs. XML Unterschiede zwischen der Navigation Unix cd Kommando vs. XPath 1. Knotentypen (XPath Node Types) 2. Knotenanzahl (XPath Node Sets) 3. Richtungen (XPath Axes) 4. Filter (XPath Predicates) 5. XPath Datenmodell (mehr als nur Knoten) 6. XPath Funktionen 16.8.04 Erik Wilde 19 Baumsicht eines Filesystems 16.8.04 Erik Wilde 20 2004 Erik Wilde 10

Eigenschaften eines Filesystems 3 verschiedene Arten von Knoten Directories, Files, Symbolic Links durch das Filesystem garantierte Bedingungen keine Directory-Einträge mit gleichem Namen es gibt immer genau ein Root-Directory Metainformationen werden im Directory gespeichert Owner, Permissions, Creation Date, Modification Date verschiedene Sichten des Filesystems Raw Device vs. OS File System Support entspricht XML Source View vs. XML Tree View 16.8.04 Erik Wilde 21 1. Knotentypen XPath definiert 7 Knotentypen Root, Element, Attribute, Namespace, Processing Instruction, Comment, Text abgeleitet vom XML Information Set Entstehung des Infosets ist nicht festgelegt XML Parser durch Einlesen eines Dokuments vorangehender Verarbeitungsschritt (z.b. DOM) Elemente haben nicht nur Kinder Kinder sind Text, Elemente, PIs und Kommentare Attribute und Namespaces sind keine Kinder aber das Element ist das Elternteil dieser Knoten! 16.8.04 Erik Wilde 22 2004 Erik Wilde 11

2. Knotenanzahl cd verlangt immer genau ein Directory dieses wird danach zum Current Working Directory in vielen Fällen löst die Shell Wildcards auf ls -laf *.ppt Kommando muss mehrere Parameter akzeptieren spezielle Kommandos erzeugen Listen können per Pipe übermittelt werden find. -name README -ls wc Unix hat kein allgemeines Modell für File Sets 16.8.04 Erik Wilde 23 Abarbeitung Filesystem Pfad jeder Schritt selektiert genau ein Directory Wildcards im Pfad sind nicht erlaubt Directorynamen sind eindeutig cd /usr/local/apache/bin/ 1 1 1 1 1 16.8.04 Erik Wilde 24 2004 Erik Wilde 12

Abarbeitung XPath jeder Schritt selektiert eine Knotenmenge der nächste Schritt operiert auf dieser Menge pro Schritt kann Menge wachsen oder schrumpfen /html/body/table/thead/tr 1 1 1 3 2 4 16.8.04 Erik Wilde 25 3. Richtungen absolute und relative Pfade Pfad beginnt mit Slash oder mit einem Namen Unix Pfade gehen immer einen Schritt abwärts implizite Semantik des Slashes im Pfad. und.. sind keine Ausnahmen, sondern Hacks auf spezielle Directories zeigende Directory-Einträge XPath unterstützt verschiedene Richtungen Slash trennt die Schritte (keine implizite Richtung) die Richtung wird durch die XPath Axis angegeben wird sie weggelassen, so ist der Default child 16.8.04 Erik Wilde 26 2004 Erik Wilde 13

XPath Location Path Syntax Folge von Location Steps, getrennt mit / erste Komponente: Axis Specifier (gefolgt von ::) zweite Komponente: Node Test dritte Komponente: 0-n Predicates (in []) Abkürzungen in Location Paths child:: ist die Default Axis attribute:: kann abgekürzt werden als @ // ist kurz für /descendant-or-self::node()/. ist kurz für self::node().. ist kurz für parent::node() 16.8.04 Erik Wilde 27 child Axis 16.8.04 Erik Wilde 28 2004 Erik Wilde 14

descendant Axis 16.8.04 Erik Wilde 29 XPath Node Tests Namenstest (für Elemente und Attribute) testet einen Node auf einen bestimmten Namen /html/head/table * kann verwendet werden als Wildcard Character Test auf den Nodetype markiert mit nachfolgenden Klammern Test auf text(), comment() oder node() Test auf Processing Instruction anwendbar auf spezifische Processing Instruction processing-instruction("myapplication") 16.8.04 Erik Wilde 30 2004 Erik Wilde 15

4. Filter (Prädikate) jeder Schritt kann zusätzliche Filter enthalten Auswertung jedes Filters für jeden selektierten Node daraus resultiert eine logisches and der Filter Filter sind XPath Expressions Auswertung relativ zum selektierten Node Interpretation als boolean (ausser für number) Reduktion der Resultatmenge eines Schrittes /descendant::table[not(thead)] können in einigen Fällen vermieden werden /descendant::table[thead] /descendant::table/thead/.. 16.8.04 Erik Wilde 31 Filter in XML Bäumen Abarbeitung eines Location Paths 1. Node Set ist die Basis jedes Schrittes Context: Node, Context Size, Context Position,... 2. Selektion der Nodes (Axis und Node Test) 3. Auswertung aller Filter für alle selektierten Nodes 4. die verbleibenden Nodes sind das neue Node Set Aufgabe: Finden Sie den 6. Link im HTML Ansatz 1: //a[position()=6] //a[6] Problem: /descendant-or-self::node()/a[6] korrekter XPath: /descendant::a[6] 16.8.04 Erik Wilde 32 2004 Erik Wilde 16

5. XPath Datenmodell XPath unterscheidet 4 Datentypen 1. node-set (Mengen von Knoten) 2. boolean (true oder false) 3. number (Floating Point Numbers) 4. string (Unicode Character strings) Beispiele für XPaths dieser Datentypen 1. //table[thead]: alle Tabellen mit einem thead 2. 1=2: ergibt den Boolean Wert false 3. 27 div 16: ergibt 1.6875 4. substring('abcd',2,2): ergibt den String bc 16.8.04 Erik Wilde 33 XPath Umgang mit Datentypen XPath definiert viele implizite Konvertierungen keine gute Grundlage für eine typensichere Sprache Umformungsregel müssen bekannt sein es gibt explizite Funktionen, die diese Regeln definieren diese werden u.u. implizit angewandt viele XPaths sind "korrekt" häufiger Effekt beim Lernen von XPath 1. Typ-Probleme (oder anderes...) im XPath 2. Resultat ist ein leeres Node Set 3. kann als Boolean, String oder Number interpretiert werden 16.8.04 Erik Wilde 34 2004 Erik Wilde 17

6. XPath Funktionen Funktionen mit dem Resultattyp boolean boolean, contains, false, lang, not, startswith, true Funktionen mit dem Resultattyp number ceiling, count, floor, last, number, position, round, string-length, sum Funktionen mit dem Resultattyp string concat, local-name, name, namespace-uri, normalize-space, string, substring, substring-after, substring-before, translate Funktionen mit dem Resultattyp node-set id 16.8.04 Erik Wilde 35 Location Paths und Funktionen Location Paths können Funktionen benutzen kommen dann immer in Prädikaten vor //a[substring(@href,string-length(@href)-2)='pdf'] Funktionen können Location Paths benutzen falls die Funktion Node Sets akzeptiert count(//a) zählt die Anzahl der Links auf einer Seite andernfalls findet eine implizite Konvertierung statt dieses Prinzip kann geschachtelt werden die Übersichtlichkeit kann leiden //*[@*] oder //*[count(@*) = count(*)] sehr komplexe Aufgabenstellungen lösbar 16.8.04 Erik Wilde 36 2004 Erik Wilde 18

XSL Transformations (XSLT) XPointer XSL XML Schema XQuery XSLT XSL-FO DOM3 XPath XPath XML Namespaces XML Infoset XML 16.8.04 Erik Wilde 37 Client-Side XSLT XML/XSL Browser XML Dokumenttyp eigener Dokumenttyp eigenes Dokument XSL Style Sheet XML Dokument 16.8.04 Erik Wilde 38 2004 Erik Wilde 19

Server-Side XSLT HTML Browser XML Dokumenttyp eigener Dokumenttyp eigenes Dokument XSL Style Sheet XML Dokument 16.8.04 Erik Wilde 39 Server-Side XML Architektur Server-Side XSLT Transformation XML Processing/ Repository B2B (SCM) XML Repository XSLT Transformation XML/HTML Browser B2C (CRM) 16.8.04 Erik Wilde 40 2004 Erik Wilde 20

Transformation von XML XML definiert Dokumententypen typischerweise Szenarien mit vorgegebenen DTDs selbst definierte DTD (Verwendung nur in-house) vordefinierte DTD (gegeben von externer Instanz) für Präsentation oder Austausch notwendig Grundidee der Transformationen von XML zuerst aufgetaucht im Style Sheet Ansatz Transformation in Strukturen eines anderen Schemas 16.8.04 Erik Wilde 41 XSL Transformations (XSLT) ursprünglich Teil des XSL Standards jetzt per Referenz in den Standard integriert orientiert an Scheme, einem Lisp-Dialekt Potential wurde erkannt Trennung von XSL in XSLT und XSL-FO XSLT transformiert in XSL Formatting Objects XSL-FO werden zur Darstellung benutzt XSLT wurde weiter geteilt XPath für die Selektion von Teilen eines Dokuments "der Rest", die Kontrollstrukturen besserer Name: XML Transformation Language 16.8.04 Erik Wilde 42 2004 Erik Wilde 21

Verwendung von Style Sheets HTML CSS Präsentation CSS XSLT Formatting Objects XSL-FO CSS XML XSLT XML/ HTML 16.8.04 Erik Wilde 43 XSLT: Hello World! <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:template match="/"> <xsl:text>hello World!</xsl:text> </xsl:template> </xsl:stylesheet> Abarbeitung beginnt beim Root Node Ausgabe eines Text Nodes Ende der Abarbeitung 16.8.04 Erik Wilde 44 2004 Erik Wilde 22

XSLT Beispiel <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:output method="text"/> <xsl:template match="*"> ( Element: <xsl:value-of select="local-name()"/> <xsl:apply-templates select="* @*"/> ) </xsl:template> <xsl:template match="@*"> Attribute: <xsl:value-of select="local-name()"/> </xsl:template> </xsl:stylesheet> 16.8.04 Erik Wilde 45 Eingabedokument <referent email="xml@dret.net" homepage="http://dret.net/"> <vorname>erik</vorname> <name>wilde</name> <organisation homepage="http://www.tik.ee.ethz.ch/">eth Zürich</organisation> </referent> email email homepage homepage referent vorname name name organisation homepage homepage 16.8.04 Erik Wilde 46 2004 Erik Wilde 23

Resultat der Ausführung ( Element: referent Attribute: email Attribute: homepage ( Element: vorname ) ( Element: name ) ( Element: organisation Attribute: homepage ) ) Whitespace nachträglich von Hand verändert! 16.8.04 Erik Wilde 47 Beispiel unter der Lupe Steuerung der Ausgabe möglich normalerweise XML als Ausgabe Text-orientierte Ausgabe ebenfalls erlaubt Programmsteuerung durch Template Rules Rekursion als Normalfall Selektion der Template Rules durch XSLT Prozessor Ausführung durch das Dokument gesteuert inkrementelle Entwicklung ohne die zweite Template Rule ebenfalls lauffähig aber: Default-Verhalten in diesem Fall ungünstig 16.8.04 Erik Wilde 48 2004 Erik Wilde 24

XSLT aus der Ferne betrachtet Eingabe ist ein XML-Dokument etwas genauer betrachtet ein XPath Node Tree basiert auf dem Infoset oftmals Whitespace Stripping vor der Transformation Transformation als Ausführung des XSLT beliebige Komplexität der Abarbeitung Ausgabe ist XML, HTML oder Text XML ist der Normalfall (erlaubt Konkatenation) HTML als populäres Präsentationsformat Text ohne Markup-Struktur 16.8.04 Erik Wilde 49 Besten Dank Fragen? Kommentare? mailto:net.dret@dret.net Homepage: http://dret.net/netdret/ Online Glossar: http://dret.net/glossary/ 16.8.04 Erik Wilde 50 2004 Erik Wilde 25