ims universität stuttgart 1 einführung in xml hannah kermes hs: elektronische wörterbücher do,...
TRANSCRIPT
IMS Universität Stuttgart
1
Einführung in XML
Hannah Kermes
HS: Elektronische Wörterbücher
Do, 18.11.2004
IMS Universität Stuttgart
2
Daten
Kodierung Austausch Abfragen Beispiel: Wetter
IMS Universität Stuttgart
3
XML
eXtensible Markup Language
(erweiterbare Auszeichnungssprache) 1998 in Version 1.0 von der W3C als
Standard verabschiedet echte Teilmenge von SGML
- striktere Einhaltung der Syntax
Grundidee:- Trennung von Inhalt und Struktur
IMS Universität Stuttgart
4
XML
inhaltliche Bausteine:- Elemente- Attribute
formale Bausteine:- syntaktische Festlegung auf die Notation
der inhaltlichen Bausteine
genau ein Wurzelement
IMS Universität Stuttgart
5
Entwurfsentscheidung
Elemente- Information läßt sich in weitere Informationen
untergliedern
Attribute- Information kann nicht weiter zerlegt werden- Information ist aufzählbar
Dokumentinhalt- Information kann nicht weiter zerlegt werden- Information ist nicht aufzählbar
IMS Universität Stuttgart
6
Struktur des XML-Dokuments
<wetter>
</wetter>
<tag wochentag="Mo" tag="1" monat="4" jahr="2002">
</tag>
<messung stadt="Frankfurt">
</messung>
<temperatur morgens="3" mittags="18" abends="16" nachts="7"/>
IMS Universität Stuttgart
7
Inhalt, Metadaten, Markup
<wetter>
</wetter>
<tag wochentag="Mo" tag="1" monat="4" jahr="2002">
</tag>
<messung stadt="Frankfurt">
</messung>
<temperatur morgens="3" mittags="18" abends="16" nachts="7"/>
IMS Universität Stuttgart
8
Wohlgeformtes XML
Header eines XML-Dokuments<?xml version="1.0"
encoding="iso-8859-1"
standalone="yes"?>
XML-Dokument ist wohlgeformt, wenn es der XML-Syntax folgt.
IMS Universität Stuttgart
9
Validierung von XML
Warum validieren?- Konsistenz- Datenaustausch
Wie validieren?- DTD- XML Schema
XML-Dokument ist valide, wenn es der DTD bzw. dem Schema genügt.
IMS Universität Stuttgart
10
DTD (Dokumententypdefinition)
enthält die Bezeichner aller Elemente und Attribute
Reihenfolge des Auftretens von Elementen Wertebereiche ihrer Attribute Kardinalität der Elemente (wie oft kommen
sie vor)
IMS Universität Stuttgart
11
DTD für Wetterdaten (1)
<wetter>
</wetter>
<tag wochentag="Mo" tag="1" monat="4" jahr="2002"> ...
</tag>
<!ELEMENT wetter (tag+)>
IMS Universität Stuttgart
12
DTD für Wetterdaten (2)
<tag wochentag="Mo" tag="1" monat="4" jahr="2002">
</tag>
<messung stadt="Frankfurt"> ...</messung>
<!ELEMENT tag (messung+)>
<!ATTLIST tag monat CDATA #REQUIRED
jahr CDATA #REQUIRED>
IMS Universität Stuttgart
13
DTD für Wetterdaten (3)
<messung stadt="Frankfurt">
</messung>
<!ELEMENT messung (temperatur)>
<!ATTLIST messung stadt CDATA #REQUIRED>
<!ELEMENT temperatur EMPTY>
<temperatur morgens="3" mittags="18" abends="16" nachts="7"/>
IMS Universität Stuttgart
14
Einbinden der DTD
Dokumenttyp-Deklaration:
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?><!DOCTYPE wetter SYSTEM "wetter.dtd"><wetter>...
IMS Universität Stuttgart
15
DTD versus Schemata
Schemata sind wesentlich ausdruckstärker als DTDs
Schemata sind selbst XML-Dateien Möglichkeit zur Definition von Typen
- simple type: - Basistypen wie Integer oder String- eingeschränkte Basistypen
- complex type:- aus Basistypen zusammengesetzte Typen
- explizit durch separates Typ Element- anonym (nur an dieser Stelle gültig)
IMS Universität Stuttgart
16
Ein XML Schema (1)
<element name="wetter">
<complexType>
<sequence>
<element name="tag" type="tagType"
minOccurs="1"
maxOccurs="unbounded"/>
</sequence>
</complexType>
</element>
IMS Universität Stuttgart
17
Ein XML Schema (2)
<attribute name="tag">
<simpleType>
<restriction base="xsd:integer">
<minInclusive value="1"/>
<maxInclusive value="31"/>
</restriction>
</simpleType>
</attribute>
IMS Universität Stuttgart
18
Einbinden des Schema
Attribut des Wurzelelements:
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<wetter xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="wetter.xsd">...
IMS Universität Stuttgart
19
Fazit – Sonnige Aussichten?
XML: standardisierte Kodierung Konsistenzprüfung Datenaustausch Schnittstellen Platzbedarf
IMS Universität Stuttgart
20
XSLT
Hannah Kermes
HS: Elektronische Wörterbücher
Do, 18.11.2004
IMS Universität Stuttgart
21
XSL und XSLT
XSL (eXtensible Stylesheet Language) XSLT
- Konvertierung von XML-Dokumente in andere textbasierte Formate
XSLT-Stylesheet- Sammlung von Templates
(Transformationsregeln)- sind selbst XML-Dokumente- unterliegen den Restriktionen von XML
IMS Universität Stuttgart
22
Verarbeitungs-Modell
...
Text
HTML
XML
XML XSLT
Stylesheet-Prozessor
XSLT-Stylesheets
IMS Universität Stuttgart
23
Struktur des XML-Dokuments
<wetter>
</wetter>
<tag wochentag="Mo" tag="1" monat="4" jahr="2002">
</tag>
<messung stadt="Frankfurt">
</messung>
<temperatur morgens="3" mittags="18" abends="16" nachts="7"/>
IMS Universität Stuttgart
24
XML-Dokumentbaum
<wetter>
<tag>
<messung>
tag="1"
monat="4"
jahr="2002"
stadt="Frankfurt"
<temperatur> morgens="3"
mittags="18"
abends="16"
nachts="7"
IMS Universität Stuttgart
25
Templates...
Bausteine der Stylesheets Regeln für Transformationen strukturieren Stylesheets (top-down)
IMS Universität Stuttgart
26
Das erste Stylesheet
Stylesheet als XML-Dokument:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template>...</xsl:template>
</xsl:stylesheet>
IMS Universität Stuttgart
27
Das erste Stylesheet
Stylesheet als XML-Dokument:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method=“html“/>
<xsl:template>...</xsl:template>
</xsl:stylesheet>
IMS Universität Stuttgart
28
Templates – Wetterbeispiel
<xsl:template match="wetter">
<HTML>
<BODY>
<H3>Wetterdaten</H3>
<xsl:apply-templates select="tag"/>
</BODY>
</HTML>
</xsl:template>
IMS Universität Stuttgart
29
Templates – Wetterbeispiel
<xsl:template match="wetter">
<HTML>
<BODY>
<H3>Wetterdaten</H3>
<xsl:apply-templates select="tag"/>
</BODY>
</HTML>
</xsl:template>
IMS Universität Stuttgart
30
Templates – Wetterbeispiel
<xsl:template match="wetter">
<HTML>
<BODY>
<H3>Wetterdaten</H3>
<xsl:apply-templates select="tag"/>
</BODY>
</HTML>
</xsl:template>
IMS Universität Stuttgart
31
Templates – Wetterbeispiel
<xsl:template match="wetter">
<HTML>
<BODY>
<H3>Wetterdaten</H3>
<xsl:apply-templates select="tag"/>
</BODY>
</HTML>
</xsl:template>
IMS Universität Stuttgart
32
Templates – Wetterbeispiel
<xsl:template match="tag">
<H4><xsl:value-of select="@tag"/>.
<xsl:value-of select="@monat"/>.</H4>
<TABLE>
<xsl:apply-templates
select="messung“/>
</TABLE>
</xsl:template>
IMS Universität Stuttgart
33
Templates – Wetterbeispiel
<xsl:template match="tag">
<H4><xsl:value-of select="@tag"/>.
<xsl:value-of select="@monat"/>.</H4>
<TABLE>
<xsl:apply-templates
select="messung“/>
</TABLE>
</xsl:template>
IMS Universität Stuttgart
34
Templates – Wetterbeispiel
<xsl:template match="tag">
<H4><xsl:value-of select="@tag"/>.
<xsl:value-of select="@monat"/>.</H4>
<TABLE>
<xsl:apply-templates
select="messung[@stadt=`Frankfurt´]“/>
</TABLE>
</xsl:template>
IMS Universität Stuttgart
35
Templates – Wetterbeispiel
<xsl:template match="messung">
<TR>
<TD><xsl:value-of select=“temperatur/@morgens"/> </TD>
<TD><xsl:value-of select="temperatur/@mittags"/> </TD>
</TR>
</xsl:template>
IMS Universität Stuttgart
36
Top-Level-Parameter
Idee: Parametrisiere die Angabe der Stadt
Mechanismus: Top-Level-Parameter
<xsl:stylesheet>
<xsl:param name = "param_stadt" select = "'Frankfurt'"/> ...
</xsl:stylesheet>
IMS Universität Stuttgart
37
Einsatz des Parameters
<xsl:template match="tag">
<xsl:value-of select="@wochentag"/>:
<TABLE>
<xsl:apply-templates
select="messung[@stadt = 'Frankfurt' ]"/>
</TABLE>
</xsl:template>
$param_stadt
IMS Universität Stuttgart
38
Modell XML+XSLT
...
Text
HTML
XML
XML XSLT
Stylesheet-Prozessor
XSLT-Stylesheets
IMS Universität Stuttgart
39
Alternatives Modell
DB
Text
HTML
XMLX
Stylesheet-Prozessor
P1
P2
P3
...
Programme
...
Resultate
IMS Universität Stuttgart
40
XML und XSLT – Diskussion
Austauschbarkeit der Daten
(DTD, Zeichensatz, ...) (intuitiver) Zugang zu den Daten Verarbeitung: gemeinsamer Nenner
Stylesheets
Effizienz
IMS Universität Stuttgart
41
Fazit
XML eignet sich zur standardisierten Kodierung beliebiger Daten.
XSLT eignet sich zur standardisierten Verarbeitung beliebiger XML-Kodierungen.
XML und XSLT – Ein starkes Team!
IMS Universität Stuttgart
42
Kombination der Modelle
Text
HTML
XML
XML XSLTStylesheet-Prozessor
XSLT-Stylesheets
DB
XQuery,XPath