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
--------------------------------------------------------------------------------