420 likes | 535 Views
Einführung in XML. Hannah Kermes HS: Elektronische Wörterbücher Do, 18.11.2004. Daten. Kodierung Austausch Abfragen Beispiel: Wetter. XML. e X tensible M arkup L anguage (erweiterbare Auszeichnungssprache) 1998 in Version 1.0 von der W3C als Standard verabschiedet
E N D
Einführung in XML Hannah Kermes HS: Elektronische Wörterbücher Do, 18.11.2004
Daten • Kodierung • Austausch • Abfragen • Beispiel: Wetter
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
XML • inhaltliche Bausteine: • Elemente • Attribute • formale Bausteine: • syntaktische Festlegung auf die Notation der inhaltlichen Bausteine • genau ein Wurzelement
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
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"/>
Inhalt, Metadaten, Markup <wetter></wetter> <tagwochentag="Mo" tag="1" monat="4" jahr="2002"> </tag> <messungstadt="Frankfurt"> </messung> <temperaturmorgens="3" mittags="18" abends="16" nachts="7"/>
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.
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.
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)
DTD für Wetterdaten (1) <wetter></wetter> <tag wochentag="Mo" tag="1" monat="4" jahr="2002"> ... </tag> <!ELEMENT wetter (tag+)>
DTD für Wetterdaten (2) <!ELEMENT tag (messung+)> <!ATTLIST tag monat CDATA #REQUIRED jahr CDATA #REQUIRED> <tag wochentag="Mo" tag="1" monat="4" jahr="2002"> </tag> <messung stadt="Frankfurt"> ...</messung>
DTD für Wetterdaten (3) <!ELEMENT messung (temperatur)> <!ATTLIST messung stadt CDATA #REQUIRED> <!ELEMENT temperatur EMPTY> <messung stadt="Frankfurt"> </messung> <temperatur morgens="3" mittags="18" abends="16" nachts="7"/>
Einbinden der DTD • Dokumenttyp-Deklaration: <?xml version="1.0" encoding="iso-8859-1" standalone="no"?> <!DOCTYPE wetter SYSTEM "wetter.dtd"> <wetter> ...
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)
Ein XML Schema (1) <element name="wetter"> <complexType> <sequence> <element name="tag" type="tagType" minOccurs="1" maxOccurs="unbounded"/> </sequence> </complexType> </element>
Ein XML Schema (2) <attribute name="tag"> <simpleType> <restriction base="xsd:integer"> <minInclusive value="1"/> <maxInclusive value="31"/> </restriction> </simpleType> </attribute>
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"> ...
Fazit – Sonnige Aussichten? XML: • standardisierte Kodierung • Konsistenzprüfung • Datenaustausch • Schnittstellen • Platzbedarf
XSLT Hannah Kermes HS: Elektronische Wörterbücher Do, 18.11.2004
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
XSLT-Stylesheets Text XML HTML XSLT Stylesheet-Prozessor XML ... Verarbeitungs-Modell
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"/>
XML-Dokumentbaum <wetter> <tag> tag="1" monat="4" jahr="2002" <messung> stadt="Frankfurt" <temperatur> morgens="3" mittags="18" abends="16" nachts="7"
Templates... • Bausteine der Stylesheets • Regeln für Transformationen • strukturieren Stylesheets (top-down)
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>
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>
Templates – Wetterbeispiel <xsl:template match="wetter"> <HTML> <BODY> <H3>Wetterdaten</H3> <xsl:apply-templates select="tag"/> </BODY> </HTML> </xsl:template>
Templates – Wetterbeispiel <xsl:template match="wetter"> <HTML> <BODY> <H3>Wetterdaten</H3> <xsl:apply-templates select="tag"/> </BODY> </HTML> </xsl:template>
Templates – Wetterbeispiel <xsl:template match="wetter"> <HTML> <BODY> <H3>Wetterdaten</H3> <xsl:apply-templates select="tag"/> </BODY> </HTML> </xsl:template>
Templates – Wetterbeispiel <xsl:template match="wetter"> <HTML> <BODY> <H3>Wetterdaten</H3> <xsl:apply-templates select="tag"/> </BODY> </HTML> </xsl:template>
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>
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>
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>
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>
Top-Level-Parameter • Idee: Parametrisiere die Angabe der Stadt • Mechanismus: Top-Level-Parameter <xsl:stylesheet> <xsl:param name= "param_stadt"select = "'Frankfurt'"/> ... </xsl:stylesheet>
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
XSLT-Stylesheets Text XML HTML XSLT Stylesheet-Prozessor XML ... Modell XML+XSLT
Alternatives Modell Text P1 DB HTML P2 X XML P3 Stylesheet-Prozessor ... ... Resultate Programme
XML und XSLT – Diskussion • Austauschbarkeit der Daten (DTD, Zeichensatz, ...) • (intuitiver) Zugang zu den Daten • Verarbeitung: gemeinsamer Nenner Stylesheets • Effizienz
Fazit • XML eignet sich zur standardisierten Kodierung beliebiger Daten. • XSLT eignet sich zur standardisierten Verarbeitung beliebiger XML-Kodierungen. • XML und XSLT – Ein starkes Team!
Kombination der Modelle XSLT-Stylesheets Text XQuery, XPath DB XML HTML XSLT Stylesheet-Prozessor XML