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