XML-basierte Techniken Internet-Technologien Sommersemester 2012 XML-basierte Techniken Teil „Einführung und Überblick“ Teil 1 Prof. Dr. rer.nat. Ralph Großmann Fakultät Informatik / Mathematik
Einführung und Überblick Einführung Beachten Sie die Ordnerstruktur im Standardordner public_html ! Dieser ist auf dem Server 141.56.15.17 über z.B. http://www.htw.dresden.de/~grossm\IT\vorlesung\ .... erreichbar. In einer Modulbeschreibung finden Sie die konzipierten Ziele und im folgenden Überblick sollen die inhaltlichen Schwerpunkte fokussiert werden. Überblick Die folgende Folie gibt einen kurzen Überblick über die XML-basierten Techniken. Die weiteren Folien stellen kurz wichtige inhaltliche Schwerpunkte gemäß der augenblicklichen Konzeption dar. Grossmann
Einführung und Überblick XML-basierte Techniken SGML Einführung und Überblick XML-basierte Techniken XMLSchema Xlink DTD Xpointer Ist kein XML-Dokument XML XQuery XPath XForms XSLT XSL HTML XHTML Modifiziert nach NOACK [1], S.12
Einführung und Überblick HTML und XHTML Die folgende Folie zeigt, dass durch eine DTD mit XHTML eine Markup- Sprache vorliegt, die der XML-Spezifikation unterliegt und damit die Eigenschaft der Wohlgeformtheit besitzt. WML MathML XHTML SGML XML DTD von XML Da das Hauptziel der XML-Technologie darin besteht, eine Schnittstelle für den Dokumentenaustausch und die Transformation von Dokumenten zu schaffen, war neben der strikten Trennung von Inhalt und Darstellung auch die Redefinition der im Web am meisten benutzten Markup-Sprache erforderlich.
Einführung und Überblick XML und Dokumenttyp Definition (DTD) Die DTD ist kein XML-Dokument, wie der Vergleich mit der nächsten Folie zeigt. Eine DTD ist aber für die Präzisierung der nicht kontextfrei darstellbaren Dokumentstruktur und die Validierung notwendig. <!ELEMENT MUSIKSAMMLUNG (ALBUM)> <!ELEMENT ALBUM (AUTOR, (INTERPRET | SAENGER | SAENGERIN | GRUPPE), TITEL, LIED)> <!ELEMENT AUTOR (#PCDATA)> <!ELEMENT INTERPRET (#PCDATA)> <!ELEMENT SAENGER (#PCDATA)> <!ELEMENT SAENGERIN (#PCDATA)> <!ELEMENT GRUPPE (#PCDATA)> <!ELEMENT TITEL (#PCDATA)> <!ELEMENT LIED (#PCDATA)> Grossmann
Einführung und Überblick XML und Dokumenttyp Definition (DTD) <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE MUSIKSAMMLUNG [ <!-- Definitionen der einzelnen Elemente --> ]> <MUSIKSAMMLUNG> <ALBUM> <INTERPRET>Moby</INTERPRET> <TITEL>Play</TITEL> <LIED>Honey</LIED> <LIED>Find my baby</LIED> ……. <LIED>My weakness</LIED> </ALBUM> <INTERPRET>a-ha</INTERPRET> <TITEL>Minor earth major sky</TITEL> <LIED>Minor earth major sky</LIED> ……… </MUSIKSAMMLUNG> Das ist ein typisches XML-Dokument. Grossmann
Einführung und Überblick X-Sprachen /Metasprachen Die im Überblick gezeigten X-Sprachen sind durch das W3C-Konsortium standardisiert und die unterliegende Syntax mit Hilfe einer Metasprache (EBNF) formal beschrieben. Diese Notation ist im Skript „Metasprache“ noch einmal mit seiner Problematik kurz dargestellt, denn ohne diese Kenntnisse sind die Sprachdefinitionen der X-Sprachen nicht zu verstehen. Hier müssen auch die Probleme/Einschränkungen bei gegenwärtig verfügbaren XML-Parsern gesehen werden. Grossmann
Einführung und Überblick Definition XML / XML-Dokumente Die Folie zeigt die Doppelrolle von XML, einmal als Markupsprache und zum anderen wiederum als Metasprache zur Beschreibung der inhaltlichen Struktur von Dokumenten. EBNF Metasprache definiert wohlgeformte Dokumente XML DTD XML-Dokument definiert definiert Metasprache Kontextspezifik. Struktur Daten Markupsprache valide Dokumente
Einführung und Überblick Präzisierung der Kontextabhängigkeiten für XML-Dokumente durch XMLSchema Sollen XML-Dokumente für Datenbank-Anwendungen Verwendung finden müssen die DTD‘s durch XSD-Dokumente ersetzt werden. EBNF Metasprache XML-Dokumente für Datenbank-Anwendungen definiert XML XSD-Dokument XML-Dokument definiert definiert Metasprache Kontextspezifik. Struktur Daten Markupsprache valide Dokumente
Einführung und Überblick XML und Datenbanken XPath XMLSchema SQL/XML XQuery XML Dokument DBMS ACCESS MS SQL Server
Einführung und Überblick Wichtige Konstrukte von XML Schema Unter Verweis auf den Standard des W3C-Konsortiums können nur einige typische Elemente behandelt werden. DB-typische Konstrukte von XML Schema Im Beispiel db_xml_schema.xsd können einige Elemente studiert werden, die für die Arbeit mit DB unerlässlich sind. Das betrifft vor allem die Modellierung von constraints. Neben den Elementen key und keyref aus dem xs-Namensraum werden auch Sprachelemente aus XPath benötigt (selector, field). Grossmann
Einführung und Überblick Weitere inhaltliche Schwerpunkte - Auslesen der Metainformationen aus DB (am Beispiel ACCESS und SQL-Server) durch serverseitiges Scripting, um ein XML Schema zu erstellen. Hier sind Kenntnisse der Multi-Tier- Architektur bei Web-Applikationen und solide Kenntnisse der Datenmodellierung unerlässlich. - Arbeiten mit der xml-basierten Export- und Import-Schnittstellen der DBMS über die XSD-Dateien. - Generische Speicherung von XML-Dokumenten (einfach oder über DOM-Struktur) - Abbildung der XML-Dokumentstrukturen auf Datenbank- Strukturen - Behandlung von Anfragen (SQL/XML und XQuery) Grossmann
Einführung und Überblick Darstellung und Transformation von XML-Dokumenten Xlink XML Dokument Xpointer XSL XSLT XPath HTML Dokument
Einführung und Überblick Wichtige Konstrukte von XSL Unter Verweis auf den Standard des W3C-Konsortiums können nur einige typische Elemente behandelt werden. Die Kenntnis der CSS- Technologie und das DOM wird vorausgesetzt. - Selektion der Daten - Anlegen und Ansprechen von Vorlagen (Templates) Bei der Selektion und Filterung von Daten müssen Grund-Elemente der Sprache XPath mit behandelt werden (vgl. später). Die Anwendung der XSL setzt natürlich die Analyse der Dokumenten-Struktur (Parsing) voraus. Den prinzipiellen Ablauf zeigt die nächste Folie. Die Struktur ist in einem durch den Parser konstruierten Baum fixiert. Grossmann
Einführung und Überblick Anwendung XML Parser
Einführung und Überblick XML-Dokument <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> <?xml-stylesheet type="text/xsl" href="tutorial3.xsl"?> <LEHRGANG> <RED>XSL machts möglich...</RED> <BOLD>Die Daten werden fett dargestellt</BOLD> <ITALIC>oder kursiv, je nach angelegter Transformation</ITALIC> </LEHRGANG> Bei Ansprechen dieses Dokumentes durch einen Parser wird das Stylesheet ausgeführt. Grossmann
Einführung und Überblick Zugehöriges XSL-Dokument <?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/"> <html><head><title>Elementinhalteausgeben</title></head> <body> <P><B><xsl:value-of select="//BOLD" /></B></P> <P><i><xsl:value-of select="//ITALIC" /></i></P> <H1 style="color:red"><xsl:value-of select="//RED" /></H1> </body> </html> </xsl:template> </xsl:stylesheet> Grossmann
Einführung und Überblick Der Transformationsteil von XSL / XSLT Transformationen stellen Algorithmen dar. Deshalb sind typische Elemente der XSLT-Sprache: - Schleifen - Fallunterscheidungen (einfache und komplexe) Die folgende Folie gibt das XSL-Dokument wieder. Grossmann
Einführung und Überblick XSL-Dokument (XSLT) <?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <head><title>Pop-Alben</title></head> <body> <h2>Musiksammlung - Auflisten der Pop-Alben</h2> <div> <xsl:for-each select="//ALBUM"> <xsl:sort select="./INTERPRET" /> <xsl:if test="TITEL/@stil='Pop' or TITEL/@stil='p'"> <xsl:value-of select="./INTERPRET" /> - <xsl:value-of select="./TITEL" /> <br /> </xsl:if> </xsl:for-each> </div> </body> </html> </xsl:template> </xsl:stylesheet> Grossmann
Einführung und Überblick DOM und SAX Um XML-Applikationen entwerfen und implementieren zu können, muss auch die Technologie des Ansprechens der Dokumentstruktur von einem Script (z.B. JavaScript) aus beherrscht werden. Es werden Instrumentarien vorgestellt, mit denen: DOM-Objekte angelegt werden können und damit auf die XML-Struktur zugegriffen werden kann beliebige Daten des XML-Dokumentes ausgelesen werden können XML-Dateninseln in HTML behandelt werden können Grossmann