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 2 Einführung und Überblick XML-basierte Techniken XMLSchema DTD Xlink Xpointer Ist kein XML-Dokument XQuery XML SGML XPath XForms XSL XSLT XHTML HTML Modifiziert nach NOACK [1], S.12 Einführung und Überblick HTML und XHTML Die folgende Folie zeigt, dass durch eine DTD mit XHTML eine MarkupSprache vorliegt, die der XML-Spezifikation unterliegt und damit die Eigenschaft der Wohlgeformtheit besitzt. MathML DTD SGML XML von WML XML XHTML 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 5 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> <ALBUM> <INTERPRET>a-ha</INTERPRET> <TITEL>Minor earth major sky</TITEL> <LIED>Minor earth major sky</LIED> ……… </ALBUM> </MUSIKSAMMLUNG> Grossmann Das ist ein typisches XML-Dokument. 6 Einführung und Überblick X-Sprachen /Metasprachen Die im Überblick gezeigten X-Sprachen sind durch das W3CKonsortium 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 XSprachen nicht zu verstehen. Hier müssen auch die Probleme/Einschränkungen bei gegenwärtig verfügbaren XML-Parsern gesehen werden. Grossmann 7 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 Metasprache Markupsprache XML-Dokument DTD definiert Kontextspezifik. definiert Struktur Daten valide Dokumente Einführung und Überblick Präzisierung der Kontextabhängigkeiten für XMLDokumente durch XMLSchema Sollen XML-Dokumente für Datenbank-Anwendungen Verwendung finden müssen die DTD‘s durch XSD-Dokumente ersetzt werden. EBNF Metasprache definiert XML-Dokumente für Datenbank-Anwendungen XML Metasprache Markupsprache XML-Dokument XSD-Dokument definiert Kontextspezifik. definiert Struktur Daten valide Dokumente Einführung und Überblick XML und Datenbanken XPath SQL/XML XMLSchema XQuery DBMS ACCESS MS SQL Server XML Dokument 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 11 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-TierArchitektur 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 DatenbankStrukturen - Behandlung von Anfragen (SQL/XML und XQuery) Grossmann 12 Einführung und Überblick Darstellung und Transformation von XML-Dokumenten Xlink XML Dokument Xpointer XSL XSLT HTML Dokument XPath 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 CSSTechnologie 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 DokumentenStruktur (Parsing) voraus. Den prinzipiellen Ablauf zeigt die nächste Folie. Die Struktur ist in einem durch den Parser konstruierten Baum fixiert. Grossmann 14 Einführung und Überblick XML Parser Anwendung 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 16 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 17 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 18 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 19 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 XMLStruktur zugegriffen werden kann beliebige Daten des XML-Dokumentes ausgelesen werden können - XML-Dateninseln in HTML behandelt werden können Grossmann 20