S EWS-8.1 S5 XML Übersicht XML (Extensible Markup Language, dt.: Erweiterbare Auszeichnungssprache) * seit 1996 vom W3C definiert, in Anlehnung an SGML * Zweck: Beschreibungen allgemeiner Strukturen (nicht nur Web-Dokumente) * Meta-Sprache ("erweiterbarquotedblright ): Die Notation ist festgelegt (Tags und Attribute, wie in HTML), Für beliebige Zwecke kann jeweils eine spezielle syntaktische Struktur definiert werden (DTD) Außerdem gibt es Regeln (XML-Namensräume), um XML-Sprachen in andere XML-Sprachen zu importieren * XHTML ist so als XML-Sprache definiert * Weitere aus XML abgeleitete Sprachen: SVG, MathML, XSL-FO, SMIL, WML * individuelle XML-Sprachen werden benutzt, um strukturierte Daten zu speichern, die von Software-Werkzeugen geschrieben und gelesen werden * XML-Darstellung von strukturierten Daten kann mit verschiedenen Techniken in HTML transformiert werden, um sie formatiert anzuzeigen: XML+CSS, XML+XSL, SAX-Parser, DOM-Parser Dieses Kapitel orientiert sich eng an SELFHTML (Stefan Münz), http://de.selfhtml.org/xml/intro.htm (c) 2007 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Einführung in Web-bezogene Sprachen WS 2006 / Folie 801 Ziele: Rolle XML verstehen in der Vorlesung: Die Aspekte werden einführend erklärt. -------------------------------------------------------------------------------- S EWS-8.2 Notation und erste Beispiele Ein Satz in einer XML-Sprache ist ein Text, der durch Tags strukturiert wird. Tags werden immer in Paaren von Anfangs- und End-Tag verwendet: Paderborn Anfangs-Tags können Attribut-Wert-Paare enthalten: 05251606686 Die Namen von Tags und Attributen können für die XML-Sprache frei gewählt werden. Mit Tags gekennzeichnete Texte können geschachtelt werden. (a+b)2 in MathML: Kastens Uwe a + Wiesenweg 37 b Paderborn 33106 2 (c) 2007 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Einführung in Web-bezogene Sprachen WS 2006 / Folie 802 Ziele: Notation von XML verstehen in der Vorlesung: An den Beispielen wird erklärt: * nur Notation von HTML übernehmen, * Tags und Attribute werden für den speziellen Zweck frei erfunden, * ein Tag-Paar begrenzt ein Element und benennt seine Rolle, * geschachtelte Strukturen. * Wir entwerfen eigene Sprachen!! -------------------------------------------------------------------------------- S EWS-8.3 Ein vollständiges Beispiel Datei mit der Definition der Kennzeichnung des Syntaktischen Struktur dieser Datei mit Angaben zur Dokumentes als XML-Datei XML-Sprache (DTD) Transformation in HTML Die neuesten Produktnachrichten: Die Firma Fridolin Soft hat eine neue Version des beliebten Ballerspiels HitYourStick herausgebracht. Nach Angaben des Herstellers soll die neue Version, die nun auch auf dem Betriebssystem Ganzfix läuft, um die 80 Dollar kosten. Von Ripfiles Inc. gibt es ein Patch zu der Sammel-CD Best of other people's ideas. Einige der tollen Webseiten-Templates der CD enthielten bekanntlich noch versehentlich nicht gelöschte Angaben der Original-Autoren. Das Patch ist für schlappe 200 Euro zu haben. (c) 2004 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Einführung in Web-bezogene Sprachen WS 2006 / Folie 803 Ziele: Technische Angaben sehen in der Vorlesung: Am Beispiel wird erklärt: * die 3 technischen Angaben, * Text-Dokument als Beispiel. * Beispiel wird noch weiterverendet. -------------------------------------------------------------------------------- S EWS-8.4 Baumdarstellung von XML-Texten Jeder XML-Text ist durch Tag-Paare vollständig geklammert (wenn er wohldefiniert ist). Deshalb kann er eindeutig als Baum dargestellt werden. (Attribute betrachten wir noch nicht) Wir markieren die inneren Knoten mit den Tag-Namen; die Blätter sind die elementaren Texte: adressBuch adresse Kastens name Uwe nachname Kastens anschrift Wiesenweg 37 vorname Paderborn Uwe 33106 strasse Wiesenweg 37 ort plz Paderborn 33106 XML-Werkzeuge können die Baumstruktur eines XML-Textes ohne weiteres ermitteln und ggf. anzeigen. (c) 2004 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Einführung in Web-bezogene Sprachen WS 2006 / Folie 804 Ziele: XML-Text als Baum verstehen in der Vorlesung: Am Beispiel wird erklärt: * vollständige Klammerung durch Tags, * definiert einen Baum, * aus dem Baum kann man den Text wiederherstellen. * Beispiel: Adresse * Beispiel: Produkt Information -------------------------------------------------------------------------------- S EWS-8.5 Grammatik definiert die Struktur der XML-Bäume Mit kontextfreien Grammatiken (KFG) kann man Bäume definieren. Folgende KFG definiert korrekt strukturierte Bäume für das Beispiel Adressbuch: adressBuch ::= adresse* adressBuch adresse ::= name anschrift name ::= nachname vorname adresse Anschrift ::= strasse ort plz name nachname ::= PCDATA nachname vorname ::= PCDATA Kastens strasse ::= PCDATA vorname anschrift ort ::= PCDATA Uwe plz ::= PCDATA strasse Wiesenweg 37 ort plz Paderborn 33106 (c) 2004 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Einführung in Web-bezogene Sprachen WS 2006 / Folie 805 Ziele: Definition durch KFG verstehen in der Vorlesung: Am Beispiel wird erklärt: * Erinnerung an KFG, * Tag-Namen werden Nichtterminale, * PCDATA ist das Terminal für die elementaren Texte, * weiteren Baum skizzieren. -------------------------------------------------------------------------------- S EWS-8.6 Document Type Definition (DTD) statt KFG Die Struktur von XML-Bäumen und -Texten wird in der DTD-Notation definiert. Ihre Konzepte entsprechen denen von KFGn: KFG DTD adressBuch ::= adresse* adresse ::= name anschrift name ::= nachname vorname Anschrift ::= strasse ort plz nachname ::= PCDATA vorname ::= PCDATA strasse ::= PCDATA ort ::= PCDATA plz ::= PCDATA weitere Formen von DTD-Produktionen: X (Y)+ nicht-leere Folge X (A | B) Alternative X (A)? Option X EMPTY leeres Element (c) 2004 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Einführung in Web-bezogene Sprachen WS 2006 / Folie 806 Ziele: DTD-Notation als KFG verstehen in der Vorlesung: Am Beispiel wird erklärt: * Zuordnung der KFG- zu DTD-Konstrukten, * Erklärung der weiteren Formen an Beispielen. * Hinweis: Die DTD-Notation zur Definition von Attributlisten in Anfangs-Tags wird hier nicht beschrieben. -------------------------------------------------------------------------------- S EWS-8.7 XML-Datei als Speicher für strukturierte Daten Ein Server-Programm benutzt eine XML-Datei als Speicher für strukturierte Daten; liest, ändert und schreibt sie zurück. Anwendungsbeispiel: Eine Web-Seite sammelt Adressen von potentiellen Kunden. Die 2. Phase des PHP-Programms trägt Adressen ein und/oder zeigt vorhandene an. HTML-Datei mit PHP-Programm XML-Text auf dem Web-Server XML-Parser PHP-Programm, 2. Phase: * XML-Parser aufrufen; liest XML-Datei, baut Baum auf XML-Schreiber * Zugriff auf Baum mit XML-Baum DOM-Funktionen * Baum wieder als XML-Datei schreiben (c) 2006 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Einführung in Web-bezogene Sprachen WS 2006 / Folie 807 Ziele: Szenario verstehen in der Vorlesung: Am Beispiel wird erklärt: * Aufgabe: strukturierte Daten speichern, * Schritte im Programm: * Parsen: Baumstruktur aufbauen, * darin lesen und ändern, * Baum in XML-Text umwandeln. * Vergleiche Datenbank und Zugriffe darauf. -------------------------------------------------------------------------------- S EWS-8.8 Präsentation von XML-Daten am Beispiel XML-Strukturen enthalten selbst keine Information, die zum Layout der Elemente bei einer Präsentation im Browser verwendet werden könnte. Es gibt mehrere Techniken, um XML-Strukturen zu präsentieren: * Der Browser zeigt den XML-Text mit Tags an und hebt die Schachtelung hervor - ohne weitere Information möglich * Den Tags werden mit CSS Stylesheets Layout-Informationen zugeordnet. * Die XML-Struktur wird in HTML transformiert, spezifiziert durch XSL * Die Transformation nach HTML wird in PHP programmiert, zum Strukturieren des XML-Textes wird ein Parser benutzt. (c) 2004 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Einführung in Web-bezogene Sprachen WS 2006 / Folie 808 Ziele: Aufgabe verstehen in der Vorlesung: Am Beispiel wird erklärt: * Übersicht über die 4 Techniken und * die dafür notwendige Information -------------------------------------------------------------------------------- S EWS-8.9 Beispiel: Produktinformationen An diesem Beispiel werden 3 der 4 Präsentationstechniken gezeigt. (aus SELFHTML) Anwendung: Notizen über Produktinformationen werden in einer Firma als strukturierte Texte in XML formuliert, gespeichert, präsentiert und von Werkzeugen verarbeitet (z. B. Mail, News). DTD: Text-Beispiel: Die neuesten Produktnachrichten: Die Firma Fridolin Soft hat eine neue Version des beliebten Ballerspiels HitYourStick herausgebracht. Nach Angaben des Herstellers soll die neue Version, die nun auch auf dem Betriebssystem Ganzfix läuft, um die 80 Dollar kosten. Von Ripfiles Inc. gibt es ein Patch zu der Sammel-CD Best of other people's ideas. Einige der tollen Webseiten-Templates der CD enthielten bekanntlich noch versehentlich nicht gelöschte Angaben der Original-Autoren. Das Patch ist für schlappe 200 Euro zu haben. (c) 2004 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Einführung in Web-bezogene Sprachen WS 2006 / Folie 809 Ziele: Anwendung mit DTD verstehen in der Vorlesung: Am Beispiel wird erklärt: * Bedeutung der Anwendung, * DTD-Regeln. -------------------------------------------------------------------------------- S EWS-8.10 XML-Text direkt präsentiert Der Browser * hebt die Tags hervor, * zeigt Folgen an, * zeigt Schachtelung an, * wendet Strategie für Zeilenumbrüche an. (c) 2004 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Einführung in Web-bezogene Sprachen WS 2006 / Folie 810 Ziele: Anzeigetechnik erkennen in der Vorlesung: Am Beispiel wird erklärt: * Darstellung der XML-Elemente, * Beispiel: Produkt Information * die DTD Datei -------------------------------------------------------------------------------- S EWS-8.11 XML-Text formatiert mit CSS-Stylesheet produktnews CSS-Stylesheet ordnet den verwendeten XML-Tags { position:absolute; Formatierangaben zu. Der Browser wendet sie an: top:10pt; left:40pt; font-family:sans-serif; font-size:18pt; }beschreibung { position:relative; display:block; width:300px; font-size:14pt; margin-top:20pt; margin-bottom:20pt; }hersteller { font-weight:bold; color:blue; }produkt { color:green; } preis { color:red; } (c) 2007 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Einführung in Web-bezogene Sprachen WS 2006 / Folie 811 Ziele: XML mit CSS kennenlernen in der Vorlesung: Am Beispiel wird erklärt: * Zuordnung zu XML-Tags, * einige Effekte der Formatierung * Beispiel: Produkt Information * die CSS Datei -------------------------------------------------------------------------------- S EWS-8.12 XML-Text mit XSL in HTML transformiert Ein XSL-Template beschreibt die Trans- * unverändert eingesetzt.

... (c) 2007 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Einführung in Web-bezogene Sprachen WS 2006 / Folie 812 Ziele: Transformationsmuster verstehen in der Vorlesung: Am Beispiel wird erklärt: * Transformationsmuster zu Tags, * Einfügestellen darin, * geschachtelte Anwendung der Muster, * Ergebnis ist eine HTML-Datei, * sie wird angezeigt. * Beispiel: XML Datei wird transformiert und angezeigt * die XSL Datei --------------------------------------------------------------------------------